From 77c3e15506839c9c7c2a6e8c7582da49b33507b8 Mon Sep 17 00:00:00 2001 From: Mike Gabriel Date: Mon, 30 Jun 2014 14:53:09 +0200 Subject: Split up patch 210 (for correct creation nx-libs, nx-libs-lite tarballs): * Split up patch 210 (for correct creation nx-libs, nx-libs-lite tarballs): + 210_nxagent_save_session_state.full.patch + 210_nxcomp_save_session_state.full+lite.patch --- debian/VERSION.x2goagent | 2 +- debian/changelog | 8 + ...agent+nxcomp_save_session_state.full+lite.patch | 188 --------------------- .../210_nxagent_save_session_state.full.patch | 176 +++++++++++++++++++ .../210_nxcomp_save_session_state.full+lite.patch | 15 ++ debian/patches/series | 3 +- nx-libs.spec | 2 +- 7 files changed, 203 insertions(+), 191 deletions(-) delete mode 100644 debian/patches/210_nxagent+nxcomp_save_session_state.full+lite.patch create mode 100644 debian/patches/210_nxagent_save_session_state.full.patch create mode 100644 debian/patches/210_nxcomp_save_session_state.full+lite.patch diff --git a/debian/VERSION.x2goagent b/debian/VERSION.x2goagent index b101b6383..e057f0dee 100644 --- a/debian/VERSION.x2goagent +++ b/debian/VERSION.x2goagent @@ -1 +1 @@ -3.5.0.26 +3.5.0.27 diff --git a/debian/changelog b/debian/changelog index bf6fbe517..6cc86d3a2 100644 --- a/debian/changelog +++ b/debian/changelog @@ -1,3 +1,11 @@ +nx-libs (2:3.5.0.27-0x2go1) UNRELEASED; urgency=medium + + * Split up patch 210 (for correct creation nx-libs, nx-libs-lite tarballs): + + 210_nxagent_save_session_state.full.patch + + 210_nxcomp_save_session_state.full+lite.patch + + -- Mike Gabriel Mon, 30 Jun 2014 14:51:09 +0200 + nx-libs (2:3.5.0.26-0x2go1) unstable; urgency=medium * Fix patch names: diff --git a/debian/patches/210_nxagent+nxcomp_save_session_state.full+lite.patch b/debian/patches/210_nxagent+nxcomp_save_session_state.full+lite.patch deleted file mode 100644 index 8eff50c60..000000000 --- a/debian/patches/210_nxagent+nxcomp_save_session_state.full+lite.patch +++ /dev/null @@ -1,188 +0,0 @@ -Description: Save session state in file -Author: Oleksandr Shneyder - ---- 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 -+ -+/* -+ * 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); ---- 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/210_nxagent_save_session_state.full.patch b/debian/patches/210_nxagent_save_session_state.full.patch new file mode 100644 index 000000000..223d0bc7a --- /dev/null +++ b/debian/patches/210_nxagent_save_session_state.full.patch @@ -0,0 +1,176 @@ +Description: Save session state in file +Author: Oleksandr Shneyder + +--- 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 ++ ++/* ++ * 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 new file mode 100644 index 000000000..1ef4440d8 --- /dev/null +++ b/debian/patches/210_nxcomp_save_session_state.full+lite.patch @@ -0,0 +1,15 @@ +Description: Ignore state= option in nxproxy/nxcomp +Author: Oleksandr Shneyder + +--- 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 a7634ba05..cf3e9a001 100644 --- a/debian/patches/series +++ b/debian/patches/series @@ -50,7 +50,8 @@ 205_nxagent_refresh-adsl.full.patch 206_nxagent_clipboard-as-nxoption.full.patch 209_x2goagent_add-man-page.full.patch -210_nxagent+nxcomp_save_session_state.full+lite.patch +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-libs.spec b/nx-libs.spec index 4b5e4fca7..13bf10089 100644 --- a/nx-libs.spec +++ b/nx-libs.spec @@ -1,7 +1,7 @@ %global _hardened_build 1 Name: nx-libs -Version: 3.5.0.26 +Version: 3.5.0.27 Release: 0.0x2go1%{?dist} Summary: NX X11 protocol compression libraries -- cgit v1.2.3