This is an automated email from the git hooks/post-receive script. x2go pushed a change to branch 3.6.x in repository nx-libs. from 4dac57f Fix -Werror=format-security errors (056_nx-X11_Werror-format-security.full.patch). new 2d68cac Create Windows and fix drawing issues on Big Endian 64bit systems (057_nx-X11_sanitize-eventmasks.full.patch). new ceb7050 FHS path fix for rgb file This patch is needed on Debian only, not reporting this path addition to upstream. new 057999e FHS path fix for SecurityPolicy file (102_xserver-xext_set-securitypolicy-path.full.patch). new c106ad8 FHS path fix for keyboard config file (103_nxagent_set-X0-config-path.full.patch). new c91fe98 Export remote keyboard configuration to session directory (105_nxagent_export-remote-keyboard-config.full.patch) new 9674c43 UTF-8 Clipboard copying (106_nxagent_utf8-copy-clipboard.full.patch). new 658d07e Prevent sending COMPOUND_TEXT (107_nxagent_clipboard-compound-text+small-bed-sheets.full.patch). new 223f554 Wine Close Delay (108_nxagent_wine-close-delay.full.patch). new 4712239 Avoid large pixmaps (110_nxagent_createpixmap-bounds-check.full.patch). new 1681f11 Detect nxagent/x2goagent flavour (200_nxagent_check-binary-x2go-flavour.full.patch). new 6aa18cc X2Go icon when run with x2goagent flavour (201_nxagent_set-x2go-icon-if-x2goagent-flavour.full.patch). new d26930d Enable Xinerama support for NX (202_nx-X11_enable-xinerama.full.patch). new 4f5dc80 Add -norootlessexit cmdline option to nxagent (203_nxagent_disable-rootless-exit.full.patch). new db87055 Fix repainting of SolidFill pictures with libcairo > 1.12.x (204_nxagent_repaint-solidpict.full.patch). new 35aab85 Fix refresh errors on Win2012 RDP connections with speed=ADS (205_nxagent_refresh-adsl.full.patch). new 4ef611e Add -clipboard cmdline option to nxagent (206_nxagent_clipboard-as-nxoption.full.patch). new 57a58c7 Fix XFIXES selection handling (copy and paste via middle mouse button) (207_nxagent_fix-xfixes-selection.full.patch). new 4a6ccd5 Add x2goagent man page (209_x2goagent_add-man-page.full.patch). new 8c1b852 Save session state in file. new 46c2aeb Set default pack and link options to avoid damage of session (211_nxcomp_set_default_options.full+lite.patch). new 79f218b Fix FTBFS of nxproxy/nxcomp on Android (212_nxcomp_build-on-Android.full+lite.patch). new 1be1c4a Force NX proxy to bind to loopback devices only (loopback option) (220_nxproxy_bind-loopback-only.full+lite.patch). new 1e99734 Set WM_CLASS to X2GoAgent/NXAgent (300_nxagent_set-wm-class.full.patch). new 6fc37fa Use shared libraries (301_nx-X11_use-shared-libs.full.patch). The 24 revisions listed above as "new" are entirely new to this repository and will be described in separate emails. The revisions listed as "adds" were already present in the repository and have only been added to this reference. Summary of changes: .../057_nx-X11_sanitize-eventmasks.full.patch | 70 ----- debian/patches/101_nxagent_set-rgb-path.full.patch | 19 -- ...xserver-xext_set-securitypolicy-path.full.patch | 19 -- .../103_nxagent_set-X0-config-path.full.patch | 40 --- ...xagent_export-remote-keyboard-config.full.patch | 96 ------- .../106_nxagent_utf8-copy-clipboard.full.patch | 52 ---- ...board-compound-text+small-bed-sheets.full.patch | 47 ---- .../108_nxagent_wine-close-delay.full.patch | 60 ---- ...10_nxagent_createpixmap-bounds-check.full.patch | 44 --- ...00_nxagent_check-binary-x2go-flavour.full.patch | 64 ----- ...t_set-x2go-icon-if-x2goagent-flavour.full.patch | 219 --------------- .../patches/202_nx-X11_enable-xinerama.full.patch | 292 -------------------- .../203_nxagent_disable-rootless-exit.full.patch | 63 ----- .../204_nxagent_repaint-solidpict.full.patch | 53 ---- debian/patches/205_nxagent_refresh-adsl.full.patch | 14 - .../206_nxagent_clipboard-as-nxoption.full.patch | 53 ---- .../207_nxagent_fix-xfixes-selection.full.patch | 33 --- .../patches/209_x2goagent_add-man-page.full.patch | 41 --- .../210_nxagent_save_session_state.full.patch | 176 ------------ .../210_nxcomp_save_session_state.full+lite.patch | 15 - .../211_nxcomp_set_default_options.full+lite.patch | 27 -- .../212_nxcomp_build-on-Android.full+lite.patch | 253 ----------------- .../220_nxproxy_bind-loopback-only.full+lite.patch | 130 --------- debian/patches/300_nxagent_set-wm-class.full.patch | 60 ---- .../patches/301_nx-X11_use-shared-libs.full.patch | 106 ------- debian/patches/series | 25 -- nx-X11/config/cf/X11.tmpl | 2 +- nx-X11/config/cf/host.def | 13 +- nx-X11/lib/Xinerama/Xinerama.c | 98 +++++-- nx-X11/programs/Xserver/Imakefile | 6 +- nx-X11/programs/Xserver/Xext/panoramiX.c | 9 - nx-X11/programs/Xserver/Xext/panoramiX.h | 2 +- nx-X11/programs/Xserver/Xext/security.c | 2 +- nx-X11/programs/Xserver/hw/nxagent/Args.c | 45 ++- nx-X11/programs/Xserver/hw/nxagent/Clipboard.c | 35 ++- nx-X11/programs/Xserver/hw/nxagent/Display.c | 24 +- nx-X11/programs/Xserver/hw/nxagent/Error.c | 2 +- nx-X11/programs/Xserver/hw/nxagent/Error.h | 2 + nx-X11/programs/Xserver/hw/nxagent/GCOps.c | 2 +- nx-X11/programs/Xserver/hw/nxagent/Handlers.c | 2 +- nx-X11/programs/Xserver/hw/nxagent/Icons.h | 2 + nx-X11/programs/Xserver/hw/nxagent/Image.c | 7 + nx-X11/programs/Xserver/hw/nxagent/Imakefile | 2 +- nx-X11/programs/Xserver/hw/nxagent/Init.c | 31 ++- nx-X11/programs/Xserver/hw/nxagent/Init.h | 2 + nx-X11/programs/Xserver/hw/nxagent/Keyboard.c | 54 +++- nx-X11/programs/Xserver/hw/nxagent/NXdispatch.c | 17 ++ nx-X11/programs/Xserver/hw/nxagent/Options.c | 1 + nx-X11/programs/Xserver/hw/nxagent/Options.h | 7 + nx-X11/programs/Xserver/hw/nxagent/Reconnect.c | 33 +++ nx-X11/programs/Xserver/hw/nxagent/Reconnect.h | 2 + nx-X11/programs/Xserver/hw/nxagent/Render.c | 16 +- nx-X11/programs/Xserver/hw/nxagent/Screen.c | 41 ++- nx-X11/programs/Xserver/hw/nxagent/Window.c | 45 ++- nx-X11/programs/Xserver/hw/nxagent/X/NXdispatch.c | 3 + nx-X11/programs/Xserver/hw/nxagent/X/NXpicture.c | 4 + .../programs/Xserver/hw/nxagent/X/NXpicturestr.h | 1 + nx-X11/programs/Xserver/hw/nxagent/X/NXxvdisp.c | 30 +- nx-X11/programs/Xserver/hw/nxagent/man/x2goagent.1 | 35 +++ nx-X11/programs/Xserver/hw/nxagent/x2go.xpm | 148 ++++++++++ nx-X11/programs/Xserver/os/oscolor.c | 2 +- nx-X11/programs/nxauth/Imakefile | 2 +- nxcomp/Jpeg.cpp | 3 + nxcomp/Loop.cpp | 64 ++++- nxcomp/Misc.cpp | 10 + nxcomp/Misc.h | 8 + nxcomp/Pgn.cpp | 3 + nxcomp/Proxy.cpp | 7 + nxcomp/ServerChannel.cpp | 52 +++- 69 files changed, 755 insertions(+), 2192 deletions(-) delete mode 100644 debian/patches/057_nx-X11_sanitize-eventmasks.full.patch delete mode 100644 debian/patches/101_nxagent_set-rgb-path.full.patch delete mode 100644 debian/patches/102_xserver-xext_set-securitypolicy-path.full.patch delete mode 100644 debian/patches/103_nxagent_set-X0-config-path.full.patch delete mode 100644 debian/patches/105_nxagent_export-remote-keyboard-config.full.patch delete mode 100644 debian/patches/106_nxagent_utf8-copy-clipboard.full.patch delete mode 100644 debian/patches/107_nxagent_clipboard-compound-text+small-bed-sheets.full.patch delete mode 100644 debian/patches/108_nxagent_wine-close-delay.full.patch delete mode 100644 debian/patches/110_nxagent_createpixmap-bounds-check.full.patch delete mode 100644 debian/patches/200_nxagent_check-binary-x2go-flavour.full.patch delete mode 100644 debian/patches/201_nxagent_set-x2go-icon-if-x2goagent-flavour.full.patch delete mode 100644 debian/patches/202_nx-X11_enable-xinerama.full.patch delete mode 100644 debian/patches/203_nxagent_disable-rootless-exit.full.patch delete mode 100644 debian/patches/204_nxagent_repaint-solidpict.full.patch delete mode 100644 debian/patches/205_nxagent_refresh-adsl.full.patch delete mode 100644 debian/patches/206_nxagent_clipboard-as-nxoption.full.patch delete mode 100644 debian/patches/207_nxagent_fix-xfixes-selection.full.patch delete mode 100644 debian/patches/209_x2goagent_add-man-page.full.patch delete mode 100644 debian/patches/210_nxagent_save_session_state.full.patch delete mode 100644 debian/patches/210_nxcomp_save_session_state.full+lite.patch delete mode 100644 debian/patches/211_nxcomp_set_default_options.full+lite.patch delete mode 100644 debian/patches/212_nxcomp_build-on-Android.full+lite.patch delete mode 100644 debian/patches/220_nxproxy_bind-loopback-only.full+lite.patch delete mode 100644 debian/patches/300_nxagent_set-wm-class.full.patch delete mode 100644 debian/patches/301_nx-X11_use-shared-libs.full.patch create mode 100644 nx-X11/programs/Xserver/hw/nxagent/man/x2goagent.1 create mode 100644 nx-X11/programs/Xserver/hw/nxagent/x2go.xpm -- Alioth's /srv/git/_hooks_/post-receive-email on /srv/git/code.x2go.org/nx-libs.git
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 2d68caca72bd36b168b36b252c8035643c69e692 Author: Mihai Moldovan <ionic@ionic.de> Date: Tue Feb 10 18:41:08 2015 +0100 Create Windows and fix drawing issues on Big Endian 64bit systems (057_nx-X11_sanitize-eventmasks.full.patch). Multiple endiannes issues were setting incorrect event masks when creating and drawing X11 windows. This time, a smaller integer has been casted to a bigger one and passed to some function actually setting its value. This meant, that garbage from stack was attached to the smaller integer value, putting unknown memory into the lower bytes of the bigger integer. Fix this by creating a big, initialized temporary variable, let the function do its magic on that one and pass the value back to the smaller variable--and cross your fingers the smaller variable can hold it without overrunning. (The last bit is a design issue we can't really fix and has been around even before this patch.) --- .../057_nx-X11_sanitize-eventmasks.full.patch | 70 -------------------- debian/patches/series | 1 - nx-X11/programs/Xserver/hw/nxagent/Screen.c | 5 +- nx-X11/programs/Xserver/hw/nxagent/Window.c | 15 ++++- 4 files changed, 16 insertions(+), 75 deletions(-) diff --git a/debian/patches/057_nx-X11_sanitize-eventmasks.full.patch b/debian/patches/057_nx-X11_sanitize-eventmasks.full.patch deleted file mode 100644 index 9c11717..0000000 --- a/debian/patches/057_nx-X11_sanitize-eventmasks.full.patch +++ /dev/null @@ -1,70 +0,0 @@ -Description: Create Windows and fix drawing issues on Big Endian 64bit systems -Author: Mihai Moldovan <ionic@ionic.de> -Abstract: - Multiple endiannes issues were setting incorrect event masks when creating and - drawing X11 windows. - . - This time, a smaller integer has been casted to a bigger one and passed to some - function actually setting its value. - . - This meant, that garbage from stack was attached to the smaller integer value, - putting unknown memory into the lower bytes of the bigger integer. - . - Fix this by creating a big, initialized temporary variable, let the function do - its magic on that one and pass the value back to the smaller variable--and - cross your fingers the smaller variable can hold it without overrunning. (The - last bit is a design issue we can't really fix and has been around even before - this patch.) - ---- a/nx-X11/programs/Xserver/hw/nxagent/Window.c -+++ b/nx-X11/programs/Xserver/hw/nxagent/Window.c -@@ -327,7 +327,10 @@ - - if (mask & CWEventMask) - { -- nxagentGetEventMask(pWin, (Mask*)&attributes.event_mask); -+ /* Assume that the mask fits in int... broken on Big Endian 64bit systems. */ -+ Mask tmp_mask = attributes.event_mask; -+ nxagentGetEventMask(pWin, &tmp_mask); -+ attributes.event_mask = (int)tmp_mask; - } - #ifdef WARNING - else -@@ -2891,7 +2894,10 @@ - - if (mask & CWEventMask) - { -- nxagentGetEventMask(pWin, (Mask*)&attributes.event_mask); -+ /* Assume that the mask fits in int... broken on Big Endian 64bit systems. */ -+ Mask tmp_mask = attributes.event_mask; -+ nxagentGetEventMask(pWin, &tmp_mask); -+ attributes.event_mask = (int)tmp_mask; - } - #ifdef WARNING - else -@@ -3352,7 +3358,10 @@ - - if (nxagentOption(Rootless) && nxagentWindowTopLevel(pWin)) - { -- nxagentGetEventMask(pWin, (Mask*)&attributes.event_mask); -+ /* Assume that the mask fits in int... broken on Big Endian 64bit systems. */ -+ Mask tmp_mask = attributes.event_mask; -+ nxagentGetEventMask(pWin, &tmp_mask); -+ attributes.event_mask = (int)tmp_mask; - - XChangeWindowAttributes(nxagentDisplay, nxagentWindow(pWin), mask, &attributes); - } ---- a/nx-X11/programs/Xserver/hw/nxagent/Screen.c -+++ b/nx-X11/programs/Xserver/hw/nxagent/Screen.c -@@ -1665,7 +1665,10 @@ - - attributes.background_pixel = nxagentBlackPixel; - -- nxagentGetDefaultEventMask((Mask*)&attributes.event_mask); -+ /* Assume that the mask fits in int... broken on Big Endian 64bit systems. */ -+ Mask tmp_mask = attributes.event_mask; -+ nxagentGetDefaultEventMask(&tmp_mask); -+ attributes.event_mask = (int)tmp_mask; - - attributes.colormap = nxagentDefaultVisualColormap(nxagentDefaultVisual(pScreen)); - diff --git a/debian/patches/series b/debian/patches/series index ef4671e..fed9582 100644 --- a/debian/patches/series +++ b/debian/patches/series @@ -1,4 +1,3 @@ -057_nx-X11_sanitize-eventmasks.full.patch 101_nxagent_set-rgb-path.full.patch 102_xserver-xext_set-securitypolicy-path.full.patch 103_nxagent_set-X0-config-path.full.patch diff --git a/nx-X11/programs/Xserver/hw/nxagent/Screen.c b/nx-X11/programs/Xserver/hw/nxagent/Screen.c index 9957a7d..f0ce4da 100644 --- a/nx-X11/programs/Xserver/hw/nxagent/Screen.c +++ b/nx-X11/programs/Xserver/hw/nxagent/Screen.c @@ -1665,7 +1665,10 @@ N/A attributes.background_pixel = nxagentBlackPixel; - nxagentGetDefaultEventMask((Mask*)&attributes.event_mask); + /* Assume that the mask fits in int... broken on Big Endian 64bit systems. */ + Mask tmp_mask = attributes.event_mask; + nxagentGetDefaultEventMask(&tmp_mask); + attributes.event_mask = (int)tmp_mask; attributes.colormap = nxagentDefaultVisualColormap(nxagentDefaultVisual(pScreen)); diff --git a/nx-X11/programs/Xserver/hw/nxagent/Window.c b/nx-X11/programs/Xserver/hw/nxagent/Window.c index 35a3598..2ba37a5 100644 --- a/nx-X11/programs/Xserver/hw/nxagent/Window.c +++ b/nx-X11/programs/Xserver/hw/nxagent/Window.c @@ -327,7 +327,10 @@ FIXME: We need to set save under on the real display? if (mask & CWEventMask) { - nxagentGetEventMask(pWin, (Mask*)&attributes.event_mask); + /* Assume that the mask fits in int... broken on Big Endian 64bit systems. */ + Mask tmp_mask = attributes.event_mask; + nxagentGetEventMask(pWin, &tmp_mask); + attributes.event_mask = (int)tmp_mask; } #ifdef WARNING else @@ -2891,7 +2894,10 @@ FIXME: Do we need to set save unders attribute here? if (mask & CWEventMask) { - nxagentGetEventMask(pWin, (Mask*)&attributes.event_mask); + /* Assume that the mask fits in int... broken on Big Endian 64bit systems. */ + Mask tmp_mask = attributes.event_mask; + nxagentGetEventMask(pWin, &tmp_mask); + attributes.event_mask = (int)tmp_mask; } #ifdef WARNING else @@ -3352,7 +3358,10 @@ void nxagentSetTopLevelEventMask(pWin) if (nxagentOption(Rootless) && nxagentWindowTopLevel(pWin)) { - nxagentGetEventMask(pWin, (Mask*)&attributes.event_mask); + /* Assume that the mask fits in int... broken on Big Endian 64bit systems. */ + Mask tmp_mask = attributes.event_mask; + nxagentGetEventMask(pWin, &tmp_mask); + attributes.event_mask = (int)tmp_mask; XChangeWindowAttributes(nxagentDisplay, nxagentWindow(pWin), mask, &attributes); } -- Alioth's /srv/git/_hooks_/post-receive-email on /srv/git/code.x2go.org/nx-libs.git
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 ceb70505c8c9796fe601b888d02cd98d62e47939 Author: Marcelo Boveto Shima <marceloshima@gmail.com> Date: Tue Feb 10 18:48:39 2015 +0100 FHS path fix for rgb file This patch is needed on Debian only, not reporting this path addition to upstream. Patch was modified by Mike Gabriel <mike.gabriel@das-netzwerkteam.de> --- debian/patches/101_nxagent_set-rgb-path.full.patch | 19 ------------------- debian/patches/series | 1 - nx-X11/programs/Xserver/os/oscolor.c | 2 +- 3 files changed, 1 insertion(+), 21 deletions(-) diff --git a/debian/patches/101_nxagent_set-rgb-path.full.patch b/debian/patches/101_nxagent_set-rgb-path.full.patch deleted file mode 100644 index 9d20bee..0000000 --- a/debian/patches/101_nxagent_set-rgb-path.full.patch +++ /dev/null @@ -1,19 +0,0 @@ -Description: FHS path fix for rgb file - This patch is needed on Debian only, not reporting this path - addition to upstream. - . - Originally contributed by Marcelo Boveto Shima <marceloshima@gmail.com>. -Forwarded: not-needed -Author: Mike Gabriel <mike.gabriel@das-netzwerkteam.de> -Last-Update: 2012-01-12 ---- a/nx-X11/programs/Xserver/os/oscolor.c -+++ b/nx-X11/programs/Xserver/os/oscolor.c -@@ -53,7 +53,7 @@ - #include <sys/stat.h> - #include <unistd.h> - --static char* nxAltRgbPaths[] = {"/usr/NX/share/rgb", "/usr/share/X11/rgb", "/etc/X11/rgb"}; -+static char* nxAltRgbPaths[] = {"/etc/nxagent/rgb", "/usr/share/nx/rgb", "/usr/local/share/nx/rgb", "/usr/NX/share/rgb", "/usr/share/X11/rgb", "/etc/X11/rgb"}; - static char _NXRgbPath[1024]; - - #endif diff --git a/debian/patches/series b/debian/patches/series index fed9582..ceeaa8a 100644 --- a/debian/patches/series +++ b/debian/patches/series @@ -1,4 +1,3 @@ -101_nxagent_set-rgb-path.full.patch 102_xserver-xext_set-securitypolicy-path.full.patch 103_nxagent_set-X0-config-path.full.patch 105_nxagent_export-remote-keyboard-config.full.patch diff --git a/nx-X11/programs/Xserver/os/oscolor.c b/nx-X11/programs/Xserver/os/oscolor.c index cf79857..d18e7b6 100644 --- a/nx-X11/programs/Xserver/os/oscolor.c +++ b/nx-X11/programs/Xserver/os/oscolor.c @@ -53,7 +53,7 @@ SOFTWARE. #include <sys/stat.h> #include <unistd.h> -static char* nxAltRgbPaths[] = {"/usr/NX/share/rgb", "/usr/share/X11/rgb", "/etc/X11/rgb"}; +static char* nxAltRgbPaths[] = {"/etc/nxagent/rgb", "/usr/share/nx/rgb", "/usr/local/share/nx/rgb", "/usr/NX/share/rgb", "/usr/share/X11/rgb", "/etc/X11/rgb"}; static char _NXRgbPath[1024]; #endif -- Alioth's /srv/git/_hooks_/post-receive-email on /srv/git/code.x2go.org/nx-libs.git
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 057999efabe7f1d857f6a94116bcafdeaa309fcf Author: Marcelo Boveto Shima <marceloshima@gmail.com> Date: Tue Feb 10 18:52:39 2015 +0100 FHS path fix for SecurityPolicy file (102_xserver-xext_set-securitypolicy-path.full.patch). This patch is needed for Tarball installation mode of NX (redistributed) only, not reporting this path change to upstream. --- ...xserver-xext_set-securitypolicy-path.full.patch | 19 ------------------- debian/patches/series | 1 - nx-X11/programs/Xserver/Xext/security.c | 2 +- 3 files changed, 1 insertion(+), 21 deletions(-) diff --git a/debian/patches/102_xserver-xext_set-securitypolicy-path.full.patch b/debian/patches/102_xserver-xext_set-securitypolicy-path.full.patch deleted file mode 100644 index 9d27a37..0000000 --- a/debian/patches/102_xserver-xext_set-securitypolicy-path.full.patch +++ /dev/null @@ -1,19 +0,0 @@ -Description: FHS path fix for SecurityPolicy file - This patch is needed for Tarball installation mode of NX (redistributed) - only, not reporting this path change to upstream. - . - Originally contributed by Marcelo Boveto Shima <marceloshima@gmail.com>. -Forwarded: not-needed -Author: Mike Gabriel <mike.gabriel@das-netzwerkteam.de> -Last-Update: 2012-01-12 ---- a/nx-X11/programs/Xserver/Xext/security.c -+++ b/nx-X11/programs/Xserver/Xext/security.c -@@ -86,7 +86,7 @@ - - #ifdef NXAGENT_SERVER - --#define NX_ALTERNATIVEPOLICYFILE "/usr/lib/xserver/SecurityPolicy" -+#define NX_ALTERNATIVEPOLICYFILE "/usr/local/share/nx/SecurityPolicy" - - #endif - diff --git a/debian/patches/series b/debian/patches/series index ceeaa8a..d84cbd8 100644 --- a/debian/patches/series +++ b/debian/patches/series @@ -1,4 +1,3 @@ -102_xserver-xext_set-securitypolicy-path.full.patch 103_nxagent_set-X0-config-path.full.patch 105_nxagent_export-remote-keyboard-config.full.patch 106_nxagent_utf8-copy-clipboard.full.patch diff --git a/nx-X11/programs/Xserver/Xext/security.c b/nx-X11/programs/Xserver/Xext/security.c index 2139425..8e97a7e 100644 --- a/nx-X11/programs/Xserver/Xext/security.c +++ b/nx-X11/programs/Xserver/Xext/security.c @@ -86,7 +86,7 @@ extern unsigned char LbxReqCode; #ifdef NXAGENT_SERVER -#define NX_ALTERNATIVEPOLICYFILE "/usr/lib/xserver/SecurityPolicy" +#define NX_ALTERNATIVEPOLICYFILE "/usr/local/share/nx/SecurityPolicy" #endif -- Alioth's /srv/git/_hooks_/post-receive-email on /srv/git/code.x2go.org/nx-libs.git
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 c106ad8e833f05bbe181e28e8e8826115f8424cd Author: Mike Gabriel <mike.gabriel@das-netzwerkteam.de> Date: Tue Feb 10 18:54:29 2015 +0100 FHS path fix for keyboard config file (103_nxagent_set-X0-config-path.full.patch). This patch is needed for Tarball installation and on Distros like Debian, not reporting this path addition to upstream. Originally contributed by FreeNX Team. --- .../103_nxagent_set-X0-config-path.full.patch | 40 -------------------- debian/patches/series | 1 - nx-X11/programs/Xserver/hw/nxagent/Keyboard.c | 9 ++--- 3 files changed, 3 insertions(+), 47 deletions(-) diff --git a/debian/patches/103_nxagent_set-X0-config-path.full.patch b/debian/patches/103_nxagent_set-X0-config-path.full.patch deleted file mode 100644 index eb705ca..0000000 --- a/debian/patches/103_nxagent_set-X0-config-path.full.patch +++ /dev/null @@ -1,40 +0,0 @@ -Description: FHS path fix for keyboard config file - This patch is needed for Tarball installation and on Distros like - Debian, not reporting this path addition to upstream. - . - Originally contributed by FreeNX Team. -Forwarded: not-needed -Author: Mike Gabriel <mike.gabriel@das-netzwerkteam.de> -Last-Update: 2011-12-31 ---- a/nx-X11/programs/Xserver/hw/nxagent/Keyboard.c -+++ b/nx-X11/programs/Xserver/hw/nxagent/Keyboard.c -@@ -136,7 +136,7 @@ - #define XKB_ALTERNATE_BASE_DIRECTORY "/usr/X11R6/lib/X11/xkb" - #endif - #ifndef XKB_CONFIG_FILE --#define XKB_CONFIG_FILE "X0-config.keyboard" -+#define XKB_CONFIG_FILE "/etc/nxagent/nxagent.keyboard" - #endif - #ifndef XKB_DFLT_RULES_FILE - #define XKB_DFLT_RULES_FILE "xfree86" -@@ -985,8 +985,7 @@ - - XkbGetControls(nxagentDisplay, XkbAllControlsMask, xkb); - -- nxagentXkbConfigFilePathSize = strlen(XkbBaseDirectory) + -- strlen(XKB_CONFIG_FILE) + 1; -+ nxagentXkbConfigFilePathSize = strlen(XKB_CONFIG_FILE); - - nxagentXkbConfigFilePath = malloc((nxagentXkbConfigFilePathSize + 1) * sizeof(char)); - -@@ -995,9 +994,7 @@ - FatalError("nxagentKeyboardProc: malloc failed."); - } - -- strcpy(nxagentXkbConfigFilePath, XkbBaseDirectory); -- strcat(nxagentXkbConfigFilePath, "/"); -- strcat(nxagentXkbConfigFilePath, XKB_CONFIG_FILE); -+ strcpy(nxagentXkbConfigFilePath, XKB_CONFIG_FILE); - - #ifdef TEST - fprintf(stderr, "nxagentKeyboardProc: nxagentXkbConfigFilePath [%s].\n", diff --git a/debian/patches/series b/debian/patches/series index d84cbd8..cfe913d 100644 --- a/debian/patches/series +++ b/debian/patches/series @@ -1,4 +1,3 @@ -103_nxagent_set-X0-config-path.full.patch 105_nxagent_export-remote-keyboard-config.full.patch 106_nxagent_utf8-copy-clipboard.full.patch 107_nxagent_clipboard-compound-text+small-bed-sheets.full.patch diff --git a/nx-X11/programs/Xserver/hw/nxagent/Keyboard.c b/nx-X11/programs/Xserver/hw/nxagent/Keyboard.c index e3b58b6..6039e5c 100644 --- a/nx-X11/programs/Xserver/hw/nxagent/Keyboard.c +++ b/nx-X11/programs/Xserver/hw/nxagent/Keyboard.c @@ -136,7 +136,7 @@ extern Status XkbGetControls( #define XKB_ALTERNATE_BASE_DIRECTORY "/usr/X11R6/lib/X11/xkb" #endif #ifndef XKB_CONFIG_FILE -#define XKB_CONFIG_FILE "X0-config.keyboard" +#define XKB_CONFIG_FILE "/etc/nxagent/nxagent.keyboard" #endif #ifndef XKB_DFLT_RULES_FILE #define XKB_DFLT_RULES_FILE "xfree86" @@ -985,8 +985,7 @@ XkbError: XkbGetControls(nxagentDisplay, XkbAllControlsMask, xkb); - nxagentXkbConfigFilePathSize = strlen(XkbBaseDirectory) + - strlen(XKB_CONFIG_FILE) + 1; + nxagentXkbConfigFilePathSize = strlen(XKB_CONFIG_FILE); nxagentXkbConfigFilePath = malloc((nxagentXkbConfigFilePathSize + 1) * sizeof(char)); @@ -995,9 +994,7 @@ XkbError: FatalError("nxagentKeyboardProc: malloc failed."); } - strcpy(nxagentXkbConfigFilePath, XkbBaseDirectory); - strcat(nxagentXkbConfigFilePath, "/"); - strcat(nxagentXkbConfigFilePath, XKB_CONFIG_FILE); + strcpy(nxagentXkbConfigFilePath, XKB_CONFIG_FILE); #ifdef TEST fprintf(stderr, "nxagentKeyboardProc: nxagentXkbConfigFilePath [%s].\n", -- Alioth's /srv/git/_hooks_/post-receive-email on /srv/git/code.x2go.org/nx-libs.git
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 c91fe980b952d4d357a291fcda89f35ea1a83993 Author: Marcelo Boveto Shima <marceloshima@gmail.com> Date: Tue Feb 10 18:56:59 2015 +0100 Export remote keyboard configuration to session directory (105_nxagent_export-remote-keyboard-config.full.patch) Let nxagent write the keyboard configuration to <session_directory>/keyboard and make it available within the NX session. --- ...xagent_export-remote-keyboard-config.full.patch | 96 -------------------- debian/patches/series | 1 - nx-X11/programs/Xserver/hw/nxagent/Error.c | 2 +- nx-X11/programs/Xserver/hw/nxagent/Error.h | 2 + nx-X11/programs/Xserver/hw/nxagent/Keyboard.c | 45 +++++++++ 5 files changed, 48 insertions(+), 98 deletions(-) diff --git a/debian/patches/105_nxagent_export-remote-keyboard-config.full.patch b/debian/patches/105_nxagent_export-remote-keyboard-config.full.patch deleted file mode 100644 index 389feaf..0000000 --- a/debian/patches/105_nxagent_export-remote-keyboard-config.full.patch +++ /dev/null @@ -1,96 +0,0 @@ -Description: Export remote keyboard configuration to session directory - Let nxagent write the keyboard configuration to <session_directory>/keyboard - and make it available within the NX session. - . - Originally contributed by Marcelo Boveto Shima <marceloshima@gmail.com>. -Forwarded: pending... -Author: Mike Gabriel <mike.gabriel@das-netzwerkteam.de> -Last-Update: 2011-12-31 ---- a/nx-X11/programs/Xserver/hw/nxagent/Error.c -+++ b/nx-X11/programs/Xserver/hw/nxagent/Error.c -@@ -497,7 +497,7 @@ - return rootPath; - } - --char *nxagentGetSessionPath() -+char *nxagentGetSessionPath(void) - { - - char *rootPath; ---- a/nx-X11/programs/Xserver/hw/nxagent/Error.h -+++ b/nx-X11/programs/Xserver/hw/nxagent/Error.h -@@ -34,4 +34,6 @@ - - void nxagentEndRedirectToClientsLog(void); - -+char *nxagentGetSessionPath(void); -+ - #endif /* __Error_H__ */ ---- a/nx-X11/programs/Xserver/hw/nxagent/Keyboard.c -+++ b/nx-X11/programs/Xserver/hw/nxagent/Keyboard.c -@@ -52,6 +52,7 @@ - #include "Keyboard.h" - #include "Events.h" - #include "Options.h" -+#include "Error.h" - - #include "NXlib.h" - -@@ -72,6 +73,8 @@ - - #include "Xatom.h" - -+#include <errno.h> -+ - static int nxagentXkbGetNames(char **rules, char **model, char **layout, - char **variant, char **options); - -@@ -1790,6 +1793,48 @@ - } - #endif - -+ if (drulesLen != 0) -+ { -+ char *sessionpath = nxagentGetSessionPath(); -+ if (sessionpath != NULL){ -+ int keyboard_file_path_size = strlen(sessionpath) + strlen("/keyboard"); -+ char *keyboard_file_path = malloc((keyboard_file_path_size + 1) * sizeof(char)); -+ FILE *keyboard_file; -+ if ( keyboard_file_path == NULL) -+ { -+ FatalError("nxagentKeyboardProc: malloc failed."); -+ } -+ strcpy(keyboard_file_path, sessionpath); -+ strcat(keyboard_file_path, "/keyboard"); -+ if ((keyboard_file = fopen(keyboard_file_path, "w")) != NULL) { -+ if ( drules != NULL ) -+ fprintf(keyboard_file, "rules=%s\n", drules); -+ if ( dmodel != NULL ) -+ fprintf(keyboard_file, "model=%s\n", dmodel); -+ if ( dlayout != NULL ) -+ fprintf(keyboard_file, "layout=%s\n", dlayout); -+ if ( dvariant != NULL ) -+ fprintf(keyboard_file, "variant=%s\n", dvariant); -+ if ( doptions != NULL ) -+ fprintf(keyboard_file, "options=%s\n", doptions); -+ fclose(keyboard_file); -+ fprintf(stderr, "keyboard file created\n"); -+ } -+ else { -+ int save_err = errno; -+ fprintf(stderr, "keyboard file not created: %s\n", strerror(save_err)); -+ } -+ free(keyboard_file_path); -+ } -+ else { -+ fprintf(stderr, "SessionPath not defined\n"); -+ } -+ } -+ else -+ { -+ fprintf(stderr, "Failed to create the keyboard file\n"); -+ } -+ - if (nxagentOption(ClientOs) == ClientOsLinux && - drules != NULL && dmodel != NULL && - (strcmp(drules, "evdev") == 0 || diff --git a/debian/patches/series b/debian/patches/series index cfe913d..d342015 100644 --- a/debian/patches/series +++ b/debian/patches/series @@ -1,4 +1,3 @@ -105_nxagent_export-remote-keyboard-config.full.patch 106_nxagent_utf8-copy-clipboard.full.patch 107_nxagent_clipboard-compound-text+small-bed-sheets.full.patch 108_nxagent_wine-close-delay.full.patch diff --git a/nx-X11/programs/Xserver/hw/nxagent/Error.c b/nx-X11/programs/Xserver/hw/nxagent/Error.c index d901643..df62cf4 100644 --- a/nx-X11/programs/Xserver/hw/nxagent/Error.c +++ b/nx-X11/programs/Xserver/hw/nxagent/Error.c @@ -497,7 +497,7 @@ char *nxagentGetRootPath(void) return rootPath; } -char *nxagentGetSessionPath() +char *nxagentGetSessionPath(void) { char *rootPath; diff --git a/nx-X11/programs/Xserver/hw/nxagent/Error.h b/nx-X11/programs/Xserver/hw/nxagent/Error.h index e55fd71..51d6171 100644 --- a/nx-X11/programs/Xserver/hw/nxagent/Error.h +++ b/nx-X11/programs/Xserver/hw/nxagent/Error.h @@ -34,4 +34,6 @@ void nxagentStartRedirectToClientsLog(void); void nxagentEndRedirectToClientsLog(void); +char *nxagentGetSessionPath(void); + #endif /* __Error_H__ */ diff --git a/nx-X11/programs/Xserver/hw/nxagent/Keyboard.c b/nx-X11/programs/Xserver/hw/nxagent/Keyboard.c index 6039e5c..1637f0c 100644 --- a/nx-X11/programs/Xserver/hw/nxagent/Keyboard.c +++ b/nx-X11/programs/Xserver/hw/nxagent/Keyboard.c @@ -52,6 +52,7 @@ is" without express or implied warranty. #include "Keyboard.h" #include "Events.h" #include "Options.h" +#include "Error.h" #include "NXlib.h" @@ -72,6 +73,8 @@ is" without express or implied warranty. #include "Xatom.h" +#include <errno.h> + static int nxagentXkbGetNames(char **rules, char **model, char **layout, char **variant, char **options); @@ -1790,6 +1793,48 @@ void nxagentKeycodeConversionSetup(void) } #endif + if (drulesLen != 0) + { + char *sessionpath = nxagentGetSessionPath(); + if (sessionpath != NULL){ + int keyboard_file_path_size = strlen(sessionpath) + strlen("/keyboard"); + char *keyboard_file_path = malloc((keyboard_file_path_size + 1) * sizeof(char)); + FILE *keyboard_file; + if ( keyboard_file_path == NULL) + { + FatalError("nxagentKeyboardProc: malloc failed."); + } + strcpy(keyboard_file_path, sessionpath); + strcat(keyboard_file_path, "/keyboard"); + if ((keyboard_file = fopen(keyboard_file_path, "w")) != NULL) { + if ( drules != NULL ) + fprintf(keyboard_file, "rules=%s\n", drules); + if ( dmodel != NULL ) + fprintf(keyboard_file, "model=%s\n", dmodel); + if ( dlayout != NULL ) + fprintf(keyboard_file, "layout=%s\n", dlayout); + if ( dvariant != NULL ) + fprintf(keyboard_file, "variant=%s\n", dvariant); + if ( doptions != NULL ) + fprintf(keyboard_file, "options=%s\n", doptions); + fclose(keyboard_file); + fprintf(stderr, "keyboard file created\n"); + } + else { + int save_err = errno; + fprintf(stderr, "keyboard file not created: %s\n", strerror(save_err)); + } + free(keyboard_file_path); + } + else { + fprintf(stderr, "SessionPath not defined\n"); + } + } + else + { + fprintf(stderr, "Failed to create the keyboard file\n"); + } + if (nxagentOption(ClientOs) == ClientOsLinux && drules != NULL && dmodel != NULL && (strcmp(drules, "evdev") == 0 || -- Alioth's /srv/git/_hooks_/post-receive-email on /srv/git/code.x2go.org/nx-libs.git
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 9674c43460e69eb88fa97f6b69911d61d0f767cd Author: Mike Gabriel <mike.gabriel@das-netzwerkteam.de> Date: Tue Feb 10 19:00:06 2015 +0100 UTF-8 Clipboard copying (106_nxagent_utf8-copy-clipboard.full.patch). Enable UTF-8 clipboard copies. Originally contributed by FreeNX Team (dimbor). --- .../106_nxagent_utf8-copy-clipboard.full.patch | 52 -------------------- debian/patches/series | 1 - nx-X11/programs/Xserver/hw/nxagent/Clipboard.c | 16 ++++-- 3 files changed, 12 insertions(+), 57 deletions(-) diff --git a/debian/patches/106_nxagent_utf8-copy-clipboard.full.patch b/debian/patches/106_nxagent_utf8-copy-clipboard.full.patch deleted file mode 100644 index 9c0a047..0000000 --- a/debian/patches/106_nxagent_utf8-copy-clipboard.full.patch +++ /dev/null @@ -1,52 +0,0 @@ -Description: UTF-8 Clipboard copying - Enable UTF-8 clipboard copies. - . - Originally contributed by FreeNX Team (dimbor). -Forwarded: not-yet -Author: Mike Gabriel <mike.gabriel@das-netzwerkteam.de> -Last-Update: 2011-12-31 ---- a/nx-X11/programs/Xserver/hw/nxagent/Clipboard.c -+++ b/nx-X11/programs/Xserver/hw/nxagent/Clipboard.c -@@ -166,7 +166,9 @@ - - if (target == XA_STRING) return True; - if (target == serverTEXT) return True; -- -+ /* by dimbor */ -+ if (target == serverUTF8_STRING) return True; -+ - return False; - } - -@@ -402,7 +404,12 @@ - lastServerProperty = X->xselectionrequest.property; - lastServerRequestor = X->xselectionrequest.requestor; - lastServerTarget = X->xselectionrequest.target; -- lastServerTime = X->xselectionrequest.time; -+ -+ /* by dimbor */ -+ if (lastServerTarget != XA_STRING) -+ lastServerTarget = serverUTF8_STRING; -+ -+ lastServerTime = X->xselectionrequest.time; - - x.u.u.type = SelectionRequest; - x.u.selectionRequest.time = GetTimeInMillis(); -@@ -424,11 +431,12 @@ - - x.u.selectionRequest.selection = CurrentSelections[i].selection; - -- /* -- * x.u.selectionRequest.target = X->xselectionrequest.target; -- */ -- -- x.u.selectionRequest.target = XA_STRING; -+ /* by dimbor (idea from zahvatov) */ -+ if (X->xselectionrequest.target != XA_STRING) -+ x.u.selectionRequest.target = clientUTF8_STRING; -+ else -+ x.u.selectionRequest.target = XA_STRING; -+ - x.u.selectionRequest.property = clientCutProperty; - - (void) TryClientEvents(lastSelectionOwner[i].client, &x, 1, diff --git a/debian/patches/series b/debian/patches/series index d342015..c0c3426 100644 --- a/debian/patches/series +++ b/debian/patches/series @@ -1,4 +1,3 @@ -106_nxagent_utf8-copy-clipboard.full.patch 107_nxagent_clipboard-compound-text+small-bed-sheets.full.patch 108_nxagent_wine-close-delay.full.patch 110_nxagent_createpixmap-bounds-check.full.patch diff --git a/nx-X11/programs/Xserver/hw/nxagent/Clipboard.c b/nx-X11/programs/Xserver/hw/nxagent/Clipboard.c index 2742e14..d17f154 100644 --- a/nx-X11/programs/Xserver/hw/nxagent/Clipboard.c +++ b/nx-X11/programs/Xserver/hw/nxagent/Clipboard.c @@ -166,6 +166,8 @@ Bool nxagentValidServerTargets(Atom target) if (target == XA_STRING) return True; if (target == serverTEXT) return True; + /* by dimbor */ + if (target == serverUTF8_STRING) return True; return False; } @@ -402,6 +404,11 @@ FIXME: Do we need this? lastServerProperty = X->xselectionrequest.property; lastServerRequestor = X->xselectionrequest.requestor; lastServerTarget = X->xselectionrequest.target; + + /* by dimbor */ + if (lastServerTarget != XA_STRING) + lastServerTarget = serverUTF8_STRING; + lastServerTime = X->xselectionrequest.time; x.u.u.type = SelectionRequest; @@ -424,11 +431,12 @@ FIXME: Do we need this? x.u.selectionRequest.selection = CurrentSelections[i].selection; - /* - * x.u.selectionRequest.target = X->xselectionrequest.target; - */ + /* by dimbor (idea from zahvatov) */ + if (X->xselectionrequest.target != XA_STRING) + x.u.selectionRequest.target = clientUTF8_STRING; + else + x.u.selectionRequest.target = XA_STRING; - x.u.selectionRequest.target = XA_STRING; x.u.selectionRequest.property = clientCutProperty; (void) TryClientEvents(lastSelectionOwner[i].client, &x, 1, -- Alioth's /srv/git/_hooks_/post-receive-email on /srv/git/code.x2go.org/nx-libs.git
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 658d07e939261da0cb4835f03ab908e16540b57c Author: Mike Gabriel <mike.gabriel@das-netzwerkteam.de> Date: Tue Feb 10 19:04:00 2015 +0100 Prevent sending COMPOUND_TEXT (107_nxagent_clipboard-compound-text+small-bed-sheets.full.patch). Do not send COMPOUND_TEXT to client. Originally contributed by FreeNX Team (dimbor). --- ...board-compound-text+small-bed-sheets.full.patch | 47 -------------------- debian/patches/series | 1 - nx-X11/programs/Xserver/hw/nxagent/Clipboard.c | 7 +-- nx-X11/programs/Xserver/hw/nxagent/Image.c | 7 +++ 4 files changed, 11 insertions(+), 51 deletions(-) diff --git a/debian/patches/107_nxagent_clipboard-compound-text+small-bed-sheets.full.patch b/debian/patches/107_nxagent_clipboard-compound-text+small-bed-sheets.full.patch deleted file mode 100644 index 129cb70..0000000 --- a/debian/patches/107_nxagent_clipboard-compound-text+small-bed-sheets.full.patch +++ /dev/null @@ -1,47 +0,0 @@ -Description: Prevent sending COMPOUND_TEXT - Do not send COMPOUND_TEXT to client. - . - Originally contributed by FreeNX Team (dimbor). -Forwarded: not-yet -Author: Mike Gabriel <mike.gabriel@das-netzwerkteam.de> -Last-Update: 2011-12-31 ---- a/nx-X11/programs/Xserver/hw/nxagent/Clipboard.c -+++ b/nx-X11/programs/Xserver/hw/nxagent/Clipboard.c -@@ -1226,10 +1226,11 @@ - Atom xa_STRING[4]; - xEvent x; - -+ /* --- Order changed by dimbor (prevent sending COMPOUND_TEXT to client --- */ - xa_STRING[0] = XA_STRING; -- xa_STRING[1] = clientTEXT; -- xa_STRING[2] = clientCOMPOUND_TEXT; -- xa_STRING[3] = clientUTF8_STRING; -+ xa_STRING[1] = clientUTF8_STRING; -+ xa_STRING[2] = clientTEXT; -+ xa_STRING[3] = clientCOMPOUND_TEXT; - - ChangeWindowProperty(pWin, - property, ---- a/nx-X11/programs/Xserver/hw/nxagent/Image.c -+++ b/nx-X11/programs/Xserver/hw/nxagent/Image.c -@@ -644,6 +644,10 @@ - pDrawable -> depth != 1 && - nxagentOption(DeferLevel) >= 1) - { -+ /* -- changed by dimbor (small "bed-sheets" never need be prevented - always put) --*/ -+ if (dstHeight > 16) -+ { -+ /* -------------------------------------------------------------------------------- */ - #ifdef TEST - fprintf(stderr, "nxagentPutImage: WARNING! Prevented operation on region [%d,%d,%d,%d] " - "for drawable at [%p] with drawable pixmap.\n", pRegion -> extents.x1, -@@ -654,6 +658,9 @@ - nxagentMarkCorruptedRegion(pDrawable, pRegion); - - goto nxagentPutImageEnd; -+ /* --- changed by dimbor ---*/ -+ } -+ /* ------------------------- */ - } - - if (pDrawable -> type == DRAWABLE_WINDOW && diff --git a/debian/patches/series b/debian/patches/series index c0c3426..7f8abfc 100644 --- a/debian/patches/series +++ b/debian/patches/series @@ -1,4 +1,3 @@ -107_nxagent_clipboard-compound-text+small-bed-sheets.full.patch 108_nxagent_wine-close-delay.full.patch 110_nxagent_createpixmap-bounds-check.full.patch 200_nxagent_check-binary-x2go-flavour.full.patch diff --git a/nx-X11/programs/Xserver/hw/nxagent/Clipboard.c b/nx-X11/programs/Xserver/hw/nxagent/Clipboard.c index d17f154..2e409e4 100644 --- a/nx-X11/programs/Xserver/hw/nxagent/Clipboard.c +++ b/nx-X11/programs/Xserver/hw/nxagent/Clipboard.c @@ -1226,10 +1226,11 @@ int nxagentConvertSelection(ClientPtr client, WindowPtr pWin, Atom selection, Atom xa_STRING[4]; xEvent x; + /* --- Order changed by dimbor (prevent sending COMPOUND_TEXT to client --- */ xa_STRING[0] = XA_STRING; - xa_STRING[1] = clientTEXT; - xa_STRING[2] = clientCOMPOUND_TEXT; - xa_STRING[3] = clientUTF8_STRING; + xa_STRING[1] = clientUTF8_STRING; + xa_STRING[2] = clientTEXT; + xa_STRING[3] = clientCOMPOUND_TEXT; ChangeWindowProperty(pWin, property, diff --git a/nx-X11/programs/Xserver/hw/nxagent/Image.c b/nx-X11/programs/Xserver/hw/nxagent/Image.c index e499b7a..1f0b735 100644 --- a/nx-X11/programs/Xserver/hw/nxagent/Image.c +++ b/nx-X11/programs/Xserver/hw/nxagent/Image.c @@ -644,6 +644,10 @@ FIXME: Should use these. pDrawable -> depth != 1 && nxagentOption(DeferLevel) >= 1) { + /* -- changed by dimbor (small "bed-sheets" never need be prevented - always put) --*/ + if (dstHeight > 16) + { + /* -------------------------------------------------------------------------------- */ #ifdef TEST fprintf(stderr, "nxagentPutImage: WARNING! Prevented operation on region [%d,%d,%d,%d] " "for drawable at [%p] with drawable pixmap.\n", pRegion -> extents.x1, @@ -654,6 +658,9 @@ FIXME: Should use these. nxagentMarkCorruptedRegion(pDrawable, pRegion); goto nxagentPutImageEnd; + /* --- changed by dimbor ---*/ + } + /* ------------------------- */ } if (pDrawable -> type == DRAWABLE_WINDOW && -- Alioth's /srv/git/_hooks_/post-receive-email on /srv/git/code.x2go.org/nx-libs.git
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 223f5548b70910a2d745b7b48d2096f29b560def Author: Mike Gabriel <mike.gabriel@das-netzwerkteam.de> Date: Tue Feb 10 19:14:04 2015 +0100 Wine Close Delay (108_nxagent_wine-close-delay.full.patch). Wine close delay. Originally contributed by FreeNX team (dimbor). --- .../108_nxagent_wine-close-delay.full.patch | 60 -------------------- debian/patches/series | 1 - nx-X11/programs/Xserver/hw/nxagent/Window.c | 30 ++++++++++ 3 files changed, 30 insertions(+), 61 deletions(-) diff --git a/debian/patches/108_nxagent_wine-close-delay.full.patch b/debian/patches/108_nxagent_wine-close-delay.full.patch deleted file mode 100644 index 7a9c18c..0000000 --- a/debian/patches/108_nxagent_wine-close-delay.full.patch +++ /dev/null @@ -1,60 +0,0 @@ -Description: Wine Close Delay - Wine close delay. - . - Originally contributed by FreeNX Team (dimbor). -Forwarded: not-yet -Author: Mike Gabriel <mike.gabriel@das-netzwerkteam.de> -Last-Update: 2011-12-31 ---- a/nx-X11/programs/Xserver/hw/nxagent/Window.c -+++ b/nx-X11/programs/Xserver/hw/nxagent/Window.c -@@ -176,6 +176,14 @@ - - static int nxagentForceExposure(WindowPtr pWin, pointer ptr); - -+/* by dimbor */ -+typedef struct -+{ -+ CARD32 state; -+ Window icon; -+} -+nxagentWMStateRec; -+ - /* - * This is currently unused. - */ -@@ -1861,6 +1869,17 @@ - nxagentAddConfiguredWindow(pWin, CWStackingOrder); - nxagentAddConfiguredWindow(pWin, CW_Shape); - -+ /* add by dimbor */ -+ if (nxagentOption(Rootless) && nxagentWindowTopLevel(pWin)) -+ { -+ Atom prop = MakeAtom("WM_STATE", strlen("WM_STATE"), True); -+ nxagentWMStateRec wmState; -+ wmState.state = 1; /* NormalState */ -+ wmState.icon = None; -+ if (ChangeWindowProperty(pWin, prop, prop, 32, 0, 2, &wmState, 1) != Success) -+ fprintf(stderr, "nxagentRealizeWindow: Additing WM_STATE fail.\n"); -+ } -+ - #ifdef SHAPE - - /* -@@ -1907,6 +1926,17 @@ - return True; - } - -+ /* add by dimbor */ -+ if (nxagentOption(Rootless) && nxagentWindowTopLevel(pWin)) -+ { -+ Atom prop = MakeAtom("WM_STATE", strlen("WM_STATE"), True); -+ nxagentWMStateRec wmState; -+ wmState.state = 3; /* WithdrawnState */ -+ wmState.icon = None; -+ if (ChangeWindowProperty(pWin, prop, prop, 32, 0, 2, &wmState, 1) != Success) -+ fprintf(stderr, "nxagentUnRealizeWindow: Changing WM_STATE failed.\n"); -+ } -+ - XUnmapWindow(nxagentDisplay, nxagentWindow(pWin)); - - return True; diff --git a/debian/patches/series b/debian/patches/series index 7f8abfc..c904d18 100644 --- a/debian/patches/series +++ b/debian/patches/series @@ -1,4 +1,3 @@ -108_nxagent_wine-close-delay.full.patch 110_nxagent_createpixmap-bounds-check.full.patch 200_nxagent_check-binary-x2go-flavour.full.patch 201_nxagent_set-x2go-icon-if-x2goagent-flavour.full.patch diff --git a/nx-X11/programs/Xserver/hw/nxagent/Window.c b/nx-X11/programs/Xserver/hw/nxagent/Window.c index 2ba37a5..c4aedf4 100644 --- a/nx-X11/programs/Xserver/hw/nxagent/Window.c +++ b/nx-X11/programs/Xserver/hw/nxagent/Window.c @@ -176,6 +176,14 @@ static void nxagentReconfigureWindow(pointer, XID, pointer); static int nxagentForceExposure(WindowPtr pWin, pointer ptr); +/* by dimbor */ +typedef struct +{ + CARD32 state; + Window icon; +} +nxagentWMStateRec; + /* * This is currently unused. */ @@ -1861,6 +1869,17 @@ Bool nxagentRealizeWindow(WindowPtr pWin) nxagentAddConfiguredWindow(pWin, CWStackingOrder); nxagentAddConfiguredWindow(pWin, CW_Shape); + /* add by dimbor */ + if (nxagentOption(Rootless) && nxagentWindowTopLevel(pWin)) + { + Atom prop = MakeAtom("WM_STATE", strlen("WM_STATE"), True); + nxagentWMStateRec wmState; + wmState.state = 1; /* NormalState */ + wmState.icon = None; + if (ChangeWindowProperty(pWin, prop, prop, 32, 0, 2, &wmState, 1) != Success) + fprintf(stderr, "nxagentRealizeWindow: Adding WM_STATE fail.\n"); + } + #ifdef SHAPE /* @@ -1907,6 +1926,17 @@ Bool nxagentUnrealizeWindow(pWin) return True; } + /* add by dimbor */ + if (nxagentOption(Rootless) && nxagentWindowTopLevel(pWin)) + { + Atom prop = MakeAtom("WM_STATE", strlen("WM_STATE"), True); + nxagentWMStateRec wmState; + wmState.state = 3; /* WithdrawnState */ + wmState.icon = None; + if (ChangeWindowProperty(pWin, prop, prop, 32, 0, 2, &wmState, 1) != Success) + fprintf(stderr, "nxagentUnRealizeWindow: Changing WM_STATE failed.\n"); + } + XUnmapWindow(nxagentDisplay, nxagentWindow(pWin)); return True; -- Alioth's /srv/git/_hooks_/post-receive-email on /srv/git/code.x2go.org/nx-libs.git
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 471223907081355a288a315b33a2b70eb4c8fb1e Author: Mike Gabriel <mike.gabriel@das-netzwerkteam.de> Date: Tue Feb 10 19:17:58 2015 +0100 Avoid large pixmaps (110_nxagent_createpixmap-bounds-check.full.patch). It is allowed to try and allocate a pixmap which is larger than 32767 in either dimension. However, all of the framebuffer code is buggy and does not reliably draw to such big pixmaps, basically because the Region data structure operates with signed shorts for the rectangles in it. Furthermore, several places in the X server computes the size in bytes of the pixmap and tries to store it in an integer. This integer can overflow and cause the allocated size to be much smaller. So, such big pixmaps are rejected here with a BadAlloc Originally contributed by FreeNX Team --- ...10_nxagent_createpixmap-bounds-check.full.patch | 44 -------------------- debian/patches/series | 1 - nx-X11/programs/Xserver/hw/nxagent/NXdispatch.c | 17 ++++++++ 3 files changed, 17 insertions(+), 45 deletions(-) diff --git a/debian/patches/110_nxagent_createpixmap-bounds-check.full.patch b/debian/patches/110_nxagent_createpixmap-bounds-check.full.patch deleted file mode 100644 index d65862b..0000000 --- a/debian/patches/110_nxagent_createpixmap-bounds-check.full.patch +++ /dev/null @@ -1,44 +0,0 @@ -Description: Avoid large pixmaps - It is allowed to try and allocate a pixmap which is larger than - 32767 in either dimension. However, all of the framebuffer code - is buggy and does not reliably draw to such big pixmaps, basically - because the Region data structure operates with signed shorts - for the rectangles in it. - . - Furthermore, several places in the X server computes the - size in bytes of the pixmap and tries to store it in an - integer. This integer can overflow and cause the allocated size - to be much smaller. - . - So, such big pixmaps are rejected here with a BadAlloc - . - Originally contributed by FreeNX Team -Forwarded: pending... -Author: Mike Gabriel <mike.gabriel@das-netzwerkteam.de> -Last-Update: 2011-12-31 ---- a/nx-X11/programs/Xserver/hw/nxagent/NXdispatch.c -+++ b/nx-X11/programs/Xserver/hw/nxagent/NXdispatch.c -@@ -1973,6 +1973,23 @@ - client->errorValue = 0; - return BadValue; - } -+ if (stuff->width > 32767 || stuff->height > 32767) -+ { -+ /* It is allowed to try and allocate a pixmap which is larger than -+ * 32767 in either dimension. However, all of the framebuffer code -+ * is buggy and does not reliably draw to such big pixmaps, basically -+ * because the Region data structure operates with signed shorts -+ * for the rectangles in it. -+ * -+ * Furthermore, several places in the X server computes the -+ * size in bytes of the pixmap and tries to store it in an -+ * integer. This integer can overflow and cause the allocated size -+ * to be much smaller. -+ * -+ * So, such big pixmaps are rejected here with a BadAlloc -+ */ -+ return BadAlloc; -+ } - if (stuff->depth != 1) - { - pDepth = pDraw->pScreen->allowedDepths; diff --git a/debian/patches/series b/debian/patches/series index c904d18..5a5a30e 100644 --- a/debian/patches/series +++ b/debian/patches/series @@ -1,4 +1,3 @@ -110_nxagent_createpixmap-bounds-check.full.patch 200_nxagent_check-binary-x2go-flavour.full.patch 201_nxagent_set-x2go-icon-if-x2goagent-flavour.full.patch 202_nx-X11_enable-xinerama.full.patch diff --git a/nx-X11/programs/Xserver/hw/nxagent/NXdispatch.c b/nx-X11/programs/Xserver/hw/nxagent/NXdispatch.c index 4f59b80..77e2bf4 100644 --- a/nx-X11/programs/Xserver/hw/nxagent/NXdispatch.c +++ b/nx-X11/programs/Xserver/hw/nxagent/NXdispatch.c @@ -1973,6 +1973,23 @@ ProcCreatePixmap(client) client->errorValue = 0; return BadValue; } + if (stuff->width > 32767 || stuff->height > 32767) + { + /* It is allowed to try and allocate a pixmap which is larger than + * 32767 in either dimension. However, all of the framebuffer code + * is buggy and does not reliably draw to such big pixmaps, basically + * because the Region data structure operates with signed shorts + * for the rectangles in it. + * + * Furthermore, several places in the X server computes the + * size in bytes of the pixmap and tries to store it in an + * integer. This integer can overflow and cause the allocated size + * to be much smaller. + * + * So, such big pixmaps are rejected here with a BadAlloc + */ + return BadAlloc; + } if (stuff->depth != 1) { pDepth = pDraw->pScreen->allowedDepths; -- Alioth's /srv/git/_hooks_/post-receive-email on /srv/git/code.x2go.org/nx-libs.git
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 1681f1110ece0e5ad0accda009f106a2081c660c Author: Oleksandr Shneyder <oleksandr.shneyder@obviously-nice.de> Date: Tue Feb 10 19:19:25 2015 +0100 Detect nxagent/x2goagent flavour (200_nxagent_check-binary-x2go-flavour.full.patch). 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 --- ...00_nxagent_check-binary-x2go-flavour.full.patch | 64 -------------------- debian/patches/series | 1 - nx-X11/programs/Xserver/hw/nxagent/Init.c | 28 +++++++++ nx-X11/programs/Xserver/hw/nxagent/Init.h | 2 + 4 files changed, 30 insertions(+), 65 deletions(-) diff --git a/debian/patches/200_nxagent_check-binary-x2go-flavour.full.patch b/debian/patches/200_nxagent_check-binary-x2go-flavour.full.patch deleted file mode 100644 index c692020..0000000 --- a/debian/patches/200_nxagent_check-binary-x2go-flavour.full.patch +++ /dev/null @@ -1,64 +0,0 @@ -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@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 -@@ -177,6 +177,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. - */ -@@ -193,6 +216,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/series b/debian/patches/series index 5a5a30e..f1c8a87 100644 --- a/debian/patches/series +++ b/debian/patches/series @@ -1,4 +1,3 @@ -200_nxagent_check-binary-x2go-flavour.full.patch 201_nxagent_set-x2go-icon-if-x2goagent-flavour.full.patch 202_nx-X11_enable-xinerama.full.patch 203_nxagent_disable-rootless-exit.full.patch diff --git a/nx-X11/programs/Xserver/hw/nxagent/Init.c b/nx-X11/programs/Xserver/hw/nxagent/Init.c index acd5d41..1794f15 100644 --- a/nx-X11/programs/Xserver/hw/nxagent/Init.c +++ b/nx-X11/programs/Xserver/hw/nxagent/Init.c @@ -177,6 +177,29 @@ int nxagentSaveUnder; 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. */ @@ -193,6 +216,11 @@ void InitOutput(ScreenInfo *screenInfo, int argc, char *argv[]) #endif /* + * Check if we running as X2Go Agent + */ + checkX2goAgent(); + + /* * Print our pid and version information. */ diff --git a/nx-X11/programs/Xserver/hw/nxagent/Init.h b/nx-X11/programs/Xserver/hw/nxagent/Init.h index 2dc0f5c..b516c7b 100644 --- a/nx-X11/programs/Xserver/hw/nxagent/Init.h +++ b/nx-X11/programs/Xserver/hw/nxagent/Init.h @@ -37,6 +37,8 @@ extern int nxagentDoFullGeneration; extern int nxagentBackingStore; extern int nxagentSaveUnder; +extern int nxagentX2go; + extern ServerGrabInfoRec nxagentGrabServerInfo; #endif /* __Init_H__ */ -- Alioth's /srv/git/_hooks_/post-receive-email on /srv/git/code.x2go.org/nx-libs.git
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 6aa18cc28c4adee20b7a6494c8acb430380c4c98 Author: Oleksandr Shneyder <oleksandr.shneyder@obviously-nice.de> Date: Tue Feb 10 19:21:35 2015 +0100 X2Go icon when run with x2goagent flavour (201_nxagent_set-x2go-icon-if-x2goagent-flavour.full.patch). Depending on the binary name of the agent either nxagent.xpm or x2go.xpm is used as window icon. --- ...t_set-x2go-icon-if-x2goagent-flavour.full.patch | 219 -------------------- debian/patches/series | 1 - nx-X11/programs/Xserver/hw/nxagent/Display.c | 24 ++- nx-X11/programs/Xserver/hw/nxagent/Icons.h | 2 + nx-X11/programs/Xserver/hw/nxagent/x2go.xpm | 148 +++++++++++++ 5 files changed, 171 insertions(+), 223 deletions(-) diff --git a/debian/patches/201_nxagent_set-x2go-icon-if-x2goagent-flavour.full.patch b/debian/patches/201_nxagent_set-x2go-icon-if-x2goagent-flavour.full.patch deleted file mode 100644 index 48e4c4a..0000000 --- a/debian/patches/201_nxagent_set-x2go-icon-if-x2goagent-flavour.full.patch +++ /dev/null @@ -1,219 +0,0 @@ -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@obviously-nice.de> -Last-Update: 2012-01-11 ---- a/nx-X11/programs/Xserver/hw/nxagent/Display.c -+++ b/nx-X11/programs/Xserver/hw/nxagent/Display.c -@@ -77,6 +77,7 @@ - #include "NXlib.h" - - #include NXAGENT_ICON_NAME -+#include X2GOAGENT_ICON_NAME - - /* - * Set here the required log level. -@@ -1941,12 +1942,29 @@ - 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) - { -@@ -1985,7 +2003,7 @@ - { - status = XpmCreatePixmapFromData(display, - DefaultRootWindow(display), -- nxagentIconData, -+ agentIconData, - &IconPixmap, - &IconShape, - NULL); ---- a/nx-X11/programs/Xserver/hw/nxagent/Icons.h -+++ b/nx-X11/programs/Xserver/hw/nxagent/Icons.h -@@ -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__ */ ---- /dev/null -+++ b/nx-X11/programs/Xserver/hw/nxagent/x2go.xpm -@@ -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/series b/debian/patches/series index f1c8a87..d9b63cc 100644 --- a/debian/patches/series +++ b/debian/patches/series @@ -1,4 +1,3 @@ -201_nxagent_set-x2go-icon-if-x2goagent-flavour.full.patch 202_nx-X11_enable-xinerama.full.patch 203_nxagent_disable-rootless-exit.full.patch 204_nxagent_repaint-solidpict.full.patch diff --git a/nx-X11/programs/Xserver/hw/nxagent/Display.c b/nx-X11/programs/Xserver/hw/nxagent/Display.c index 9031c25..201d9dd 100644 --- a/nx-X11/programs/Xserver/hw/nxagent/Display.c +++ b/nx-X11/programs/Xserver/hw/nxagent/Display.c @@ -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. @@ -1941,12 +1942,29 @@ Bool nxagentMakeIcon(Display *display, Pixmap *nxIcon, Pixmap *nxMask) 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) { @@ -1985,7 +2003,7 @@ Bool nxagentMakeIcon(Display *display, Pixmap *nxIcon, Pixmap *nxMask) { status = XpmCreatePixmapFromData(display, DefaultRootWindow(display), - nxagentIconData, + agentIconData, &IconPixmap, &IconShape, NULL); diff --git a/nx-X11/programs/Xserver/hw/nxagent/Icons.h b/nx-X11/programs/Xserver/hw/nxagent/Icons.h index 0601584..98e8796 100644 --- a/nx-X11/programs/Xserver/hw/nxagent/Icons.h +++ b/nx-X11/programs/Xserver/hw/nxagent/Icons.h @@ -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__ */ diff --git a/nx-X11/programs/Xserver/hw/nxagent/x2go.xpm b/nx-X11/programs/Xserver/hw/nxagent/x2go.xpm new file mode 100644 index 0000000..fbe245d --- /dev/null +++ b/nx-X11/programs/Xserver/hw/nxagent/x2go.xpm @@ -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#....."}; -- Alioth's /srv/git/_hooks_/post-receive-email on /srv/git/code.x2go.org/nx-libs.git
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 d26930d59838e2a8305c66b67aaa163db157920c Author: Oleksandr Shneyder <oleksandr.shneyder@obviously-nice.de> Date: Tue Feb 10 19:23:16 2015 +0100 Enable Xinerama support for NX (202_nx-X11_enable-xinerama.full.patch). This patch adds Xinerama awareness to NX agent windows. The advantage of Xinerama awareness is that an NX session window will only maximize to the dimensions of the active physical display. --- .../patches/202_nx-X11_enable-xinerama.full.patch | 292 -------------------- debian/patches/series | 1 - nx-X11/config/cf/X11.tmpl | 2 +- nx-X11/config/cf/host.def | 2 +- nx-X11/lib/Xinerama/Xinerama.c | 98 +++++-- nx-X11/programs/Xserver/Imakefile | 2 +- nx-X11/programs/Xserver/Xext/panoramiX.c | 9 - nx-X11/programs/Xserver/Xext/panoramiX.h | 2 +- nx-X11/programs/Xserver/hw/nxagent/Imakefile | 2 +- nx-X11/programs/Xserver/hw/nxagent/X/NXxvdisp.c | 30 +- 10 files changed, 93 insertions(+), 347 deletions(-) diff --git a/debian/patches/202_nx-X11_enable-xinerama.full.patch b/debian/patches/202_nx-X11_enable-xinerama.full.patch deleted file mode 100644 index 6845ec5..0000000 --- a/debian/patches/202_nx-X11_enable-xinerama.full.patch +++ /dev/null @@ -1,292 +0,0 @@ -Description: Enable Xinerama support for NX - This patch adds Xinerama awareness to NX agent windows. - . - The advantage of Xinerama awareness is that an NX session window - will only maximize to the dimensions of the active physical - display. -Forwarded: pending -Author: Oleksandr Shneyder <oleksandr.shneyder@obviously-nice.de> -Last-Update: 2012-01-13 ---- a/nx-X11/config/cf/host.def -+++ b/nx-X11/config/cf/host.def -@@ -686,7 +686,7 @@ - * - #define BuildXinerama NO - */ --#define BuildXinerama NO -+#define BuildXinerama YES - - /* - * If you don't want to build support for the GLX extension, uncomment this. ---- a/nx-X11/config/cf/X11.tmpl -+++ b/nx-X11/config/cf/X11.tmpl -@@ -456,7 +456,7 @@ - #define BuildXinerama NO - #endif - #ifndef BuildXineramaLibrary --#define BuildXineramaLibrary (BuildXinerama && !BuildServersOnly) -+#define BuildXineramaLibrary (BuildXinerama) - #endif - #ifndef BuildDmxDevelTools - #define BuildDmxDevelTools NO ---- a/nx-X11/lib/Xinerama/Xinerama.c -+++ b/nx-X11/lib/Xinerama/Xinerama.c -@@ -34,7 +34,7 @@ - #include <X11/extensions/panoramiXext.h> - #include <X11/extensions/panoramiXproto.h> - #include <X11/extensions/Xinerama.h> -- -+#include <stdio.h> - - static XExtensionInfo _panoramiX_ext_info_data; - static XExtensionInfo *panoramiX_ext_info = &_panoramiX_ext_info_data; -@@ -249,6 +249,16 @@ - xXineramaIsActiveReq *req; - XExtDisplayInfo *info = find_display (dpy); - -+ -+ FILE* fptr; -+ if((fptr=fopen(getenv("NX_XINERAMA_CONF"),"r"))!=NULL) { -+ fclose (fptr); -+ return True; -+ } -+ else { -+ return False; -+ } -+ - if(!XextHasExtension(info)) - return False; /* server doesn't even have the extension */ - -@@ -266,7 +276,6 @@ - return rep.state; - } - --#include <stdio.h> - - XineramaScreenInfo * - XineramaQueryScreens( -@@ -279,39 +288,72 @@ - xXineramaQueryScreensReq *req; - XineramaScreenInfo *scrnInfo = NULL; - -- PanoramiXCheckExtension (dpy, info, 0); -+ int i; -+ int x,y,w,h; -+ FILE* fptr; -+ if((fptr=fopen(getenv("NX_XINERAMA_CONF"),"r"))==NULL) { -+ PanoramiXCheckExtension (dpy, info, 0); -+ LockDisplay (dpy); -+ GetReq (XineramaQueryScreens, req); -+ req->reqType = info->codes->major_opcode; -+ req->panoramiXReqType = X_XineramaQueryScreens; -+ if (!_XReply (dpy, (xReply *) &rep, 0, xFalse)) { -+ UnlockDisplay (dpy); -+ SyncHandle (); -+ return NULL; -+ } -+ if(rep.number) { -+ if((scrnInfo = Xmalloc(sizeof(XineramaScreenInfo) * rep.number))) { -+ xXineramaScreenInfo scratch; -+ int i; -+ -+ for(i = 0; i < rep.number; i++) { -+ _XRead(dpy, (char*)(&scratch), sz_XineramaScreenInfo); -+ scrnInfo[i].screen_number = i; -+ scrnInfo[i].x_org = scratch.x_org; -+ scrnInfo[i].y_org = scratch.y_org; -+ scrnInfo[i].width = scratch.width; -+ scrnInfo[i].height = scratch.height; -+ } -+ -+ *number = rep.number; -+ } else { -+ _XEatData(dpy, rep.length << 2); -+ } -+ } - -- LockDisplay (dpy); -- GetReq (XineramaQueryScreens, req); -- req->reqType = info->codes->major_opcode; -- req->panoramiXReqType = X_XineramaQueryScreens; -- if (!_XReply (dpy, (xReply *) &rep, 0, xFalse)) { - UnlockDisplay (dpy); - SyncHandle (); -- return NULL; -- } - -- if(rep.number) { -- if((scrnInfo = Xmalloc(sizeof(XineramaScreenInfo) * rep.number))) { -- xXineramaScreenInfo scratch; -- int i; -- -- for(i = 0; i < rep.number; i++) { -- _XRead(dpy, (char*)(&scratch), sz_XineramaScreenInfo); -- scrnInfo[i].screen_number = i; -- scrnInfo[i].x_org = scratch.x_org; -- scrnInfo[i].y_org = scratch.y_org; -- scrnInfo[i].width = scratch.width; -- scrnInfo[i].height = scratch.height; -- } -+ } else { - -- *number = rep.number; -- } else -- _XEatData(dpy, rep.length << 2); -+ i=0; -+ while(!feof(fptr)) { -+ w=h=0; -+ fscanf(fptr,"%d %d %d %d",&x,&y,&w,&h); -+ if(w&&h) -+ i++; -+ } -+ rewind(fptr); -+ *number=i; -+ if((scrnInfo = Xmalloc(sizeof(XineramaScreenInfo) * i))) { -+ i=0; -+ while(!feof(fptr)){ -+ w=h=0; -+ fscanf(fptr,"%d %d %d %d",&x,&y,&w,&h); -+ if(w&&h){ -+ scrnInfo[i].screen_number=i; -+ scrnInfo[i].x_org=x; -+ scrnInfo[i].y_org=y; -+ scrnInfo[i].width=w; -+ scrnInfo[i].height=h; -+ i++; -+ } -+ } -+ } -+ fclose(fptr); - } - -- UnlockDisplay (dpy); -- SyncHandle (); - return scrnInfo; - } - ---- a/nx-X11/programs/Xserver/hw/nxagent/Imakefile -+++ b/nx-X11/programs/Xserver/hw/nxagent/Imakefile -@@ -206,7 +206,7 @@ - -UNX_DEBUG_INPUT \ - -DRANDR_10_INTERFACE \ - -DRANDR_12_INTERFACE \ -- -UPANORAMIX \ -+ -DPANORAMIX \ - -UDEBUG_TREE - - all:: $(OBJS) ---- a/nx-X11/programs/Xserver/hw/nxagent/X/NXxvdisp.c -+++ b/nx-X11/programs/Xserver/hw/nxagent/X/NXxvdisp.c -@@ -275,17 +275,19 @@ - case xv_PutVideo: - #ifdef PANORAMIX - if(!noPanoramiXExtension) -- result = (XineramaXvPutVideo(client)); break; -+ result = (XineramaXvPutVideo(client)); - else - #endif -- result = (ProcXvPutVideo(client)); break; -+ result = (ProcXvPutVideo(client)); -+ break; - case xv_PutStill: - #ifdef PANORAMIX - if(!noPanoramiXExtension) -- result = (XineramaXvPutStill(client)); break -+ result = (XineramaXvPutStill(client)); - else - #endif -- result = (ProcXvPutStill(client)); break; -+ result = (ProcXvPutStill(client)); -+ break; - case xv_GetVideo: result = (ProcXvGetVideo(client)); break; - case xv_GetStill: result = (ProcXvGetStill(client)); break; - case xv_GrabPort: result = (ProcXvGrabPort(client)); break; -@@ -295,35 +297,39 @@ - case xv_StopVideo: - #ifdef PANORAMIX - if(!noPanoramiXExtension) -- result = (XineramaXvStopVideo(client)); break; -+ result = (XineramaXvStopVideo(client)); - else - #endif -- result = (ProcXvStopVideo(client)); break; -+ result = (ProcXvStopVideo(client)); -+ break; - case xv_SetPortAttribute: - #ifdef PANORAMIX - if(!noPanoramiXExtension) -- result = (XineramaXvSetPortAttribute(client)); break; -+ result = (XineramaXvSetPortAttribute(client)); - else - #endif -- result = (ProcXvSetPortAttribute(client)); break; -+ result = (ProcXvSetPortAttribute(client)); -+ break; - case xv_GetPortAttribute: result = (ProcXvGetPortAttribute(client)); break; - case xv_QueryBestSize: result = (ProcXvQueryBestSize(client)); break; - case xv_QueryPortAttributes: result = (ProcXvQueryPortAttributes(client)); break; - case xv_PutImage: - #ifdef PANORAMIX - if(!noPanoramiXExtension) -- result = (XineramaXvPutImage(client)); break; -+ result = (XineramaXvPutImage(client)); - else - #endif -- result = (ProcXvPutImage(client)); break; -+ result = (ProcXvPutImage(client)); -+ break; - #ifdef MITSHM - case xv_ShmPutImage: - #ifdef PANORAMIX - if(!noPanoramiXExtension) -- result = (XineramaXvShmPutImage(client)); break; -+ result = (XineramaXvShmPutImage(client)); - else - #endif -- result = (ProcXvShmPutImage(client)); break; -+ result = (ProcXvShmPutImage(client)); -+ break; - #endif - case xv_QueryImageAttributes: result = (ProcXvQueryImageAttributes(client)); break; - case xv_ListImageFormats: result = (ProcXvListImageFormats(client)); break; ---- a/nx-X11/programs/Xserver/Imakefile -+++ b/nx-X11/programs/Xserver/Imakefile -@@ -1021,7 +1021,7 @@ - #else - NXAGENTNXLIBS = -L ../../../nxcomp -L ../../../nxcompext -L ../../../nxcompshad \ - -lXcomp -lXcompext -lXcompshad -lXrender -lX11 -lXext -lXfixes \ -- -L../../../nx-X11/exports/lib -lXtst -lXdamage -lXrandr -lXcomposite -+ -L../../../nx-X11/exports/lib -lXtst -lXdamage -lXrandr -lXcomposite -lXinerama - #endif - - #endif ---- a/nx-X11/programs/Xserver/Xext/panoramiX.c -+++ b/nx-X11/programs/Xserver/Xext/panoramiX.c -@@ -1045,16 +1045,7 @@ - rep.type = X_Reply; - rep.length = 0; - rep.sequenceNumber = client->sequence; --#if 1 -- { -- /* The following hack fools clients into thinking that Xinerama -- * is disabled even though it is not. */ -- extern Bool PanoramiXExtensionDisabledHack; -- rep.state = !noPanoramiXExtension && !PanoramiXExtensionDisabledHack; -- } --#else - rep.state = !noPanoramiXExtension; --#endif - if (client->swapped) { - register int n; - swaps (&rep.sequenceNumber, n); ---- a/nx-X11/programs/Xserver/Xext/panoramiX.h -+++ b/nx-X11/programs/Xserver/Xext/panoramiX.h -@@ -44,7 +44,7 @@ - #define _PANORAMIX_H_ - - #include <X11/extensions/panoramiXext.h> --#include "gcstruct.h" -+/*#include "gcstruct.h"*/ - - - typedef struct _PanoramiXData { diff --git a/debian/patches/series b/debian/patches/series index d9b63cc..746c6ad 100644 --- a/debian/patches/series +++ b/debian/patches/series @@ -1,4 +1,3 @@ -202_nx-X11_enable-xinerama.full.patch 203_nxagent_disable-rootless-exit.full.patch 204_nxagent_repaint-solidpict.full.patch 205_nxagent_refresh-adsl.full.patch diff --git a/nx-X11/config/cf/X11.tmpl b/nx-X11/config/cf/X11.tmpl index c1c92ca..accba40 100644 --- a/nx-X11/config/cf/X11.tmpl +++ b/nx-X11/config/cf/X11.tmpl @@ -456,7 +456,7 @@ XORGRELSTRING = XorgManVersionString #define BuildXinerama NO #endif #ifndef BuildXineramaLibrary -#define BuildXineramaLibrary (BuildXinerama && !BuildServersOnly) +#define BuildXineramaLibrary (BuildXinerama) #endif #ifndef BuildDmxDevelTools #define BuildDmxDevelTools NO diff --git a/nx-X11/config/cf/host.def b/nx-X11/config/cf/host.def index e9f53c2..7d0511f 100644 --- a/nx-X11/config/cf/host.def +++ b/nx-X11/config/cf/host.def @@ -686,7 +686,7 @@ XCOMM $XFree86: xc/config/cf/xf86site.def,v 3.186 2003/06/25 18:06:22 eich Exp $ * #define BuildXinerama NO */ -#define BuildXinerama NO +#define BuildXinerama YES /* * If you don't want to build support for the GLX extension, uncomment this. diff --git a/nx-X11/lib/Xinerama/Xinerama.c b/nx-X11/lib/Xinerama/Xinerama.c index 43084b2..fd717dd 100644 --- a/nx-X11/lib/Xinerama/Xinerama.c +++ b/nx-X11/lib/Xinerama/Xinerama.c @@ -34,7 +34,7 @@ Equipment Corporation. #include <X11/extensions/panoramiXext.h> #include <X11/extensions/panoramiXproto.h> #include <X11/extensions/Xinerama.h> - +#include <stdio.h> static XExtensionInfo _panoramiX_ext_info_data; static XExtensionInfo *panoramiX_ext_info = &_panoramiX_ext_info_data; @@ -249,6 +249,16 @@ Bool XineramaIsActive(Display *dpy) xXineramaIsActiveReq *req; XExtDisplayInfo *info = find_display (dpy); + + FILE* fptr; + if((fptr=fopen(getenv("NX_XINERAMA_CONF"),"r"))!=NULL) { + fclose (fptr); + return True; + } + else { + return False; + } + if(!XextHasExtension(info)) return False; /* server doesn't even have the extension */ @@ -266,7 +276,6 @@ Bool XineramaIsActive(Display *dpy) return rep.state; } -#include <stdio.h> XineramaScreenInfo * XineramaQueryScreens( @@ -279,39 +288,72 @@ XineramaQueryScreens( xXineramaQueryScreensReq *req; XineramaScreenInfo *scrnInfo = NULL; - PanoramiXCheckExtension (dpy, info, 0); + int i; + int x,y,w,h; + FILE* fptr; + if((fptr=fopen(getenv("NX_XINERAMA_CONF"),"r"))==NULL) { + PanoramiXCheckExtension (dpy, info, 0); + LockDisplay (dpy); + GetReq (XineramaQueryScreens, req); + req->reqType = info->codes->major_opcode; + req->panoramiXReqType = X_XineramaQueryScreens; + if (!_XReply (dpy, (xReply *) &rep, 0, xFalse)) { + UnlockDisplay (dpy); + SyncHandle (); + return NULL; + } + if(rep.number) { + if((scrnInfo = Xmalloc(sizeof(XineramaScreenInfo) * rep.number))) { + xXineramaScreenInfo scratch; + int i; + + for(i = 0; i < rep.number; i++) { + _XRead(dpy, (char*)(&scratch), sz_XineramaScreenInfo); + scrnInfo[i].screen_number = i; + scrnInfo[i].x_org = scratch.x_org; + scrnInfo[i].y_org = scratch.y_org; + scrnInfo[i].width = scratch.width; + scrnInfo[i].height = scratch.height; + } + + *number = rep.number; + } else { + _XEatData(dpy, rep.length << 2); + } + } - LockDisplay (dpy); - GetReq (XineramaQueryScreens, req); - req->reqType = info->codes->major_opcode; - req->panoramiXReqType = X_XineramaQueryScreens; - if (!_XReply (dpy, (xReply *) &rep, 0, xFalse)) { UnlockDisplay (dpy); SyncHandle (); - return NULL; - } - if(rep.number) { - if((scrnInfo = Xmalloc(sizeof(XineramaScreenInfo) * rep.number))) { - xXineramaScreenInfo scratch; - int i; - - for(i = 0; i < rep.number; i++) { - _XRead(dpy, (char*)(&scratch), sz_XineramaScreenInfo); - scrnInfo[i].screen_number = i; - scrnInfo[i].x_org = scratch.x_org; - scrnInfo[i].y_org = scratch.y_org; - scrnInfo[i].width = scratch.width; - scrnInfo[i].height = scratch.height; - } + } else { - *number = rep.number; - } else - _XEatData(dpy, rep.length << 2); + i=0; + while(!feof(fptr)) { + w=h=0; + fscanf(fptr,"%d %d %d %d",&x,&y,&w,&h); + if(w&&h) + i++; + } + rewind(fptr); + *number=i; + if((scrnInfo = Xmalloc(sizeof(XineramaScreenInfo) * i))) { + i=0; + while(!feof(fptr)){ + w=h=0; + fscanf(fptr,"%d %d %d %d",&x,&y,&w,&h); + if(w&&h){ + scrnInfo[i].screen_number=i; + scrnInfo[i].x_org=x; + scrnInfo[i].y_org=y; + scrnInfo[i].width=w; + scrnInfo[i].height=h; + i++; + } + } + } + fclose(fptr); } - UnlockDisplay (dpy); - SyncHandle (); return scrnInfo; } diff --git a/nx-X11/programs/Xserver/Imakefile b/nx-X11/programs/Xserver/Imakefile index b01fc2e..8ecb338 100644 --- a/nx-X11/programs/Xserver/Imakefile +++ b/nx-X11/programs/Xserver/Imakefile @@ -1021,7 +1021,7 @@ NXAGENTNXLIBS = -L ../../../nxcomp -L ../../../nxcompext \ #else NXAGENTNXLIBS = -L ../../../nxcomp -L ../../../nxcompext -L ../../../nxcompshad \ -lXcomp -lXcompext -lXcompshad -lXrender -lX11 -lXext -lXfixes \ - -L../../../nx-X11/exports/lib -lXtst -lXdamage -lXrandr -lXcomposite + -L../../../nx-X11/exports/lib -lXtst -lXdamage -lXrandr -lXcomposite -lXinerama #endif #endif diff --git a/nx-X11/programs/Xserver/Xext/panoramiX.c b/nx-X11/programs/Xserver/Xext/panoramiX.c index 33faedc..a1a5b9f 100644 --- a/nx-X11/programs/Xserver/Xext/panoramiX.c +++ b/nx-X11/programs/Xserver/Xext/panoramiX.c @@ -1045,16 +1045,7 @@ ProcXineramaIsActive(ClientPtr client) rep.type = X_Reply; rep.length = 0; rep.sequenceNumber = client->sequence; -#if 1 - { - /* The following hack fools clients into thinking that Xinerama - * is disabled even though it is not. */ - extern Bool PanoramiXExtensionDisabledHack; - rep.state = !noPanoramiXExtension && !PanoramiXExtensionDisabledHack; - } -#else rep.state = !noPanoramiXExtension; -#endif if (client->swapped) { register int n; swaps (&rep.sequenceNumber, n); diff --git a/nx-X11/programs/Xserver/Xext/panoramiX.h b/nx-X11/programs/Xserver/Xext/panoramiX.h index 5fa4ed3..4178b98 100644 --- a/nx-X11/programs/Xserver/Xext/panoramiX.h +++ b/nx-X11/programs/Xserver/Xext/panoramiX.h @@ -44,7 +44,7 @@ Equipment Corporation. #define _PANORAMIX_H_ #include <X11/extensions/panoramiXext.h> -#include "gcstruct.h" +/*#include "gcstruct.h"*/ typedef struct _PanoramiXData { diff --git a/nx-X11/programs/Xserver/hw/nxagent/Imakefile b/nx-X11/programs/Xserver/hw/nxagent/Imakefile index 9657958..a8e1621 100644 --- a/nx-X11/programs/Xserver/hw/nxagent/Imakefile +++ b/nx-X11/programs/Xserver/hw/nxagent/Imakefile @@ -206,7 +206,7 @@ DEFINES = -g $(OS_DEFINES) $(EXT_DEFINES) $(UPG_DEFINES) \ -UNX_DEBUG_INPUT \ -DRANDR_10_INTERFACE \ -DRANDR_12_INTERFACE \ - -UPANORAMIX \ + -DPANORAMIX \ -UDEBUG_TREE all:: $(OBJS) diff --git a/nx-X11/programs/Xserver/hw/nxagent/X/NXxvdisp.c b/nx-X11/programs/Xserver/hw/nxagent/X/NXxvdisp.c index f6dad31..cbb3f63 100644 --- a/nx-X11/programs/Xserver/hw/nxagent/X/NXxvdisp.c +++ b/nx-X11/programs/Xserver/hw/nxagent/X/NXxvdisp.c @@ -275,17 +275,19 @@ ProcXvDispatch(ClientPtr client) case xv_PutVideo: #ifdef PANORAMIX if(!noPanoramiXExtension) - result = (XineramaXvPutVideo(client)); break; + result = (XineramaXvPutVideo(client)); else #endif - result = (ProcXvPutVideo(client)); break; + result = (ProcXvPutVideo(client)); + break; case xv_PutStill: #ifdef PANORAMIX if(!noPanoramiXExtension) - result = (XineramaXvPutStill(client)); break + result = (XineramaXvPutStill(client)); else #endif - result = (ProcXvPutStill(client)); break; + result = (ProcXvPutStill(client)); + break; case xv_GetVideo: result = (ProcXvGetVideo(client)); break; case xv_GetStill: result = (ProcXvGetStill(client)); break; case xv_GrabPort: result = (ProcXvGrabPort(client)); break; @@ -295,35 +297,39 @@ ProcXvDispatch(ClientPtr client) case xv_StopVideo: #ifdef PANORAMIX if(!noPanoramiXExtension) - result = (XineramaXvStopVideo(client)); break; + result = (XineramaXvStopVideo(client)); else #endif - result = (ProcXvStopVideo(client)); break; + result = (ProcXvStopVideo(client)); + break; case xv_SetPortAttribute: #ifdef PANORAMIX if(!noPanoramiXExtension) - result = (XineramaXvSetPortAttribute(client)); break; + result = (XineramaXvSetPortAttribute(client)); else #endif - result = (ProcXvSetPortAttribute(client)); break; + result = (ProcXvSetPortAttribute(client)); + break; case xv_GetPortAttribute: result = (ProcXvGetPortAttribute(client)); break; case xv_QueryBestSize: result = (ProcXvQueryBestSize(client)); break; case xv_QueryPortAttributes: result = (ProcXvQueryPortAttributes(client)); break; case xv_PutImage: #ifdef PANORAMIX if(!noPanoramiXExtension) - result = (XineramaXvPutImage(client)); break; + result = (XineramaXvPutImage(client)); else #endif - result = (ProcXvPutImage(client)); break; + result = (ProcXvPutImage(client)); + break; #ifdef MITSHM case xv_ShmPutImage: #ifdef PANORAMIX if(!noPanoramiXExtension) - result = (XineramaXvShmPutImage(client)); break; + result = (XineramaXvShmPutImage(client)); else #endif - result = (ProcXvShmPutImage(client)); break; + result = (ProcXvShmPutImage(client)); + break; #endif case xv_QueryImageAttributes: result = (ProcXvQueryImageAttributes(client)); break; case xv_ListImageFormats: result = (ProcXvListImageFormats(client)); break; -- Alioth's /srv/git/_hooks_/post-receive-email on /srv/git/code.x2go.org/nx-libs.git
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 4f5dc807a7a421aa0c5f52b84cd33ff41505de38 Author: Oleksandr Shneyder <o.schneyder@phoca-gmbh.de> Date: Tue Feb 10 19:26:42 2015 +0100 Add -norootlessexit cmdline option to nxagent (203_nxagent_disable-rootless-exit.full.patch). This change enables to launch an nxagent in rootless mode that waits forever for Xclients to appear. This feature got added when X2Go introduced Published Applications support. --- .../203_nxagent_disable-rootless-exit.full.patch | 63 -------------------- debian/patches/series | 1 - nx-X11/programs/Xserver/hw/nxagent/Args.c | 7 +++ nx-X11/programs/Xserver/hw/nxagent/Handlers.c | 2 +- nx-X11/programs/Xserver/hw/nxagent/Options.c | 1 + nx-X11/programs/Xserver/hw/nxagent/Options.h | 7 +++ 6 files changed, 16 insertions(+), 65 deletions(-) diff --git a/debian/patches/203_nxagent_disable-rootless-exit.full.patch b/debian/patches/203_nxagent_disable-rootless-exit.full.patch deleted file mode 100644 index 74579f4..0000000 --- a/debian/patches/203_nxagent_disable-rootless-exit.full.patch +++ /dev/null @@ -1,63 +0,0 @@ -Description: Add -norootlessexit cmdline option to nxagent -Author: Oleksandr Shneyder <o.schneyder@phoca-gmbh.de> - ---- a/nx-X11/programs/Xserver/hw/nxagent/Args.c -+++ b/nx-X11/programs/Xserver/hw/nxagent/Args.c -@@ -672,6 +672,12 @@ - return 1; - } - -+ if (!strcmp(argv[i], "-norootlessexit")) { -+ nxagentChangeOption(NoRootlessExit, True); -+ return 1; -+ } -+ -+ - if (!strcmp(argv[i], "-noonce")) - { - nxagentOnce = False; -@@ -1855,6 +1861,7 @@ - ErrorF("The NX system adds the following arguments:\n"); - ErrorF("-forcenx force use of NX protocol messages assuming communication through nxproxy\n"); - ErrorF("-timeout int auto-disconnect timeout in seconds (minimum allowed: 60)\n"); -+ ErrorF("-norootlessexit don't exit if there are no clients in rootless mode\n"); - #ifdef RENDER - ErrorF("-norender disable the use of the render extension\n"); - ErrorF("-nocomposite disable the use of the composite extension\n"); ---- a/nx-X11/programs/Xserver/hw/nxagent/Handlers.c -+++ b/nx-X11/programs/Xserver/hw/nxagent/Handlers.c -@@ -219,7 +219,7 @@ - - if (nxagentOption(Rootless) && - nxagentLastWindowDestroyed && nxagentRootlessDialogPid == 0 && -- now > nxagentLastWindowDestroyedTime + 30 * 1000) -+ now > nxagentLastWindowDestroyedTime + 30 * 1000 && !nxagentOption(NoRootlessExit)) - { - #ifdef WARNING - fprintf(stderr, "nxagentBlockHandler: No application running. Closing the session.\n"); ---- a/nx-X11/programs/Xserver/hw/nxagent/Options.c -+++ b/nx-X11/programs/Xserver/hw/nxagent/Options.c -@@ -56,6 +56,7 @@ - nxagentOptions.Persistent = 1; - nxagentOptions.Rootless = UNDEFINED; - nxagentOptions.Fullscreen = UNDEFINED; -+ nxagentOptions.NoRootlessExit = False; - - nxagentOptions.X = 0; - nxagentOptions.Y = 0; ---- a/nx-X11/programs/Xserver/hw/nxagent/Options.h -+++ b/nx-X11/programs/Xserver/hw/nxagent/Options.h -@@ -381,6 +381,13 @@ - - int ImageRateLimit; - -+ /* -+ * True if agent should not exit if there are no -+ * clients in rootless mode -+ */ -+ -+ int NoRootlessExit; -+ - } AgentOptionsRec; - - typedef AgentOptionsRec *AgentOptionsPtr; diff --git a/debian/patches/series b/debian/patches/series index 746c6ad..424c3e9 100644 --- a/debian/patches/series +++ b/debian/patches/series @@ -1,4 +1,3 @@ -203_nxagent_disable-rootless-exit.full.patch 204_nxagent_repaint-solidpict.full.patch 205_nxagent_refresh-adsl.full.patch 206_nxagent_clipboard-as-nxoption.full.patch diff --git a/nx-X11/programs/Xserver/hw/nxagent/Args.c b/nx-X11/programs/Xserver/hw/nxagent/Args.c index ecf04e2..6666393 100644 --- a/nx-X11/programs/Xserver/hw/nxagent/Args.c +++ b/nx-X11/programs/Xserver/hw/nxagent/Args.c @@ -672,6 +672,12 @@ int ddxProcessArgument(int argc, char *argv[], int i) return 1; } + if (!strcmp(argv[i], "-norootlessexit")) { + nxagentChangeOption(NoRootlessExit, True); + return 1; + } + + if (!strcmp(argv[i], "-noonce")) { nxagentOnce = False; @@ -1855,6 +1861,7 @@ void ddxUseMsg() ErrorF("The NX system adds the following arguments:\n"); ErrorF("-forcenx force use of NX protocol messages assuming communication through nxproxy\n"); ErrorF("-timeout int auto-disconnect timeout in seconds (minimum allowed: 60)\n"); + ErrorF("-norootlessexit don't exit if there are no clients in rootless mode\n"); #ifdef RENDER ErrorF("-norender disable the use of the render extension\n"); ErrorF("-nocomposite disable the use of the composite extension\n"); diff --git a/nx-X11/programs/Xserver/hw/nxagent/Handlers.c b/nx-X11/programs/Xserver/hw/nxagent/Handlers.c index 332816f..1fc6bbf 100644 --- a/nx-X11/programs/Xserver/hw/nxagent/Handlers.c +++ b/nx-X11/programs/Xserver/hw/nxagent/Handlers.c @@ -219,7 +219,7 @@ void nxagentBlockHandler(pointer data, struct timeval **timeout, pointer mask) if (nxagentOption(Rootless) && nxagentLastWindowDestroyed && nxagentRootlessDialogPid == 0 && - now > nxagentLastWindowDestroyedTime + 30 * 1000) + now > nxagentLastWindowDestroyedTime + 30 * 1000 && !nxagentOption(NoRootlessExit)) { #ifdef WARNING fprintf(stderr, "nxagentBlockHandler: No application running. Closing the session.\n"); diff --git a/nx-X11/programs/Xserver/hw/nxagent/Options.c b/nx-X11/programs/Xserver/hw/nxagent/Options.c index ca5be0b..7eac3d8 100644 --- a/nx-X11/programs/Xserver/hw/nxagent/Options.c +++ b/nx-X11/programs/Xserver/hw/nxagent/Options.c @@ -56,6 +56,7 @@ void nxagentInitOptions() nxagentOptions.Persistent = 1; nxagentOptions.Rootless = UNDEFINED; nxagentOptions.Fullscreen = UNDEFINED; + nxagentOptions.NoRootlessExit = False; nxagentOptions.X = 0; nxagentOptions.Y = 0; diff --git a/nx-X11/programs/Xserver/hw/nxagent/Options.h b/nx-X11/programs/Xserver/hw/nxagent/Options.h index 40cb179..0e48699 100644 --- a/nx-X11/programs/Xserver/hw/nxagent/Options.h +++ b/nx-X11/programs/Xserver/hw/nxagent/Options.h @@ -381,6 +381,13 @@ typedef struct _AgentOptions int ImageRateLimit; + /* + * True if agent should not exit if there are no + * clients in rootless mode + */ + + int NoRootlessExit; + } AgentOptionsRec; typedef AgentOptionsRec *AgentOptionsPtr; -- Alioth's /srv/git/_hooks_/post-receive-email on /srv/git/code.x2go.org/nx-libs.git
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 db870556433fd737640f7038e0583242724e2d52 Author: Oleksandr Shneyder <oleksandr.shneyder@obviously-nice.de> Date: Tue Feb 10 19:29:53 2015 +0100 Fix repainting of SolidFill pictures with libcairo > 1.12.x (204_nxagent_repaint-solidpict.full.patch). --- .../204_nxagent_repaint-solidpict.full.patch | 53 -------------------- debian/patches/series | 1 - nx-X11/programs/Xserver/hw/nxagent/Render.c | 16 ++++-- nx-X11/programs/Xserver/hw/nxagent/X/NXpicture.c | 4 ++ .../programs/Xserver/hw/nxagent/X/NXpicturestr.h | 1 + 5 files changed, 16 insertions(+), 59 deletions(-) diff --git a/debian/patches/204_nxagent_repaint-solidpict.full.patch b/debian/patches/204_nxagent_repaint-solidpict.full.patch deleted file mode 100644 index 139a46a..0000000 --- a/debian/patches/204_nxagent_repaint-solidpict.full.patch +++ /dev/null @@ -1,53 +0,0 @@ -Description: Fix repainting of SolidFill pictures with libcairo > 1.12.x -Author: Oleksandr Shneyder <oleksandr.shneyder@obviously-nice.de> -diff -rupN a/nx-X11/programs/Xserver/hw/nxagent/Render.c b/nx-X11/programs/Xserver/hw/nxagent/Render.c ---- a/nx-X11/programs/Xserver/hw/nxagent/Render.c 2012-05-16 18:05:07.000000000 +0200 -+++ b/nx-X11/programs/Xserver/hw/nxagent/Render.c 2012-09-20 20:53:37.893459269 +0200 -@@ -2689,11 +2689,17 @@ void nxagentReconnectPicture(pointer p0, - #endif - } - -- if (!pForm) -+ if (!pForm && pPicture->pSourcePict) - { -- *pBool = False; -- -- return; -+ /*possible we need to add support for other picture types, for example gradients...*/ -+ switch(pPicture->pSourcePict->type) -+ { -+ case SourcePictTypeSolidFill: -+ nxagentPicturePriv(pPicture) -> picture = XRenderCreateSolidFill(nxagentDisplay, -+ (const XRenderColor*) &pPicture->pSourcePict->solidFill.fullColor); -+ break; -+ } -+ return; - } - - #ifdef TEST -diff -rupN a/nx-X11/programs/Xserver/hw/nxagent/X/NXpicture.c b/nx-X11/programs/Xserver/hw/nxagent/X/NXpicture.c ---- a/nx-X11/programs/Xserver/hw/nxagent/X/NXpicture.c 2010-11-11 21:18:00.000000000 +0100 -+++ b/nx-X11/programs/Xserver/hw/nxagent/X/NXpicture.c 2012-09-20 20:54:50.209817849 +0200 -@@ -1137,6 +1137,10 @@ CreateSolidPicture (Picture pid, xRender - } - pPicture->pSourcePict->type = SourcePictTypeSolidFill; - pPicture->pSourcePict->solidFill.color = xRenderColorToCard32(*color); -+ pPicture->pSourcePict->solidFill.fullColor.alpha=color->alpha; -+ pPicture->pSourcePict->solidFill.fullColor.red=color->red; -+ pPicture->pSourcePict->solidFill.fullColor.green=color->green; -+ pPicture->pSourcePict->solidFill.fullColor.blue=color->blue; - return pPicture; - } - -diff -rupN a/nx-X11/programs/Xserver/hw/nxagent/X/NXpicturestr.h b/nx-X11/programs/Xserver/hw/nxagent/X/NXpicturestr.h ---- a/nx-X11/programs/Xserver/hw/nxagent/X/NXpicturestr.h 2010-10-22 16:04:24.000000000 +0200 -+++ b/nx-X11/programs/Xserver/hw/nxagent/X/NXpicturestr.h 2012-09-20 20:55:31.106020653 +0200 -@@ -95,6 +95,7 @@ typedef struct _PictTransform { - typedef struct _PictSolidFill { - unsigned int type; - CARD32 color; -+ xRenderColor fullColor; - } PictSolidFill, *PictSolidFillPtr; - - typedef struct _PictGradientStop { - diff --git a/debian/patches/series b/debian/patches/series index 424c3e9..82d5eb9 100644 --- a/debian/patches/series +++ b/debian/patches/series @@ -1,4 +1,3 @@ -204_nxagent_repaint-solidpict.full.patch 205_nxagent_refresh-adsl.full.patch 206_nxagent_clipboard-as-nxoption.full.patch 207_nxagent_fix-xfixes-selection.full.patch diff --git a/nx-X11/programs/Xserver/hw/nxagent/Render.c b/nx-X11/programs/Xserver/hw/nxagent/Render.c index 29bffaa..41a1ec0 100644 --- a/nx-X11/programs/Xserver/hw/nxagent/Render.c +++ b/nx-X11/programs/Xserver/hw/nxagent/Render.c @@ -2689,11 +2689,17 @@ void nxagentReconnectPicture(pointer p0, XID x1, void *p2) #endif } - if (!pForm) - { - *pBool = False; - - return; + if (!pForm && pPicture->pSourcePict) + { + /*possible we need to add support for other picture types, for example gradients...*/ + switch(pPicture->pSourcePict->type) + { + case SourcePictTypeSolidFill: + nxagentPicturePriv(pPicture) -> picture = XRenderCreateSolidFill(nxagentDisplay, + (const XRenderColor*) &pPicture->pSourcePict->solidFill.fullColor); + break; + } + return; } #ifdef TEST diff --git a/nx-X11/programs/Xserver/hw/nxagent/X/NXpicture.c b/nx-X11/programs/Xserver/hw/nxagent/X/NXpicture.c index d9054b4..4b342eb 100644 --- a/nx-X11/programs/Xserver/hw/nxagent/X/NXpicture.c +++ b/nx-X11/programs/Xserver/hw/nxagent/X/NXpicture.c @@ -1137,6 +1137,10 @@ CreateSolidPicture (Picture pid, xRenderColor *color, int *error) } pPicture->pSourcePict->type = SourcePictTypeSolidFill; pPicture->pSourcePict->solidFill.color = xRenderColorToCard32(*color); + pPicture->pSourcePict->solidFill.fullColor.alpha=color->alpha; + pPicture->pSourcePict->solidFill.fullColor.red=color->red; + pPicture->pSourcePict->solidFill.fullColor.green=color->green; + pPicture->pSourcePict->solidFill.fullColor.blue=color->blue; return pPicture; } diff --git a/nx-X11/programs/Xserver/hw/nxagent/X/NXpicturestr.h b/nx-X11/programs/Xserver/hw/nxagent/X/NXpicturestr.h index 0d1a8e1..b267925 100644 --- a/nx-X11/programs/Xserver/hw/nxagent/X/NXpicturestr.h +++ b/nx-X11/programs/Xserver/hw/nxagent/X/NXpicturestr.h @@ -95,6 +95,7 @@ typedef struct _PictTransform { typedef struct _PictSolidFill { unsigned int type; CARD32 color; + xRenderColor fullColor; } PictSolidFill, *PictSolidFillPtr; typedef struct _PictGradientStop { -- Alioth's /srv/git/_hooks_/post-receive-email on /srv/git/code.x2go.org/nx-libs.git
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 35aab85c79200d861c906b691bf8b6be99d58590 Author: Oleksandr Shneyder <o.shneyder@phoca-gmbh.de> Date: Tue Feb 10 19:32:12 2015 +0100 Fix refresh errors on Win2012 RDP connections with speed=ADS (205_nxagent_refresh-adsl.full.patch). --- debian/patches/205_nxagent_refresh-adsl.full.patch | 14 -------------- debian/patches/series | 1 - nx-X11/programs/Xserver/hw/nxagent/GCOps.c | 2 +- 3 files changed, 1 insertion(+), 16 deletions(-) diff --git a/debian/patches/205_nxagent_refresh-adsl.full.patch b/debian/patches/205_nxagent_refresh-adsl.full.patch deleted file mode 100644 index 4840ea7..0000000 --- a/debian/patches/205_nxagent_refresh-adsl.full.patch +++ /dev/null @@ -1,14 +0,0 @@ -Description: Fix refresh errors on Win2012 RDP connections with speed=ADSL -Author: Oleksandr Shneyder <o.shneyder@phoca-gmbh.de> -diff -rupN a/nx-X11/programs/Xserver/hw/nxagent/Render.c b/nx-X11/programs/Xserver/hw/nxagent/GCOps.c ---- a/nx-X11/programs/Xserver/hw/nxagent/GCOps.c 2014-05-06 12:52:35.082288455 +0200 -+++ b/nx-X11/programs/Xserver/hw/nxagent/GCOps.c 2014-05-06 12:54:00.258710819 +0200 -@@ -339,7 +339,7 @@ FIXME: The popup could be synchronized w - */ - - if ((pDstDrawable -> type == DRAWABLE_PIXMAP && -- nxagentOption(DeferLevel) > 0) || nxagentOption(DeferLevel) >= 2) -+ nxagentOption(DeferLevel) > 0) || nxagentOption(DeferLevel) >= 3) - { - pClipRegion = nxagentCreateRegion(pSrcDrawable, NULL, srcx, srcy, - width, height); diff --git a/debian/patches/series b/debian/patches/series index 82d5eb9..4bbe897 100644 --- a/debian/patches/series +++ b/debian/patches/series @@ -1,4 +1,3 @@ -205_nxagent_refresh-adsl.full.patch 206_nxagent_clipboard-as-nxoption.full.patch 207_nxagent_fix-xfixes-selection.full.patch 209_x2goagent_add-man-page.full.patch diff --git a/nx-X11/programs/Xserver/hw/nxagent/GCOps.c b/nx-X11/programs/Xserver/hw/nxagent/GCOps.c index e18b034..c489d12 100644 --- a/nx-X11/programs/Xserver/hw/nxagent/GCOps.c +++ b/nx-X11/programs/Xserver/hw/nxagent/GCOps.c @@ -339,7 +339,7 @@ FIXME: The popup could be synchronized with one */ if ((pDstDrawable -> type == DRAWABLE_PIXMAP && - nxagentOption(DeferLevel) > 0) || nxagentOption(DeferLevel) >= 2) + nxagentOption(DeferLevel) > 0) || nxagentOption(DeferLevel) >= 3) { pClipRegion = nxagentCreateRegion(pSrcDrawable, NULL, srcx, srcy, width, height); -- Alioth's /srv/git/_hooks_/post-receive-email on /srv/git/code.x2go.org/nx-libs.git
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 4ef611eea9b10ed5851abb990835ce73bbac6a9f Author: Mike Gabriel <mike.gabriel@das-netzwerkteam.de> Date: Tue Feb 10 19:33:51 2015 +0100 Add -clipboard cmdline option to nxagent (206_nxagent_clipboard-as-nxoption.full.patch). --- .../206_nxagent_clipboard-as-nxoption.full.patch | 53 -------------------- debian/patches/series | 1 - nx-X11/programs/Xserver/hw/nxagent/Args.c | 27 +++++++++- 3 files changed, 25 insertions(+), 56 deletions(-) diff --git a/debian/patches/206_nxagent_clipboard-as-nxoption.full.patch b/debian/patches/206_nxagent_clipboard-as-nxoption.full.patch deleted file mode 100644 index 12b51dc..0000000 --- a/debian/patches/206_nxagent_clipboard-as-nxoption.full.patch +++ /dev/null @@ -1,53 +0,0 @@ -Descripion: Add -clipboard cmdline option to nxagent -Author: Mike Gabriel <mike.gabriel@das-netzwerkteam.de> - ---- a/nx-X11/programs/Xserver/hw/nxagent/Args.c -+++ b/nx-X11/programs/Xserver/hw/nxagent/Args.c -@@ -984,7 +984,7 @@ - - if (!strcmp(argv[i], "-clipboard")) - { -- if (!strcmp(argv[i+1], "both")) -+ if ((!strcmp(argv[i+1], "both")) || (!strcmp(argv[i+1], "1"))) - { - nxagentChangeOption(Clipboard, ClipboardBoth); - } -@@ -996,7 +996,7 @@ - { - nxagentChangeOption(Clipboard, ClipboardServer); - } -- else if (!strcmp(argv[i+1], "none")) -+ else if ((!strcmp(argv[i+1], "none")) || (!strcmp(argv[i+1], "1"))) - { - nxagentChangeOption(Clipboard, ClipboardNone); - } -@@ -1255,6 +1255,29 @@ - - return; - } -+ else if (strcmp(name, "clipboard") == 0) -+ { -+ if ((strcmp(value, "both") == 0) || (strcmp(value, "1") == 0)) -+ { -+ nxagentChangeOption(Clipboard, ClipboardBoth); -+ } -+ else if (strcmp(value, "client") == 0) -+ { -+ nxagentChangeOption(Clipboard, ClipboardClient); -+ } -+ else if (strcmp(value, "server") == 0) -+ { -+ nxagentChangeOption(Clipboard, ClipboardServer); -+ } -+ else if ((strcmp(value, "none") == 0) || (strcmp(value, "0") == 0)) -+ { -+ nxagentChangeOption(Clipboard, ClipboardNone); -+ } -+ else -+ { -+ nxagentChangeOption(Clipboard, ClipboardBoth); -+ } -+ } - else - { - #ifdef DEBUG diff --git a/debian/patches/series b/debian/patches/series index 4bbe897..dbc6d9c 100644 --- a/debian/patches/series +++ b/debian/patches/series @@ -1,4 +1,3 @@ -206_nxagent_clipboard-as-nxoption.full.patch 207_nxagent_fix-xfixes-selection.full.patch 209_x2goagent_add-man-page.full.patch 210_nxagent_save_session_state.full.patch diff --git a/nx-X11/programs/Xserver/hw/nxagent/Args.c b/nx-X11/programs/Xserver/hw/nxagent/Args.c index 6666393..c72b9c4 100644 --- a/nx-X11/programs/Xserver/hw/nxagent/Args.c +++ b/nx-X11/programs/Xserver/hw/nxagent/Args.c @@ -984,7 +984,7 @@ int ddxProcessArgument(int argc, char *argv[], int i) if (!strcmp(argv[i], "-clipboard")) { - if (!strcmp(argv[i+1], "both")) + if ((!strcmp(argv[i+1], "both")) || (!strcmp(argv[i+1], "1"))) { nxagentChangeOption(Clipboard, ClipboardBoth); } @@ -996,7 +996,7 @@ int ddxProcessArgument(int argc, char *argv[], int i) { nxagentChangeOption(Clipboard, ClipboardServer); } - else if (!strcmp(argv[i+1], "none")) + else if ((!strcmp(argv[i+1], "none")) || (!strcmp(argv[i+1], "1"))) { nxagentChangeOption(Clipboard, ClipboardNone); } @@ -1255,6 +1255,29 @@ static void nxagentParseOptions(char *name, char *value) return; } + else if (strcmp(name, "clipboard") == 0) + { + if ((strcmp(value, "both") == 0) || (strcmp(value, "1") == 0)) + { + nxagentChangeOption(Clipboard, ClipboardBoth); + } + else if (strcmp(value, "client") == 0) + { + nxagentChangeOption(Clipboard, ClipboardClient); + } + else if (strcmp(value, "server") == 0) + { + nxagentChangeOption(Clipboard, ClipboardServer); + } + else if ((strcmp(value, "none") == 0) || (strcmp(value, "0") == 0)) + { + nxagentChangeOption(Clipboard, ClipboardNone); + } + else + { + nxagentChangeOption(Clipboard, ClipboardBoth); + } + } else { #ifdef DEBUG -- Alioth's /srv/git/_hooks_/post-receive-email on /srv/git/code.x2go.org/nx-libs.git
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 57a58c73cfe91c94d8a18a6e823bc687fab45d8f Author: Ulrich Sibiller <uli42@gmx.de> Date: Tue Feb 10 19:36:57 2015 +0100 Fix XFIXES selection handling (copy and paste via middle mouse button) (207_nxagent_fix-xfixes-selection.full.patch). When nxagent has the XFIXES extension enabled copy and paste from outside applications to applications within the session that rely on XFixesSelectSelectionInput (e.g. qt applications like konsole) did never receive any notifications because the nxagent did not register itself at the real X server to receive them. Fixes X2Go Bug #585 (http://bugs.x2go.org/585). --- .../207_nxagent_fix-xfixes-selection.full.patch | 33 -------------------- debian/patches/series | 1 - nx-X11/programs/Xserver/hw/nxagent/Clipboard.c | 12 ++++--- 3 files changed, 8 insertions(+), 38 deletions(-) diff --git a/debian/patches/207_nxagent_fix-xfixes-selection.full.patch b/debian/patches/207_nxagent_fix-xfixes-selection.full.patch deleted file mode 100644 index 712b369..0000000 --- a/debian/patches/207_nxagent_fix-xfixes-selection.full.patch +++ /dev/null @@ -1,33 +0,0 @@ -Description: Fix XFIXES selection handling (copy and paste via middle mouse button). -Abstract: - When nxagent has the XFIXES extension enabled copy and - paste from outside applications to applications within the session - that rely on XFixesSelectSelectionInput (e.g. qt applications like - konsole) did never receive any notifications because the nxagent did - not register itself at the real X server to receive them. Fixes Bug - #585. -Author: Ulrich Sibiller <uli42@gmx.de> - -Index: nx-libs/nx-X11/programs/Xserver/hw/nxagent/Clipboard.c -=================================================================== ---- nx-libs.orig/nx-X11/programs/Xserver/hw/nxagent/Clipboard.c 2014-11-04 22:42:50.893569624 +0100 -+++ nx-libs/nx-X11/programs/Xserver/hw/nxagent/Clipboard.c 2014-11-04 22:42:50.893569624 +0100 -@@ -1556,10 +1556,14 @@ - fprintf(stderr, "nxagentInitClipboard: Registering for XFixesSelectionNotify events.\n"); - #endif - -- XFixesSelectSelectionInput(nxagentDisplay, iWindow, nxagentClipboardAtom, -- XFixesSetSelectionOwnerNotifyMask | -- XFixesSelectionWindowDestroyNotifyMask | -- XFixesSelectionClientCloseNotifyMask); -+ for (i = 0; i < nxagentMaxSelections; i++) -+ { -+ XFixesSelectSelectionInput(nxagentDisplay, iWindow, -+ lastSelectionOwner[i].selection, -+ XFixesSetSelectionOwnerNotifyMask | -+ XFixesSelectionWindowDestroyNotifyMask | -+ XFixesSelectionClientCloseNotifyMask); -+ } - - nxagentXFixesInfo.Initialized = 1; - } diff --git a/debian/patches/series b/debian/patches/series index dbc6d9c..4ebb735 100644 --- a/debian/patches/series +++ b/debian/patches/series @@ -1,4 +1,3 @@ -207_nxagent_fix-xfixes-selection.full.patch 209_x2goagent_add-man-page.full.patch 210_nxagent_save_session_state.full.patch 210_nxcomp_save_session_state.full+lite.patch diff --git a/nx-X11/programs/Xserver/hw/nxagent/Clipboard.c b/nx-X11/programs/Xserver/hw/nxagent/Clipboard.c index 2e409e4..557798e 100644 --- a/nx-X11/programs/Xserver/hw/nxagent/Clipboard.c +++ b/nx-X11/programs/Xserver/hw/nxagent/Clipboard.c @@ -1556,10 +1556,14 @@ int nxagentInitClipboard(WindowPtr pWin) fprintf(stderr, "nxagentInitClipboard: Registering for XFixesSelectionNotify events.\n"); #endif - XFixesSelectSelectionInput(nxagentDisplay, iWindow, nxagentClipboardAtom, - XFixesSetSelectionOwnerNotifyMask | - XFixesSelectionWindowDestroyNotifyMask | - XFixesSelectionClientCloseNotifyMask); + for (i = 0; i < nxagentMaxSelections; i++) + { + XFixesSelectSelectionInput(nxagentDisplay, iWindow, + lastSelectionOwner[i].selection, + XFixesSetSelectionOwnerNotifyMask | + XFixesSelectionWindowDestroyNotifyMask | + XFixesSelectionClientCloseNotifyMask); + } nxagentXFixesInfo.Initialized = 1; } -- Alioth's /srv/git/_hooks_/post-receive-email on /srv/git/code.x2go.org/nx-libs.git
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 4a6ccd5037c8410f24dc177c9286272c2f47cd9d Author: Mike Gabriel <mike.gabriel@das-netzwerkteam.de> Date: Tue Feb 10 19:38:45 2015 +0100 Add x2goagent man page (209_x2goagent_add-man-page.full.patch). --- .../patches/209_x2goagent_add-man-page.full.patch | 41 -------------------- debian/patches/series | 1 - nx-X11/programs/Xserver/hw/nxagent/man/x2goagent.1 | 35 +++++++++++++++++ 3 files changed, 35 insertions(+), 42 deletions(-) diff --git a/debian/patches/209_x2goagent_add-man-page.full.patch b/debian/patches/209_x2goagent_add-man-page.full.patch deleted file mode 100644 index 310fa87..0000000 --- a/debian/patches/209_x2goagent_add-man-page.full.patch +++ /dev/null @@ -1,41 +0,0 @@ -Description: Add x2goagent man page -Author: Mike Gabriel <mike.gabriel@das-netzwerkteam.de> - ---- /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@das-netzwerkteam.de>. diff --git a/debian/patches/series b/debian/patches/series index 4ebb735..48b9abd 100644 --- a/debian/patches/series +++ b/debian/patches/series @@ -1,4 +1,3 @@ -209_x2goagent_add-man-page.full.patch 210_nxagent_save_session_state.full.patch 210_nxcomp_save_session_state.full+lite.patch 211_nxcomp_set_default_options.full+lite.patch diff --git a/nx-X11/programs/Xserver/hw/nxagent/man/x2goagent.1 b/nx-X11/programs/Xserver/hw/nxagent/man/x2goagent.1 new file mode 100644 index 0000000..b9e8dda --- /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@das-netzwerkteam.de>. -- Alioth's /srv/git/_hooks_/post-receive-email on /srv/git/code.x2go.org/nx-libs.git
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 8c1b852abf692af4898368132292eb8c7278a7c2 Author: Oleksandr Shneyder <o.shneyder@phoca-gmbh.de> Date: Tue Feb 10 19:43:41 2015 +0100 Save session state in file. 210_nxagent_save_session_state.full.patch 210_nxcomp_save_session_state.full+lite.patch This patch adds a "state" option to NX (agent) which allows one to specify a file where nxagent will write its session state into. --- .../210_nxagent_save_session_state.full.patch | 176 -------------------- .../210_nxcomp_save_session_state.full+lite.patch | 15 -- debian/patches/series | 2 - nx-X11/programs/Xserver/hw/nxagent/Args.c | 11 ++ nx-X11/programs/Xserver/hw/nxagent/Init.c | 3 +- nx-X11/programs/Xserver/hw/nxagent/Reconnect.c | 33 ++++ nx-X11/programs/Xserver/hw/nxagent/Reconnect.h | 2 + nx-X11/programs/Xserver/hw/nxagent/X/NXdispatch.c | 3 + nxcomp/Loop.cpp | 3 +- 9 files changed, 53 insertions(+), 195 deletions(-) diff --git a/debian/patches/210_nxagent_save_session_state.full.patch b/debian/patches/210_nxagent_save_session_state.full.patch deleted file mode 100644 index 223d0bc..0000000 --- a/debian/patches/210_nxagent_save_session_state.full.patch +++ /dev/null @@ -1,176 +0,0 @@ -Description: Save session state in file -Author: Oleksandr Shneyder <o.shneyder@phoca-gmbh.de> - ---- a/nx-X11/programs/Xserver/hw/nxagent/Args.c -+++ b/nx-X11/programs/Xserver/hw/nxagent/Args.c -@@ -60,6 +60,7 @@ - #endif - #include "Handlers.h" - #include "Error.h" -+#include "Reconnect.h" - - /* - * NX includes and definitions. -@@ -1090,6 +1091,11 @@ - - return; - } -+ else if (!strcmp(name, "state")) -+ { -+ setStatePath(value); -+ return; -+ } - else if (!strcmp(name, "fullscreen")) - { - if (nxagentReconnectTrap == True) -@@ -1369,6 +1375,11 @@ - validateString(nxagentOptionFile)); - #endif - -+ /* -+ * Init statePath -+ */ -+ setStatePath(""); -+ - if (nxagentOptionFile == NULL) - { - return; ---- a/nx-X11/programs/Xserver/hw/nxagent/Init.c -+++ b/nx-X11/programs/Xserver/hw/nxagent/Init.c -@@ -63,7 +63,7 @@ - - #include "NX.h" - #include "NXlib.h" -- -+#include "Reconnect.h" - /* - * Set here the required log level. - */ -@@ -233,6 +233,7 @@ - fprintf(stderr, "Info: Agent running with pid '%d'.\n", getpid()); - - fprintf(stderr, "Session: Starting session at '%s'.\n", GetTimeAsString()); -+ saveAgentState("STARTING"); - } - - /* ---- a/nx-X11/programs/Xserver/hw/nxagent/Reconnect.c -+++ b/nx-X11/programs/Xserver/hw/nxagent/Reconnect.c -@@ -118,6 +118,33 @@ - - static enum RECONNECTION_STEP failedStep; - -+#include <limits.h> -+ -+/* -+ * Path of state File -+ */ -+char stateFile[PATH_MAX]; -+ -+ -+void setStatePath(char* path) -+{ -+ strncpy(stateFile, path, PATH_MAX-1); -+} -+ -+void saveAgentState(char* state) -+{ -+ FILE* fptr; -+ if(strlen(stateFile)) -+ { -+ fptr=fopen(stateFile, "w"); -+ if(!fptr) -+ return; -+ fprintf(fptr,"%s", state); -+ fclose(fptr); -+ } -+} -+ -+ - int nxagentHandleConnectionStates(void) - { - #ifdef TEST -@@ -211,6 +238,7 @@ - fprintf(stderr, "Session: Display failure detected at '%s'.\n", GetTimeAsString()); - - fprintf(stderr, "Session: Suspending session at '%s'.\n", GetTimeAsString()); -+ saveAgentState("SUSPENDING"); - } - - nxagentDisconnectSession(); -@@ -265,6 +293,7 @@ - fprintf(stderr, "Session: Session suspended at '%s'.\n", GetTimeAsString()); - #endif - } -+ saveAgentState("SUSPENDED"); - - nxagentResetDisplayHandlers(); - -@@ -622,6 +651,7 @@ - #else - fprintf(stderr, "Session: Session resumed at '%s'.\n", GetTimeAsString()); - #endif -+ saveAgentState("RUNNING"); - - nxagentRemoveSplashWindow(NULL); - -@@ -785,12 +815,14 @@ - if (nxagentSessionState == SESSION_GOING_DOWN) - { - fprintf(stderr, "Session: Suspending session at '%s'.\n", GetTimeAsString()); -+ saveAgentState("SUSPENDING"); - - nxagentDisconnectSession(); - } - else if (nxagentSessionState == SESSION_GOING_UP) - { - fprintf(stderr, "Session: Resuming session at '%s'.\n", GetTimeAsString()); -+ saveAgentState("RESUMING"); - - if (nxagentReconnectSession()) - { -@@ -803,6 +835,7 @@ - fprintf(stderr, "Session: Display failure detected at '%s'.\n", GetTimeAsString()); - - fprintf(stderr, "Session: Suspending session at '%s'.\n", GetTimeAsString()); -+ saveAgentState("SUSPENDING"); - - nxagentDisconnectSession(); - } ---- a/nx-X11/programs/Xserver/hw/nxagent/Reconnect.h -+++ b/nx-X11/programs/Xserver/hw/nxagent/Reconnect.h -@@ -34,6 +34,8 @@ - Bool nxagentReconnectSession(void); - int nxagentHandleConnectionStates(void); - void nxagentHandleConnectionChanges(void); -+void setStatePath(char*); -+void saveAgentState(char*); - - enum SESSION_STATE - { ---- a/nx-X11/programs/Xserver/hw/nxagent/X/NXdispatch.c -+++ b/nx-X11/programs/Xserver/hw/nxagent/X/NXdispatch.c -@@ -609,6 +609,7 @@ - #endif - - nxagentSessionState = SESSION_UP; -+ saveAgentState("RUNNING"); - } - - #ifdef BLOCKS -@@ -823,6 +824,7 @@ - */ - - fprintf(stderr, "Session: Terminating session at '%s'.\n", GetTimeAsString()); -+ saveAgentState("TERMINATING"); - - nxagentWaitDisplay(); - -@@ -833,6 +835,7 @@ - { - NXShadowDestroy(); - } -+ saveAgentState("TERMINATED"); - - KillAllClients(); - DEALLOCATE_LOCAL(clientReady); diff --git a/debian/patches/210_nxcomp_save_session_state.full+lite.patch b/debian/patches/210_nxcomp_save_session_state.full+lite.patch deleted file mode 100644 index 1ef4440..0000000 --- a/debian/patches/210_nxcomp_save_session_state.full+lite.patch +++ /dev/null @@ -1,15 +0,0 @@ -Description: Ignore state=<statefile> option in nxproxy/nxcomp -Author: Oleksandr Shneyder <o.shneyder@phoca-gmbh.de> - ---- a/nxcomp/Loop.cpp -+++ b/nxcomp/Loop.cpp -@@ -8872,7 +8872,8 @@ - } - else if (strcasecmp(name, "defer") == 0 || - strcasecmp(name, "tile") == 0 || -- strcasecmp(name, "menu") == 0) -+ strcasecmp(name, "menu") == 0 || -+ strcasecmp(name, "state") == 0 ) - { - #ifdef DEBUG - *logofs << "Loop: Ignoring agent option '" << name diff --git a/debian/patches/series b/debian/patches/series index 48b9abd..9e0e647 100644 --- a/debian/patches/series +++ b/debian/patches/series @@ -1,5 +1,3 @@ -210_nxagent_save_session_state.full.patch -210_nxcomp_save_session_state.full+lite.patch 211_nxcomp_set_default_options.full+lite.patch 212_nxcomp_build-on-Android.full+lite.patch 220_nxproxy_bind-loopback-only.full+lite.patch diff --git a/nx-X11/programs/Xserver/hw/nxagent/Args.c b/nx-X11/programs/Xserver/hw/nxagent/Args.c index c72b9c4..7074a18 100644 --- a/nx-X11/programs/Xserver/hw/nxagent/Args.c +++ b/nx-X11/programs/Xserver/hw/nxagent/Args.c @@ -60,6 +60,7 @@ is" without express or implied warranty. #endif #include "Handlers.h" #include "Error.h" +#include "Reconnect.h" /* * NX includes and definitions. @@ -1090,6 +1091,11 @@ static void nxagentParseOptions(char *name, char *value) return; } + else if (!strcmp(name, "state")) + { + setStatePath(value); + return; + } else if (!strcmp(name, "fullscreen")) { if (nxagentReconnectTrap == True) @@ -1369,6 +1375,11 @@ void nxagentProcessOptionsFile() validateString(nxagentOptionFile)); #endif + /* + * Init statePath + */ + setStatePath(""); + if (nxagentOptionFile == NULL) { return; diff --git a/nx-X11/programs/Xserver/hw/nxagent/Init.c b/nx-X11/programs/Xserver/hw/nxagent/Init.c index 1794f15..8d4eed2 100644 --- a/nx-X11/programs/Xserver/hw/nxagent/Init.c +++ b/nx-X11/programs/Xserver/hw/nxagent/Init.c @@ -63,7 +63,7 @@ is" without express or implied warranty. #include "NX.h" #include "NXlib.h" - +#include "Reconnect.h" /* * Set here the required log level. */ @@ -233,6 +233,7 @@ void InitOutput(ScreenInfo *screenInfo, int argc, char *argv[]) fprintf(stderr, "Info: Agent running with pid '%d'.\n", getpid()); fprintf(stderr, "Session: Starting session at '%s'.\n", GetTimeAsString()); + saveAgentState("STARTING"); } /* diff --git a/nx-X11/programs/Xserver/hw/nxagent/Reconnect.c b/nx-X11/programs/Xserver/hw/nxagent/Reconnect.c index 3c576c6..b26fa9c 100644 --- a/nx-X11/programs/Xserver/hw/nxagent/Reconnect.c +++ b/nx-X11/programs/Xserver/hw/nxagent/Reconnect.c @@ -118,6 +118,33 @@ void *reconnectLossyLevel[STEP_NONE]; static enum RECONNECTION_STEP failedStep; +#include <limits.h> + +/* + * Path of state File + */ +char stateFile[PATH_MAX]; + + +void setStatePath(char* path) +{ + strncpy(stateFile, path, PATH_MAX-1); +} + +void saveAgentState(char* state) +{ + FILE* fptr; + if(strlen(stateFile)) + { + fptr=fopen(stateFile, "w"); + if(!fptr) + return; + fprintf(fptr,"%s", state); + fclose(fptr); + } +} + + int nxagentHandleConnectionStates(void) { #ifdef TEST @@ -211,6 +238,7 @@ TODO: This should be reset only when fprintf(stderr, "Session: Display failure detected at '%s'.\n", GetTimeAsString()); fprintf(stderr, "Session: Suspending session at '%s'.\n", GetTimeAsString()); + saveAgentState("SUSPENDING"); } nxagentDisconnectSession(); @@ -265,6 +293,7 @@ TODO: This should be reset only when fprintf(stderr, "Session: Session suspended at '%s'.\n", GetTimeAsString()); #endif } + saveAgentState("SUSPENDED"); nxagentResetDisplayHandlers(); @@ -622,6 +651,7 @@ Bool nxagentReconnectSession(void) #else fprintf(stderr, "Session: Session resumed at '%s'.\n", GetTimeAsString()); #endif + saveAgentState("RUNNING"); nxagentRemoveSplashWindow(NULL); @@ -785,12 +815,14 @@ void nxagentHandleConnectionChanges() if (nxagentSessionState == SESSION_GOING_DOWN) { fprintf(stderr, "Session: Suspending session at '%s'.\n", GetTimeAsString()); + saveAgentState("SUSPENDING"); nxagentDisconnectSession(); } else if (nxagentSessionState == SESSION_GOING_UP) { fprintf(stderr, "Session: Resuming session at '%s'.\n", GetTimeAsString()); + saveAgentState("RESUMING"); if (nxagentReconnectSession()) { @@ -803,6 +835,7 @@ void nxagentHandleConnectionChanges() fprintf(stderr, "Session: Display failure detected at '%s'.\n", GetTimeAsString()); fprintf(stderr, "Session: Suspending session at '%s'.\n", GetTimeAsString()); + saveAgentState("SUSPENDING"); nxagentDisconnectSession(); } diff --git a/nx-X11/programs/Xserver/hw/nxagent/Reconnect.h b/nx-X11/programs/Xserver/hw/nxagent/Reconnect.h index c321bfa..5be2928 100644 --- a/nx-X11/programs/Xserver/hw/nxagent/Reconnect.h +++ b/nx-X11/programs/Xserver/hw/nxagent/Reconnect.h @@ -34,6 +34,8 @@ void nxagentInitReconnector(void); Bool nxagentReconnectSession(void); int nxagentHandleConnectionStates(void); void nxagentHandleConnectionChanges(void); +void setStatePath(char*); +void saveAgentState(char*); enum SESSION_STATE { diff --git a/nx-X11/programs/Xserver/hw/nxagent/X/NXdispatch.c b/nx-X11/programs/Xserver/hw/nxagent/X/NXdispatch.c index 69ad30d..f18c09f 100644 --- a/nx-X11/programs/Xserver/hw/nxagent/X/NXdispatch.c +++ b/nx-X11/programs/Xserver/hw/nxagent/X/NXdispatch.c @@ -609,6 +609,7 @@ Reply Total Cached Bits In Bits Out Bits/Reply Ratio #endif nxagentSessionState = SESSION_UP; + saveAgentState("RUNNING"); } #ifdef BLOCKS @@ -823,6 +824,7 @@ Reply Total Cached Bits In Bits Out Bits/Reply Ratio */ fprintf(stderr, "Session: Terminating session at '%s'.\n", GetTimeAsString()); + saveAgentState("TERMINATING"); nxagentWaitDisplay(); @@ -833,6 +835,7 @@ Reply Total Cached Bits In Bits Out Bits/Reply Ratio { NXShadowDestroy(); } + saveAgentState("TERMINATED"); KillAllClients(); DEALLOCATE_LOCAL(clientReady); diff --git a/nxcomp/Loop.cpp b/nxcomp/Loop.cpp index 7e2b990..12a858b 100644 --- a/nxcomp/Loop.cpp +++ b/nxcomp/Loop.cpp @@ -8872,7 +8872,8 @@ int ParseEnvironmentOptions(const char *env, int force) } else if (strcasecmp(name, "defer") == 0 || strcasecmp(name, "tile") == 0 || - strcasecmp(name, "menu") == 0) + strcasecmp(name, "menu") == 0 || + strcasecmp(name, "state") == 0 ) { #ifdef DEBUG *logofs << "Loop: Ignoring agent option '" << name -- Alioth's /srv/git/_hooks_/post-receive-email on /srv/git/code.x2go.org/nx-libs.git
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 46c2aebca5196ad4c10bb4f6f2558d656c22f5d9 Author: Oleksandr Shneyder <o.shneyder@phoca-gmbh.de> Date: Tue Feb 10 19:46:04 2015 +0100 Set default pack and link options to avoid damage of session (211_nxcomp_set_default_options.full+lite.patch). --- .../211_nxcomp_set_default_options.full+lite.patch | 27 -------------------- debian/patches/series | 1 - nxcomp/Loop.cpp | 8 +++--- 3 files changed, 4 insertions(+), 32 deletions(-) diff --git a/debian/patches/211_nxcomp_set_default_options.full+lite.patch b/debian/patches/211_nxcomp_set_default_options.full+lite.patch deleted file mode 100644 index 7bd8a78..0000000 --- a/debian/patches/211_nxcomp_set_default_options.full+lite.patch +++ /dev/null @@ -1,27 +0,0 @@ -Description: Set default pack and link options to avoid damage of session. -Author: Oleksandr Shneyder <o.shneyder@phoca-gmbh.de> - ---- a/nxcomp/Loop.cpp -+++ b/nxcomp/Loop.cpp -@@ -8328,8 +8328,8 @@ - - cerr << "Error" << ": Can't identify 'link' option in string '" - << value << "'.\n"; -- -- return -1; -+ if (ParseLinkOption("adsl") < 0) -+ return -1; - } - } - else if (strcasecmp(name, "limit") == 0) -@@ -8783,8 +8783,8 @@ - - cerr << "Error" << ": Can't identify pack method for string '" - << value << "'.\n"; -- -- return -1; -+ if (ParsePackOption("nopack")<0) -+ return -1; - } - } - else if (strcasecmp(name, "core") == 0) diff --git a/debian/patches/series b/debian/patches/series index 9e0e647..0174ca1 100644 --- a/debian/patches/series +++ b/debian/patches/series @@ -1,4 +1,3 @@ -211_nxcomp_set_default_options.full+lite.patch 212_nxcomp_build-on-Android.full+lite.patch 220_nxproxy_bind-loopback-only.full+lite.patch 300_nxagent_set-wm-class.full.patch diff --git a/nxcomp/Loop.cpp b/nxcomp/Loop.cpp index 12a858b..d5c8eb2 100644 --- a/nxcomp/Loop.cpp +++ b/nxcomp/Loop.cpp @@ -8328,8 +8328,8 @@ int ParseEnvironmentOptions(const char *env, int force) cerr << "Error" << ": Can't identify 'link' option in string '" << value << "'.\n"; - - return -1; + if (ParseLinkOption("adsl") < 0) + return -1; } } else if (strcasecmp(name, "limit") == 0) @@ -8783,8 +8783,8 @@ int ParseEnvironmentOptions(const char *env, int force) cerr << "Error" << ": Can't identify pack method for string '" << value << "'.\n"; - - return -1; + if (ParsePackOption("nopack")<0) + return -1; } } else if (strcasecmp(name, "core") == 0) -- Alioth's /srv/git/_hooks_/post-receive-email on /srv/git/code.x2go.org/nx-libs.git
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@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@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
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 1be1c4a21bb54e60ec60456374d9ef55aaf55e2f Author: Mike Gabriel <mike.gabriel@das-netzwerkteam.de> Date: Tue Feb 10 21:11:27 2015 +0100 Force NX proxy to bind to loopback devices only (loopback option) (220_nxproxy_bind-loopback-only.full+lite.patch). --- .../220_nxproxy_bind-loopback-only.full+lite.patch | 130 -------------------- debian/patches/series | 1 - nxcomp/Loop.cpp | 41 +++++- nxcomp/Misc.cpp | 10 ++ nxcomp/Misc.h | 8 ++ 5 files changed, 55 insertions(+), 135 deletions(-) diff --git a/debian/patches/220_nxproxy_bind-loopback-only.full+lite.patch b/debian/patches/220_nxproxy_bind-loopback-only.full+lite.patch deleted file mode 100644 index c65b855..0000000 --- a/debian/patches/220_nxproxy_bind-loopback-only.full+lite.patch +++ /dev/null @@ -1,130 +0,0 @@ -Description: Force NX proxy to bind to loopback devices only (loopback option) -Author: Mike Gabriel <mike.gabriel@das-netzwerkteam.de> ---- a/nxcomp/Loop.cpp -+++ b/nxcomp/Loop.cpp -@@ -952,6 +952,7 @@ - static char displayHost[DEFAULT_STRING_LENGTH] = { 0 }; - static char authCookie[DEFAULT_STRING_LENGTH] = { 0 }; - -+static int loopbackBind = DEFAULT_LOOPBACK_BIND; - static int proxyPort = DEFAULT_NX_PROXY_PORT; - static int xPort = DEFAULT_NX_X_PORT; - -@@ -3959,7 +3960,14 @@ - - tcpAddr.sin_family = AF_INET; - tcpAddr.sin_port = htons(proxyPortTCP); -- tcpAddr.sin_addr.s_addr = htonl(INADDR_ANY); -+ if ( loopbackBind ) -+ { -+ tcpAddr.sin_addr.s_addr = htonl(INADDR_LOOPBACK); -+ } -+ else -+ { -+ tcpAddr.sin_addr.s_addr = htonl(INADDR_ANY); -+ } - - if (bind(tcpFD, (sockaddr *) &tcpAddr, sizeof(tcpAddr)) == -1) - { -@@ -4550,7 +4558,14 @@ - - tcpAddr.sin_family = AF_INET; - tcpAddr.sin_port = htons(portTCP); -- tcpAddr.sin_addr.s_addr = htonl(INADDR_ANY); -+ if ( loopbackBind ) -+ { -+ tcpAddr.sin_addr.s_addr = htonl(INADDR_LOOPBACK); -+ } -+ else -+ { -+ tcpAddr.sin_addr.s_addr = htonl(INADDR_ANY); -+ } - - if (bind(newFD, (sockaddr *) &tcpAddr, sizeof(tcpAddr)) == -1) - { -@@ -6718,7 +6733,14 @@ - - #ifdef __APPLE__ - -- tcpAddr.sin_addr.s_addr = htonl(INADDR_ANY); -+ if ( loopbackBind ) -+ { -+ tcpAddr.sin_addr.s_addr = htonl(INADDR_LOOPBACK); -+ } -+ else -+ { -+ tcpAddr.sin_addr.s_addr = htonl(INADDR_ANY); -+ } - - #else - -@@ -8397,6 +8419,10 @@ - - listenPort = ValidateArg("local", name, value); - } -+ else if (strcasecmp(name, "loopback") == 0) -+ { -+ loopbackBind = ValidateArg("local", name, value); -+ } - else if (strcasecmp(name, "accept") == 0) - { - if (*connectHost != '\0') -@@ -13778,7 +13804,14 @@ - } - else - { -- address = htonl(INADDR_ANY); -+ if ( loopbackBind ) -+ { -+ address = htonl(INADDR_LOOPBACK); -+ } -+ else -+ { -+ address = htonl(INADDR_ANY); -+ } - } - } - else ---- a/nxcomp/Misc.cpp -+++ b/nxcomp/Misc.cpp -@@ -42,6 +42,14 @@ - #undef DEBUG - - // -+// By default nxproxy binds to all network interfaces, setting -+// DEFAULT_LOOPBACK_BIND to 1 enables binding to the loopback -+// device only. -+// -+ -+const int DEFAULT_LOOPBACK_BIND = 0; -+ -+// - // TCP port offset applied to any NX port specification. - // - -@@ -137,6 +145,8 @@ - \n\ - listen=n Local port used for accepting the proxy connection.\n\ - \n\ -+ loopback=b Bind to the loopback device only.\n\ -+\n\ - accept=s Name or IP of host that can connect to the proxy.\n\ - \n\ - connect=s Name or IP of host that the proxy will connect to.\n\ ---- a/nxcomp/Misc.h -+++ b/nxcomp/Misc.h -@@ -90,6 +90,14 @@ - extern const int DEFAULT_NX_SLAVE_PORT_SERVER_OFFSET; - - // -+// NX proxy binds to all network interfaces by default -+// With the -loopback parameter, you can switch -+// over to binding to the loopback device only. -+// -+ -+extern const int DEFAULT_LOOPBACK_BIND; -+ -+// - // Return strings containing various info. - // - diff --git a/debian/patches/series b/debian/patches/series index b6a4677..30ed936 100644 --- a/debian/patches/series +++ b/debian/patches/series @@ -1,4 +1,3 @@ -220_nxproxy_bind-loopback-only.full+lite.patch 300_nxagent_set-wm-class.full.patch 301_nx-X11_use-shared-libs.full.patch 302_nx-X11_xkbbasedir-detection.full.patch diff --git a/nxcomp/Loop.cpp b/nxcomp/Loop.cpp index 05b5145..77b0c80 100644 --- a/nxcomp/Loop.cpp +++ b/nxcomp/Loop.cpp @@ -952,6 +952,7 @@ static char listenHost[DEFAULT_STRING_LENGTH] = { 0 }; static char displayHost[DEFAULT_STRING_LENGTH] = { 0 }; static char authCookie[DEFAULT_STRING_LENGTH] = { 0 }; +static int loopbackBind = DEFAULT_LOOPBACK_BIND; static int proxyPort = DEFAULT_NX_PROXY_PORT; static int xPort = DEFAULT_NX_X_PORT; @@ -3959,7 +3960,14 @@ int SetupTcpSocket() tcpAddr.sin_family = AF_INET; tcpAddr.sin_port = htons(proxyPortTCP); - tcpAddr.sin_addr.s_addr = htonl(INADDR_ANY); + if ( loopbackBind ) + { + tcpAddr.sin_addr.s_addr = htonl(INADDR_LOOPBACK); + } + else + { + tcpAddr.sin_addr.s_addr = htonl(INADDR_ANY); + } if (bind(tcpFD, (sockaddr *) &tcpAddr, sizeof(tcpAddr)) == -1) { @@ -4550,7 +4558,14 @@ int ListenConnection(int port, const char *label) tcpAddr.sin_family = AF_INET; tcpAddr.sin_port = htons(portTCP); - tcpAddr.sin_addr.s_addr = htonl(INADDR_ANY); + if ( loopbackBind ) + { + tcpAddr.sin_addr.s_addr = htonl(INADDR_LOOPBACK); + } + else + { + tcpAddr.sin_addr.s_addr = htonl(INADDR_ANY); + } if (bind(newFD, (sockaddr *) &tcpAddr, sizeof(tcpAddr)) == -1) { @@ -6718,7 +6733,14 @@ int WaitForRemote(int portNum) #ifdef __APPLE__ - tcpAddr.sin_addr.s_addr = htonl(INADDR_ANY); + if ( loopbackBind ) + { + tcpAddr.sin_addr.s_addr = htonl(INADDR_LOOPBACK); + } + else + { + tcpAddr.sin_addr.s_addr = htonl(INADDR_ANY); + } #else @@ -8397,6 +8419,10 @@ int ParseEnvironmentOptions(const char *env, int force) listenPort = ValidateArg("local", name, value); } + else if (strcasecmp(name, "loopback") == 0) + { + loopbackBind = ValidateArg("local", name, value); + } else if (strcasecmp(name, "accept") == 0) { if (*connectHost != '\0') @@ -13778,7 +13804,14 @@ int ParseListenOption(int &address) } else { - address = htonl(INADDR_ANY); + if ( loopbackBind ) + { + address = htonl(INADDR_LOOPBACK); + } + else + { + address = htonl(INADDR_ANY); + } } } else diff --git a/nxcomp/Misc.cpp b/nxcomp/Misc.cpp index 7303c59..0095eaa 100644 --- a/nxcomp/Misc.cpp +++ b/nxcomp/Misc.cpp @@ -42,6 +42,14 @@ #undef DEBUG // +// By default nxproxy binds to all network interfaces, setting +// DEFAULT_LOOPBACK_BIND to 1 enables binding to the loopback +// device only. +// + +const int DEFAULT_LOOPBACK_BIND = 0; + +// // TCP port offset applied to any NX port specification. // @@ -137,6 +145,8 @@ static const char UsageInfo[] = \n\ listen=n Local port used for accepting the proxy connection.\n\ \n\ + loopback=b Bind to the loopback device only.\n\ +\n\ accept=s Name or IP of host that can connect to the proxy.\n\ \n\ connect=s Name or IP of host that the proxy will connect to.\n\ diff --git a/nxcomp/Misc.h b/nxcomp/Misc.h index 3f37836..21a5030 100644 --- a/nxcomp/Misc.h +++ b/nxcomp/Misc.h @@ -90,6 +90,14 @@ extern const int DEFAULT_NX_SLAVE_PORT_CLIENT_OFFSET; extern const int DEFAULT_NX_SLAVE_PORT_SERVER_OFFSET; // +// NX proxy binds to all network interfaces by default +// With the -loopback parameter, you can switch +// over to binding to the loopback device only. +// + +extern const int DEFAULT_LOOPBACK_BIND; + +// // Return strings containing various info. // -- Alioth's /srv/git/_hooks_/post-receive-email on /srv/git/code.x2go.org/nx-libs.git
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 1e99734ec8862a68b8f46cf6714d269fff625ec3 Author: Oleksandr Shneyder <oleksandr.shneyder@obviously-nice.de> Date: Tue Feb 10 21:45:19 2015 +0100 Set WM_CLASS to X2GoAgent/NXAgent (300_nxagent_set-wm-class.full.patch). 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. --- debian/patches/300_nxagent_set-wm-class.full.patch | 60 -------------------- debian/patches/series | 1 - nx-X11/programs/Xserver/hw/nxagent/Screen.c | 36 ++++++++++++ 3 files changed, 36 insertions(+), 61 deletions(-) diff --git a/debian/patches/300_nxagent_set-wm-class.full.patch b/debian/patches/300_nxagent_set-wm-class.full.patch deleted file mode 100644 index 70b1c92..0000000 --- a/debian/patches/300_nxagent_set-wm-class.full.patch +++ /dev/null @@ -1,60 +0,0 @@ -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@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 -@@ -1762,6 +1762,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/series b/debian/patches/series index 30ed936..503a511 100644 --- a/debian/patches/series +++ b/debian/patches/series @@ -1,4 +1,3 @@ -300_nxagent_set-wm-class.full.patch 301_nx-X11_use-shared-libs.full.patch 302_nx-X11_xkbbasedir-detection.full.patch 320_nxagent_configurable-keystrokes.full.patch diff --git a/nx-X11/programs/Xserver/hw/nxagent/Screen.c b/nx-X11/programs/Xserver/hw/nxagent/Screen.c index f0ce4da..d0608a9 100644 --- a/nx-X11/programs/Xserver/hw/nxagent/Screen.c +++ b/nx-X11/programs/Xserver/hw/nxagent/Screen.c @@ -1762,6 +1762,42 @@ N/A 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]; -- Alioth's /srv/git/_hooks_/post-receive-email on /srv/git/code.x2go.org/nx-libs.git
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 6fc37fa762efc55e5d59158eb180cfe1c0405b26 Author: Jan Engelhardt <jengelh@medozas.de> Date: Tue Feb 10 21:47:31 2015 +0100 Use shared libraries (301_nx-X11_use-shared-libs.full.patch). Many distributions have a policy to reduce code duplications. One means to avoid such duplications is to use shared libraries instead of using libs that are ofter shipped for convenience. Fedora: http://fedoraproject.org/wiki/Packaging:Guidelines#Shared_Libraries Debian (Section 10.7.4 of Debian policy): http://www.debian.org/doc/debian-policy/ch-files.html --- .../patches/301_nx-X11_use-shared-libs.full.patch | 106 -------------------- debian/patches/series | 1 - nx-X11/config/cf/host.def | 11 +- nx-X11/programs/Xserver/Imakefile | 6 +- nx-X11/programs/nxauth/Imakefile | 2 +- 5 files changed, 10 insertions(+), 116 deletions(-) diff --git a/debian/patches/301_nx-X11_use-shared-libs.full.patch b/debian/patches/301_nx-X11_use-shared-libs.full.patch deleted file mode 100644 index 2001474..0000000 --- a/debian/patches/301_nx-X11_use-shared-libs.full.patch +++ /dev/null @@ -1,106 +0,0 @@ -Description: Use shared libraries - Many distributions have a policy to reduce code duplications. - One means to avoid such duplications is to use shared libraries - instead of using libs that are ofter shipped for convenience. - . - Fedora: - http://fedoraproject.org/wiki/Packaging:Guidelines#Shared_Libraries - . - Debian (Section 10.7.4 of Debian policy): - http://www.debian.org/doc/debian-policy/ch-files.html -Forwarded: pending... -Author: Jan Engelhardt <jengelh@medozas.de> -Last-Update: 2012-02-14 ---- - nx-X11/config/cf/host.def | 11 ++++++----- - nx-X11/programs/Xserver/Imakefile | 6 +++--- - nx-X11/programs/nxauth/Imakefile | 2 +- - 3 files changed, 10 insertions(+), 9 deletions(-) - -Index: nx-X11/config/cf/host.def -=================================================================== ---- a/nx-X11/config/cf/host.def -+++ b/nx-X11/config/cf/host.def -@@ -138,7 +138,7 @@ XCOMM $XFree86: xc/config/cf/xf86site.de - #define BuildRenderLibrary YES - #define SharedLibFreetype2 YES - #define NormalLibFreetype2 YES --#define FontLibSharedFreeType NO -+#define FontLibSharedFreeType YES - #endif - - /* -@@ -649,6 +649,7 @@ XCOMM $XFree86: xc/config/cf/xf86site.de - * - #define XserverStaticFontLib NO - */ -+#define XserverStaticFontLib YES - - /* - * To enable binary compatibility with previous versions of the font -@@ -733,7 +734,7 @@ XCOMM $XFree86: xc/config/cf/xf86site.de - #define BuildXKB YES - #define BuildXKBlib YES - --#define SharedLibXau NO -+#define SharedLibXau YES - - /* - * If you are running NetBSD 0.9C or later, and have the aperture driver -@@ -956,9 +957,9 @@ XCOMM $XFree86: xc/config/cf/xf86site.de - #define BuildXterm YES - */ - --#define SharedLibXau NO -+#define SharedLibXau YES - --#define SharedLibXdmcp NO -+#define SharedLibXdmcp YES - - #define BuildXaw7 YES - -@@ -976,7 +977,7 @@ XCOMM $XFree86: xc/config/cf/xf86site.de - #define BuildFontServer NO - #define BuildFreeType NO - #define BuildXTrueType NO --#define FontLibSharedFreeType NO -+#define FontLibSharedFreeType YES - #endif - - #if !defined(NXZaurusXServer) && defined(NXiPAQXServer) -Index: nx-X11/programs/Xserver/Imakefile -=================================================================== ---- a/nx-X11/programs/Xserver/Imakefile -+++ b/nx-X11/programs/Xserver/Imakefile -@@ -1013,15 +1013,15 @@ $(NXAGENTOBJS) $(NXAGENTLIBS) $(NXAGENTS - #if defined(SunArchitecture) - NXAGENTNXLIBS = -L ../../../nxcomp -L ../../../nxcompext -L ../../../nxcompshad \ - -lXcomp -lXcompext -lXcompshad -lrt -L/usr/sfw/lib -lXrender -lXfixes \ -- -L../../../nx-X11/exports/lib -lXtst -lXdamage -lXrandr -lXcomposite -+ -L../../../nx-X11/exports/lib -lXtst -lXdamage -lXrandr -lXcomposite -lXdmcp - #elif defined(cygwinArchitecture) - NXAGENTNXLIBS = -L ../../../nxcomp -L ../../../nxcompext \ - -lXcomp -lXcompext -lXrender -lX11 -lXext -lXcomposite -lXfixes \ -- -L ../../../nxcompshad -lXcompshad -L../../../nx-X11/exports/lib -lXtst -+ -L ../../../nxcompshad -lXcompshad -L../../../nx-X11/exports/lib -lXtst -lXdmcp - #else - NXAGENTNXLIBS = -L ../../../nxcomp -L ../../../nxcompext -L ../../../nxcompshad \ - -lXcomp -lXcompext -lXcompshad -lXrender -lX11 -lXext -lXfixes \ -- -L../../../nx-X11/exports/lib -lXtst -lXdamage -lXrandr -lXcomposite -lXinerama -+ -L../../../nx-X11/exports/lib -lXtst -lXdamage -lXrandr -lXcomposite -lXinerama -lXdmcp - #endif - - #endif -Index: nx-X11/programs/nxauth/Imakefile -=================================================================== ---- a/nx-X11/programs/nxauth/Imakefile -+++ b/nx-X11/programs/nxauth/Imakefile -@@ -26,7 +26,7 @@ XCOMM $XFree86: xc/programs/xauth/Imakef - - INCLUDES=-I../../lib - DEPLIBS = $(DEPXAUTHLIB) -- LOCAL_LIBRARIES = ../../exports/lib/libXau.a -+ LOCAL_LIBRARIES = $(XAUTHLIB) - SRCS = xauth.c gethost.c process.c parsedpy.c - OBJS = xauth.o gethost.o process.o parsedpy.o - CONN_DEFINES = $(CONNECTION_FLAGS) diff --git a/debian/patches/series b/debian/patches/series index 503a511..a901010 100644 --- a/debian/patches/series +++ b/debian/patches/series @@ -1,4 +1,3 @@ -301_nx-X11_use-shared-libs.full.patch 302_nx-X11_xkbbasedir-detection.full.patch 320_nxagent_configurable-keystrokes.full.patch 321_nxagent_x2go-specific-keystroke-config.full.patch diff --git a/nx-X11/config/cf/host.def b/nx-X11/config/cf/host.def index 7d0511f..2193a47 100644 --- a/nx-X11/config/cf/host.def +++ b/nx-X11/config/cf/host.def @@ -138,7 +138,7 @@ XCOMM $XFree86: xc/config/cf/xf86site.def,v 3.186 2003/06/25 18:06:22 eich Exp $ #define BuildRenderLibrary YES #define SharedLibFreetype2 YES #define NormalLibFreetype2 YES -#define FontLibSharedFreeType NO +#define FontLibSharedFreeType YES #endif /* @@ -649,6 +649,7 @@ XCOMM $XFree86: xc/config/cf/xf86site.def,v 3.186 2003/06/25 18:06:22 eich Exp $ * #define XserverStaticFontLib NO */ +#define XserverStaticFontLib YES /* * To enable binary compatibility with previous versions of the font @@ -733,7 +734,7 @@ XCOMM $XFree86: xc/config/cf/xf86site.def,v 3.186 2003/06/25 18:06:22 eich Exp $ #define BuildXKB YES #define BuildXKBlib YES -#define SharedLibXau NO +#define SharedLibXau YES /* * If you are running NetBSD 0.9C or later, and have the aperture driver @@ -956,9 +957,9 @@ XCOMM $XFree86: xc/config/cf/xf86site.def,v 3.186 2003/06/25 18:06:22 eich Exp $ #define BuildXterm YES */ -#define SharedLibXau NO +#define SharedLibXau YES -#define SharedLibXdmcp NO +#define SharedLibXdmcp YES #define BuildXaw7 YES @@ -976,7 +977,7 @@ XCOMM $XFree86: xc/config/cf/xf86site.def,v 3.186 2003/06/25 18:06:22 eich Exp $ #define BuildFontServer NO #define BuildFreeType NO #define BuildXTrueType NO -#define FontLibSharedFreeType NO +#define FontLibSharedFreeType YES #endif #if !defined(NXZaurusXServer) && defined(NXiPAQXServer) diff --git a/nx-X11/programs/Xserver/Imakefile b/nx-X11/programs/Xserver/Imakefile index 8ecb338..c803a99 100644 --- a/nx-X11/programs/Xserver/Imakefile +++ b/nx-X11/programs/Xserver/Imakefile @@ -1013,15 +1013,15 @@ $(NXAGENTOBJS) $(NXAGENTLIBS) $(NXAGENTSYSLIBS):: $(NXAGENTDIRS) #if defined(SunArchitecture) NXAGENTNXLIBS = -L ../../../nxcomp -L ../../../nxcompext -L ../../../nxcompshad \ -lXcomp -lXcompext -lXcompshad -lrt -L/usr/sfw/lib -lXrender -lXfixes \ - -L../../../nx-X11/exports/lib -lXtst -lXdamage -lXrandr -lXcomposite + -L../../../nx-X11/exports/lib -lXtst -lXdamage -lXrandr -lXcomposite -lXdmcp #elif defined(cygwinArchitecture) NXAGENTNXLIBS = -L ../../../nxcomp -L ../../../nxcompext \ -lXcomp -lXcompext -lXrender -lX11 -lXext -lXcomposite -lXfixes \ - -L ../../../nxcompshad -lXcompshad -L../../../nx-X11/exports/lib -lXtst + -L ../../../nxcompshad -lXcompshad -L../../../nx-X11/exports/lib -lXtst -lXdmcp #else NXAGENTNXLIBS = -L ../../../nxcomp -L ../../../nxcompext -L ../../../nxcompshad \ -lXcomp -lXcompext -lXcompshad -lXrender -lX11 -lXext -lXfixes \ - -L../../../nx-X11/exports/lib -lXtst -lXdamage -lXrandr -lXcomposite -lXinerama + -L../../../nx-X11/exports/lib -lXtst -lXdamage -lXrandr -lXcomposite -lXinerama -lXdmcp #endif #endif diff --git a/nx-X11/programs/nxauth/Imakefile b/nx-X11/programs/nxauth/Imakefile index 07b1ca7..278904f 100644 --- a/nx-X11/programs/nxauth/Imakefile +++ b/nx-X11/programs/nxauth/Imakefile @@ -26,7 +26,7 @@ XCOMM $XFree86: xc/programs/xauth/Imakefile,v 3.5 2001/03/30 02:15:23 keithp Exp INCLUDES=-I../../lib DEPLIBS = $(DEPXAUTHLIB) - LOCAL_LIBRARIES = ../../exports/lib/libXau.a + LOCAL_LIBRARIES = $(XAUTHLIB) SRCS = xauth.c gethost.c process.c parsedpy.c OBJS = xauth.o gethost.o process.o parsedpy.o CONN_DEFINES = $(CONNECTION_FLAGS) -- Alioth's /srv/git/_hooks_/post-receive-email on /srv/git/code.x2go.org/nx-libs.git