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 cbdae3b nx-libs.spec: delete useless cond_noarch macro that has never been used. new 4ab1872 Xext: lift screensaver extension to XORG-7_1 state new 31900d4 Xext: lift DPMS extension to xorg-xserver-7.1/1.1 state new d9c3a72 Xext: lift panoramiX to xorg-xserver-7.1/1.1 state new 62373d4 Xext: lift sleeputil.c to xorg-xserver-7.1/1.1 state new e85c688 Xext: lift sync.c to xorg-xserver-7.1/1.1 state new 8ebb5d2 Xext: lift xres.c to xorg-xserver-7.1/1.1 state new 5ec2366 Xext: lift xvmain.c to xorg-xserver-7.1/1.1 state new aecdb52 Merge branch 'uli42-pr/update_xext' into 3.6.x new f76d4b5 nx-X11/config/cf/{Imake.{cf,tmpl},{linux,xorg}.cf}: support ppc64le alongside ppc64(be). The 9 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: nx-X11/config/cf/Imake.cf | 19 ++- nx-X11/config/cf/Imake.tmpl | 2 + nx-X11/config/cf/linux.cf | 6 +- nx-X11/config/cf/xorg.cf | 3 +- nx-X11/include/extensions/saver.h | 4 +- nx-X11/include/extensions/saverproto.h | 13 +- nx-X11/programs/Xserver/Xext/dpms.c | 6 +- nx-X11/programs/Xserver/Xext/panoramiX.c | 31 +++-- nx-X11/programs/Xserver/Xext/saver.c | 149 ++++++++++++++++++++++- nx-X11/programs/Xserver/Xext/sleepuntil.c | 2 +- nx-X11/programs/Xserver/Xext/sync.c | 12 +- nx-X11/programs/Xserver/Xext/xres.c | 4 +- nx-X11/programs/Xserver/Xext/xvmain.c | 6 +- nx-X11/programs/Xserver/dix/Imakefile | 2 +- nx-X11/programs/Xserver/dix/globals.c | 4 + nx-X11/programs/Xserver/dix/main.c | 6 - nx-X11/programs/Xserver/include/globals.h | 4 + nx-X11/programs/Xserver/os/WaitFor.c | 193 ++++++++++++++++-------------- 18 files changed, 333 insertions(+), 133 deletions(-) -- Alioth's /home/x2go-admin/maintenancescripts/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 31900d41a067a16644e93068e003077bde64c077 Author: Ulrich Sibiller <uli42@gmx.de> Date: Sat Oct 21 02:04:30 2017 +0200 Xext: lift DPMS extension to xorg-xserver-7.1/1.1 state --- nx-X11/programs/Xserver/Xext/dpms.c | 6 +- nx-X11/programs/Xserver/dix/main.c | 6 -- nx-X11/programs/Xserver/os/WaitFor.c | 193 ++++++++++++++++++----------------- 3 files changed, 105 insertions(+), 100 deletions(-) diff --git a/nx-X11/programs/Xserver/Xext/dpms.c b/nx-X11/programs/Xserver/Xext/dpms.c index e05a706..74969bb 100644 --- a/nx-X11/programs/Xserver/Xext/dpms.c +++ b/nx-X11/programs/Xserver/Xext/dpms.c @@ -183,12 +183,12 @@ ProcDPMSSetTimeouts(client) client->errorValue = stuff->suspend; return BadValue; } - + DPMSStandbyTime = stuff->standby * MILLI_PER_SECOND; DPMSSuspendTime = stuff->suspend * MILLI_PER_SECOND; DPMSOffTime = stuff->off * MILLI_PER_SECOND; - SetDPMSTimers(); - + SetScreenSaverTimer(); + return(client->noClientException); } diff --git a/nx-X11/programs/Xserver/dix/main.c b/nx-X11/programs/Xserver/dix/main.c index 3f3c079..eb8f359 100644 --- a/nx-X11/programs/Xserver/dix/main.c +++ b/nx-X11/programs/Xserver/dix/main.c @@ -335,9 +335,6 @@ main(int argc, char *argv[], char *envp[]) InitRootWindow(screenInfo.screens[i]->root); DefineInitialRootWindow(screenInfo.screens[0]->root); SaveScreens(SCREEN_SAVER_FORCER, ScreenSaverReset); -#ifdef DPMSExtension - SetDPMSTimers(); -#endif #ifdef PANORAMIX if (!noPanoramiXExtension) { @@ -387,9 +384,6 @@ main(int argc, char *argv[], char *envp[]) } FreeFonts(); -#ifdef DPMSExtension - FreeDPMSTimers(); -#endif FreeAuditTimer(); ReleaseClientIds(serverClient); diff --git a/nx-X11/programs/Xserver/os/WaitFor.c b/nx-X11/programs/Xserver/os/WaitFor.c index 76e5da5..cb97039 100644 --- a/nx-X11/programs/Xserver/os/WaitFor.c +++ b/nx-X11/programs/Xserver/os/WaitFor.c @@ -701,26 +701,89 @@ TimerInit(void) } } +#ifdef DPMSExtension + +#define DPMS_CHECK_MODE(mode,time)\ + if (time > 0 && DPMSPowerLevel < mode && timeout >= time)\ + DPMSSet(mode); + +#define DPMS_CHECK_TIMEOUT(time)\ + if (time > 0 && (time - timeout) > 0)\ + return time - timeout; + +static CARD32 +NextDPMSTimeout(INT32 timeout) +{ + /* + * Return the amount of time remaining until we should set + * the next power level. Fallthroughs are intentional. + */ + switch (DPMSPowerLevel) + { + case DPMSModeOn: + DPMS_CHECK_TIMEOUT(DPMSStandbyTime) + + case DPMSModeStandby: + DPMS_CHECK_TIMEOUT(DPMSSuspendTime) + + case DPMSModeSuspend: + DPMS_CHECK_TIMEOUT(DPMSOffTime) + + default: /* DPMSModeOff */ + return 0; + } +} +#endif /* DPMSExtension */ + static CARD32 ScreenSaverTimeoutExpire(OsTimerPtr timer,CARD32 now,void * arg) { - INT32 timeout = now - lastDeviceEventTime.milliseconds; + INT32 timeout = now - lastDeviceEventTime.milliseconds; + CARD32 nextTimeout = 0; + +#ifdef DPMSExtension + /* + * Check each mode lowest to highest, since a lower mode can + * have the same timeout as a higher one. + */ + if (DPMSEnabled) + { + DPMS_CHECK_MODE(DPMSModeOff, DPMSOffTime) + DPMS_CHECK_MODE(DPMSModeSuspend, DPMSSuspendTime) + DPMS_CHECK_MODE(DPMSModeStandby, DPMSStandbyTime) - if (timeout < ScreenSaverTime) { - return ScreenSaverTime - timeout; + nextTimeout = NextDPMSTimeout(timeout); + } + + /* + * Only do the screensaver checks if we're not in a DPMS + * power saving mode + */ + if (DPMSPowerLevel != DPMSModeOn) + return nextTimeout; +#endif /* DPMSExtension */ + + if (!ScreenSaverTime) + return nextTimeout; + + if (timeout < ScreenSaverTime) + { + return nextTimeout > 0 ? + MIN(ScreenSaverTime - timeout, nextTimeout) : + ScreenSaverTime - timeout; } ResetOsBuffers(); /* not ideal, but better than nothing */ SaveScreens(SCREEN_SAVER_ON, ScreenSaverActive); -#ifdef DPMSExtension - if (ScreenSaverInterval > 0 && DPMSPowerLevel == DPMSModeOn) -#else if (ScreenSaverInterval > 0) -#endif /* DPMSExtension */ - return ScreenSaverInterval; + { + nextTimeout = nextTimeout > 0 ? + MIN(ScreenSaverInterval, nextTimeout) : + ScreenSaverInterval; + } - return 0; + return nextTimeout; } static OsTimerPtr ScreenSaverTimer = NULL; @@ -737,93 +800,41 @@ FreeScreenSaverTimer(void) void SetScreenSaverTimer(void) { - if (ScreenSaverTime > 0) { - ScreenSaverTimer = TimerSet(ScreenSaverTimer, 0, ScreenSaverTime, - ScreenSaverTimeoutExpire, NULL); - } else if (ScreenSaverTimer) { - FreeScreenSaverTimer(); - } -} + CARD32 timeout = 0; #ifdef DPMSExtension - -static OsTimerPtr DPMSStandbyTimer = NULL; -static OsTimerPtr DPMSSuspendTimer = NULL; -static OsTimerPtr DPMSOffTimer = NULL; - -static CARD32 -DPMSStandbyTimerExpire(OsTimerPtr timer,CARD32 now,void * arg) -{ - INT32 timeout = now - lastDeviceEventTime.milliseconds; - - if (timeout < DPMSStandbyTime) { - return DPMSStandbyTime - timeout; - } - if (DPMSPowerLevel < DPMSModeStandby) { - if (DPMSEnabled) - DPMSSet(DPMSModeStandby); - } - return DPMSStandbyTime; -} - -static CARD32 -DPMSSuspendTimerExpire(OsTimerPtr timer,CARD32 now,void * arg) -{ - INT32 timeout = now - lastDeviceEventTime.milliseconds; - - if (timeout < DPMSSuspendTime) { - return DPMSSuspendTime - timeout; - } - if (DPMSPowerLevel < DPMSModeSuspend) { - if (DPMSEnabled) - DPMSSet(DPMSModeSuspend); - } - return DPMSSuspendTime; -} - -static CARD32 -DPMSOffTimerExpire(OsTimerPtr timer,CARD32 now,void * arg) -{ - INT32 timeout = now - lastDeviceEventTime.milliseconds; - - if (timeout < DPMSOffTime) { - return DPMSOffTime - timeout; - } - if (DPMSPowerLevel < DPMSModeOff) { - if (DPMSEnabled) - DPMSSet(DPMSModeOff); + if (DPMSEnabled) + { + /* + * A higher DPMS level has a timeout that's either less + * than or equal to that of a lower DPMS level. + */ + if (DPMSStandbyTime > 0) + timeout = DPMSStandbyTime; + + else if (DPMSSuspendTime > 0) + timeout = DPMSSuspendTime; + + else if (DPMSOffTime > 0) + timeout = DPMSOffTime; } - return DPMSOffTime; -} +#endif -void -FreeDPMSTimers(void) -{ - if (DPMSStandbyTimer) { - TimerFree(DPMSStandbyTimer); - DPMSStandbyTimer = NULL; + if (ScreenSaverTime > 0) + { + timeout = timeout > 0 ? + MIN(ScreenSaverTime, timeout) : + ScreenSaverTime; } - if (DPMSSuspendTimer) { - TimerFree(DPMSSuspendTimer); - DPMSSuspendTimer = NULL; +#ifdef SCREENSAVER + if (timeout && !screenSaverSuspended) { +#else + if (timeout) { +#endif + ScreenSaverTimer = TimerSet(ScreenSaverTimer, 0, timeout, + ScreenSaverTimeoutExpire, NULL); } - if (DPMSOffTimer) { - TimerFree(DPMSOffTimer); - DPMSOffTimer = NULL; + else if (ScreenSaverTimer) { + FreeScreenSaverTimer(); } } - -void -SetDPMSTimers(void) -{ - if (!DPMSEnabled) - return; - - DPMSStandbyTimer = TimerSet(DPMSStandbyTimer, 0, DPMSStandbyTime, - DPMSStandbyTimerExpire, NULL); - DPMSSuspendTimer = TimerSet(DPMSSuspendTimer, 0, DPMSSuspendTime, - DPMSSuspendTimerExpire, NULL); - DPMSOffTimer = TimerSet(DPMSOffTimer, 0, DPMSOffTime, - DPMSOffTimerExpire, NULL); -} -#endif -- Alioth's /home/x2go-admin/maintenancescripts/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 4ab18725cd088cbb401ef63e93ef41d8d7c78b2a Author: Ulrich Sibiller <uli42@gmx.de> Date: Sat Oct 21 01:47:40 2017 +0200 Xext: lift screensaver extension to XORG-7_1 state --- nx-X11/include/extensions/saver.h | 4 +- nx-X11/include/extensions/saverproto.h | 13 ++- nx-X11/programs/Xserver/Xext/saver.c | 149 +++++++++++++++++++++++++++++- nx-X11/programs/Xserver/dix/Imakefile | 2 +- nx-X11/programs/Xserver/dix/globals.c | 4 + nx-X11/programs/Xserver/include/globals.h | 4 + 6 files changed, 167 insertions(+), 9 deletions(-) diff --git a/nx-X11/include/extensions/saver.h b/nx-X11/include/extensions/saver.h index ea35454..e8da625 100644 --- a/nx-X11/include/extensions/saver.h +++ b/nx-X11/include/extensions/saver.h @@ -1,6 +1,4 @@ /* - * $XConsortium: saver.h,v 1.5 94/04/17 20:59:33 rws Exp $ - * Copyright (c) 1992 X Consortium Permission is hereby granted, free of charge, to any person obtaining a copy @@ -37,7 +35,7 @@ in this Software without prior written authorization from the X Consortium. #define ScreenSaverCycleMask 0x00000002 #define ScreenSaverMajorVersion 1 -#define ScreenSaverMinorVersion 0 +#define ScreenSaverMinorVersion 1 #define ScreenSaverOff 0 #define ScreenSaverOn 1 diff --git a/nx-X11/include/extensions/saverproto.h b/nx-X11/include/extensions/saverproto.h index 17f740f..43b168b 100644 --- a/nx-X11/include/extensions/saverproto.h +++ b/nx-X11/include/extensions/saverproto.h @@ -1,6 +1,4 @@ /* - * $XConsortium: saverproto.h,v 1.5 94/04/17 20:59:33 keith Exp $ - * Copyright (c) 1992 X Consortium Permission is hereby granted, free of charge, to any person obtaining a copy @@ -26,7 +24,6 @@ in this Software without prior written authorization from the X Consortium. * * Author: Keith Packard, MIT X Consortium */ -/* $XFree86$ */ #ifndef _SAVERPROTO_H_ #define _SAVERPROTO_H_ @@ -136,6 +133,16 @@ typedef struct _ScreenSaverUnsetAttributes { } xScreenSaverUnsetAttributesReq; #define sz_xScreenSaverUnsetAttributesReq 8 +#define X_ScreenSaverSuspend 5 + +typedef struct _ScreenSaverSuspend { + CARD8 reqType; + CARD8 saverReqType; + CARD16 length B16; + Bool suspend B32; +} xScreenSaverSuspendReq; +#define sz_xScreenSaverSuspendReq 8 + typedef struct _ScreenSaverNotify { CARD8 type; /* always eventBase + ScreenSaverNotify */ BYTE state; /* off, on, cycle */ diff --git a/nx-X11/programs/Xserver/Xext/saver.c b/nx-X11/programs/Xserver/Xext/saver.c index 066dffe..0b79a00 100644 --- a/nx-X11/programs/Xserver/Xext/saver.c +++ b/nx-X11/programs/Xserver/Xext/saver.c @@ -51,7 +51,10 @@ in this Software without prior written authorization from the X Consortium. #include "panoramiX.h" #include "panoramiXsrv.h" #endif - +#ifdef DPMSExtension +#define DPMS_SERVER +#include <nx-X11/extensions/dpms.h> +#endif #include <stdio.h> @@ -68,12 +71,14 @@ static DISPATCH_PROC(ProcScreenSaverQueryVersion); static DISPATCH_PROC(ProcScreenSaverSelectInput); static DISPATCH_PROC(ProcScreenSaverSetAttributes); static DISPATCH_PROC(ProcScreenSaverUnsetAttributes); +static DISPATCH_PROC(ProcScreenSaverSuspend); static DISPATCH_PROC(SProcScreenSaverDispatch); static DISPATCH_PROC(SProcScreenSaverQueryInfo); static DISPATCH_PROC(SProcScreenSaverQueryVersion); static DISPATCH_PROC(SProcScreenSaverSelectInput); static DISPATCH_PROC(SProcScreenSaverSetAttributes); static DISPATCH_PROC(SProcScreenSaverUnsetAttributes); +static DISPATCH_PROC(SProcScreenSaverSuspend); static Bool ScreenSaverHandle ( ScreenPtr /* pScreen */, @@ -110,6 +115,32 @@ static void ScreenSaverResetProc ( ExtensionEntry * /* extEntry */ ); +static RESTYPE SuspendType; /* resource type for suspension records */ + +typedef struct _ScreenSaverSuspension *ScreenSaverSuspensionPtr; + +/* List of clients that are suspending the screensaver. */ +static ScreenSaverSuspensionPtr suspendingClients = NULL; + +/* + * clientResource is a resource ID that's added when the record is + * allocated, so the record is freed and the screensaver resumed when + * the client disconnects. count is the number of times the client has + * requested the screensaver be suspended. + */ +typedef struct _ScreenSaverSuspension +{ + ScreenSaverSuspensionPtr next; + ClientPtr pClient; + XID clientResource; + int count; +} ScreenSaverSuspensionRec; + +static int ScreenSaverFreeSuspend( + pointer /*value */, + XID /* id */ +); + /* * each screen has a list of clients requesting * ScreenSaverNotify events. Each client has a resource @@ -227,13 +258,15 @@ ScreenSaverExtensionInit(void) AttrType = CreateNewResourceType(ScreenSaverFreeAttr); EventType = CreateNewResourceType(ScreenSaverFreeEvents); + SuspendType = CreateNewResourceType(ScreenSaverFreeSuspend); ScreenPrivateIndex = AllocateScreenPrivateIndex (); + for (i = 0; i < screenInfo.numScreens; i++) { pScreen = screenInfo.screens[i]; SetScreenPrivate (pScreen, NULL); } - if (AttrType && EventType && ScreenPrivateIndex != -1 && + if (AttrType && EventType && SuspendType && ScreenPrivateIndex != -1 && (extEntry = AddExtension(ScreenSaverName, ScreenSaverNumberEvents, 0, ProcScreenSaverDispatch, SProcScreenSaverDispatch, ScreenSaverResetProc, StandardMinorOpcode))) @@ -427,6 +460,45 @@ ScreenSaverFreeAttr (value, id) return TRUE; } +static int +ScreenSaverFreeSuspend (pointer value, XID id) +{ + ScreenSaverSuspensionPtr data = (ScreenSaverSuspensionPtr) value; + ScreenSaverSuspensionPtr *prev, this; + + /* Unlink and free the suspension record for the client */ + for (prev = &suspendingClients; (this = *prev); prev = &this->next) + { + if (this == data) + { + *prev = this->next; + free (this); + break; + } + } + + /* Reenable the screensaver if this was the last client suspending it. */ + if (screenSaverSuspended && suspendingClients == NULL) + { + screenSaverSuspended = FALSE; + + /* The screensaver could be active, since suspending it (by design) + doesn't prevent it from being forceably activated */ +#ifdef DPMSExtension + if (screenIsSaved != SCREEN_SAVER_ON && DPMSPowerLevel == DPMSModeOn) +#else + if (screenIsSaved != SCREEN_SAVER_ON) +#endif + { + UpdateCurrentTimeIf(); + lastDeviceEventTime = currentTime; + SetScreenSaverTimer(); + } + } + + return Success; +} + static void SendScreenSaverNotify (pScreen, state, forced) ScreenPtr pScreen; @@ -1286,12 +1358,73 @@ ProcScreenSaverUnsetAttributes (ClientPtr client) return ScreenSaverUnsetAttributes(client); } +static int +ProcScreenSaverSuspend (ClientPtr client) +{ + ScreenSaverSuspensionPtr *prev, this; + + REQUEST(xScreenSaverSuspendReq); + REQUEST_SIZE_MATCH(xScreenSaverSuspendReq); + + /* Check if this client is suspending the screensaver */ + for (prev = &suspendingClients; (this = *prev); prev = &this->next) + if (this->pClient == client) + break; + + if (this) + { + if (stuff->suspend == TRUE) + this->count++; + else if (--this->count == 0) + FreeResource (this->clientResource, RT_NONE); + + return Success; + } + + /* If we get to this point, this client isn't suspending the screensaver */ + if (stuff->suspend == FALSE) + return Success; + + /* + * Allocate a suspension record for the client, and stop the screensaver + * if it isn't already suspended by another client. We attach a resource ID + * to the record, so the screensaver will be reenabled and the record freed + * if the client disconnects without reenabling it first. + */ + this = (ScreenSaverSuspensionPtr) malloc (sizeof (ScreenSaverSuspensionRec)); + + if (!this) + return BadAlloc; + + memset(this, 0, sizeof (ScreenSaverSuspensionRec)); + this->next = NULL; + this->pClient = client; + this->count = 1; + this->clientResource = FakeClientID (client->index); + + if (!AddResource (this->clientResource, SuspendType, (pointer) this)) + { + free (this); + return BadAlloc; + } + + *prev = this; + if (!screenSaverSuspended) + { + screenSaverSuspended = TRUE; + FreeScreenSaverTimer(); + } + + return (client->noClientException); +} + static DISPATCH_PROC((*NormalVector[])) = { ProcScreenSaverQueryVersion, ProcScreenSaverQueryInfo, ProcScreenSaverSelectInput, ProcScreenSaverSetAttributes, ProcScreenSaverUnsetAttributes, + ProcScreenSaverSuspend, }; #define NUM_REQUESTS ((sizeof NormalVector) / (sizeof NormalVector[0])) @@ -1375,12 +1508,24 @@ SProcScreenSaverUnsetAttributes (client) return ProcScreenSaverUnsetAttributes (client); } +static int +SProcScreenSaverSuspend (ClientPtr client) +{ + REQUEST(xScreenSaverSuspendReq); + + swaps(&stuff->length); + REQUEST_SIZE_MATCH(xScreenSaverSuspendReq); + swapl(&stuff->suspend); + return ProcScreenSaverSuspend (client); +} + static DISPATCH_PROC((*SwappedVector[])) = { SProcScreenSaverQueryVersion, SProcScreenSaverQueryInfo, SProcScreenSaverSelectInput, SProcScreenSaverSetAttributes, SProcScreenSaverUnsetAttributes, + SProcScreenSaverSuspend, }; static int diff --git a/nx-X11/programs/Xserver/dix/Imakefile b/nx-X11/programs/Xserver/dix/Imakefile index 1024de9..ccdae3b 100644 --- a/nx-X11/programs/Xserver/dix/Imakefile +++ b/nx-X11/programs/Xserver/dix/Imakefile @@ -132,7 +132,7 @@ NormalLibraryTarget(dix,$(OBJS)) LintLibraryTarget(dix,$(SRCS) $(XPSRC)) NormalLintTarget($(SRCS) $(XPSRC)) -SpecialCObjectRule(globals,$(ICONFIGFILES),$(SITE_DEFINES)) +SpecialCObjectRule(globals,$(ICONFIGFILES),$(SITE_DEFINES) $(EXT_DEFINES)) SpecialCObjectRule(main,$(ICONFIGFILES),$(VENDOR_DEFINES)) SpecialCObjectRule(pixmap,$(ICONFIGFILES),$(_NOOP_)) SpecialCObjectRule(privates,$(ICONFIGFILES),$(_NOOP_)) diff --git a/nx-X11/programs/Xserver/dix/globals.c b/nx-X11/programs/Xserver/dix/globals.c index f9fa544..6f4774a 100644 --- a/nx-X11/programs/Xserver/dix/globals.c +++ b/nx-X11/programs/Xserver/dix/globals.c @@ -127,6 +127,10 @@ int defaultScreenSaverAllowExposures = DEFAULT_SCREEN_SAVER_EXPOSURES; int logoScreenSaver = DEFAULT_LOGO_SCREEN_SAVER; #endif +#ifdef SCREENSAVER +Bool screenSaverSuspended = FALSE; +#endif + char *defaultFontPath = COMPILEDDEFAULTFONTPATH; char *defaultTextFont = COMPILEDDEFAULTFONT; char *defaultCursorFont = COMPILEDCURSORFONT; diff --git a/nx-X11/programs/Xserver/include/globals.h b/nx-X11/programs/Xserver/include/globals.h index 1c4d73e..c43035c 100644 --- a/nx-X11/programs/Xserver/include/globals.h +++ b/nx-X11/programs/Xserver/include/globals.h @@ -11,6 +11,10 @@ extern CARD32 defaultScreenSaverInterval; extern CARD32 ScreenSaverTime; extern CARD32 ScreenSaverInterval; +#ifdef SCREENSAVER +extern Bool screenSaverSuspended; +#endif + extern char *defaultFontPath; extern int monitorResolution; extern Bool loadableFonts; -- Alioth's /home/x2go-admin/maintenancescripts/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 e85c6885e7f44d35248281c867e16be8a3fb97f1 Author: Ulrich Sibiller <uli42@gmx.de> Date: Sat Oct 21 02:43:20 2017 +0200 Xext: lift sync.c to xorg-xserver-7.1/1.1 state --- nx-X11/programs/Xserver/Xext/sync.c | 13 +++++++++++-- 1 file changed, 11 insertions(+), 2 deletions(-) diff --git a/nx-X11/programs/Xserver/Xext/sync.c b/nx-X11/programs/Xserver/Xext/sync.c index 7fa6145..48b142f 100644 --- a/nx-X11/programs/Xserver/Xext/sync.c +++ b/nx-X11/programs/Xserver/Xext/sync.c @@ -296,14 +296,18 @@ static void SyncDeleteTriggerFromCounter(pTrigger) SyncTrigger *pTrigger; { - SyncTriggerList *pCur, *pPrev = NULL; + SyncTriggerList *pCur; + SyncTriggerList *pPrev; /* pCounter needs to be stored in pTrigger before calling here. */ if (!pTrigger->pCounter) return; - for (pCur = pTrigger->pCounter->pTriglist; pCur; pCur = pCur->next) + pPrev = NULL; + pCur = pTrigger->pCounter->pTriglist; + + while (pCur) { if (pCur->pTrigger == pTrigger) { @@ -311,9 +315,14 @@ SyncDeleteTriggerFromCounter(pTrigger) pPrev->next = pCur->next; else pTrigger->pCounter->pTriglist = pCur->next; + + xfree(pCur); free(pCur); break; } + + pPrev = pCur; + pCur = pCur->next; } if (IsSystemCounter(pTrigger->pCounter)) -- Alioth's /home/x2go-admin/maintenancescripts/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 f76d4b54118627adb13dd896537c01033d989158 Author: Mihai Moldovan <ionic@ionic.de> Date: Thu Feb 8 20:40:32 2018 +0100 nx-X11/config/cf/{Imake.{cf,tmpl},{linux,xorg}.cf}: support ppc64le alongside ppc64(be). On PPC64*, X_BYTE_ORDER was hardcoded to X_BIG_ENDIAN. Since the CPUs support both modes and we actually intend to execute nxagent on ppc64le as well, detect the actual endianess and add support for Ppc64LeArchitecture. --- nx-X11/config/cf/Imake.cf | 19 +++++++++++++++++-- nx-X11/config/cf/Imake.tmpl | 2 ++ nx-X11/config/cf/linux.cf | 6 +++--- nx-X11/config/cf/xorg.cf | 3 ++- 4 files changed, 24 insertions(+), 6 deletions(-) diff --git a/nx-X11/config/cf/Imake.cf b/nx-X11/config/cf/Imake.cf index 676c7eb..9d683b8 100644 --- a/nx-X11/config/cf/Imake.cf +++ b/nx-X11/config/cf/Imake.cf @@ -858,10 +858,25 @@ XCOMM Keep cpp from replacing path elements containing i486/i586/i686 # undef __powerpc__ # endif # ifdef __powerpc64__ -# ifndef Ppc64Architecture -# define Ppc64Architecture +/* Can be both BE or LE. Trust that __BYTE_ORDER__ is set. */ +# undef tmp_set_big_endian +# define tmp_set_big_endian 1 +# if defined (__BYTE_ORDER__) && defined (__ORDER_LITTLE_ENDIAN__) && defined (__ORDER_BIG_ENDIAN__) +# if __BYTE_ORDER__ == __ORDER_LITTLE_ENDIAN__ +# define tmp_set_big_endian 0 +# endif +# endif +# if tmp_set_big_endian +# ifndef Ppc64Architecture +# define Ppc64Architecture +# endif +# else +# ifndef Ppc64LeArchitecture +# define Ppc64LeArchitecture +# endif # endif # undef __powerpc64__ +# undef tmp_set_big_endian # endif # ifdef sparc # define SparcArchitecture diff --git a/nx-X11/config/cf/Imake.tmpl b/nx-X11/config/cf/Imake.tmpl index 285b534..86222d1 100644 --- a/nx-X11/config/cf/Imake.tmpl +++ b/nx-X11/config/cf/Imake.tmpl @@ -507,6 +507,8 @@ XCOMM the platform-specific parameters - edit site.def to change #define ByteOrder X_BIG_ENDIAN #elif defined(PpcArchitecture) || defined(Ppc64Architecture) #define ByteOrder X_BIG_ENDIAN +#elif defined(Ppc64LeArchitecture) +#define ByteOrder X_LITTLE_ENDIAN #elif defined(HPArchitecture) #define ByteOrder X_BIG_ENDIAN #elif defined(SuperHArchitecture) diff --git a/nx-X11/config/cf/linux.cf b/nx-X11/config/cf/linux.cf index 87e9723..df7837c 100644 --- a/nx-X11/config/cf/linux.cf +++ b/nx-X11/config/cf/linux.cf @@ -457,7 +457,7 @@ XCOMM binutils: (LinuxBinUtilsMajorVersion) #define MkdirHierCmd mkdir -p #ifndef HaveLib64 -# if defined (AMD64Architecture) || defined (s390xArchitecture) || defined (Ppc64Architecture) +# if defined (AMD64Architecture) || defined (s390xArchitecture) || defined (Ppc64Architecture) || defined (Ppc64LeArchitecture) # define HaveLib64 YES # else # define HaveLib64 NO @@ -480,7 +480,7 @@ XCOMM binutils: (LinuxBinUtilsMajorVersion) # define CplusplusCmd c++ -m32 # endif # endif -# if defined (Ppc64Architecture) +# if defined (Ppc64Architecture) || defined (Ppc64LeArchitecture) # ifndef CcCmd # define CcCmd gcc -m64 # endif @@ -764,7 +764,7 @@ XCOMM binutils: (LinuxBinUtilsMajorVersion) # endif #endif -#ifdef Ppc64Architecture +#if defined (Ppc64Architecture) || defined (Ppc64LeArchitecture) # define DefaultCCOptions -std=c99 GccWarningOptions -mminimal-toc # ifndef OptimizedCDebugFlags # define OptimizedCDebugFlags DefaultGcc2Ppc64Opt diff --git a/nx-X11/config/cf/xorg.cf b/nx-X11/config/cf/xorg.cf index b68d11c..dc8a773 100644 --- a/nx-X11/config/cf/xorg.cf +++ b/nx-X11/config/cf/xorg.cf @@ -243,6 +243,7 @@ NX_VERSION_CURRENT_STRING = nxVersionString defined(AMD64Architecture) || defined(SparcArchitecture) || \ defined(Sparc64Architecture) || defined(MipsArchitecture) || \ defined(AlphaArchitecture) || defined(PpcArchitecture) || \ + defined(Ppc64Architecture) || defined(Ppc64LeArchitecture) || \ defined(Mc68020Architecture) || defined(Arm32Architecture) || \ defined(HPArchitecture) || defined(SuperHArchitecture) # ifndef XorgServer @@ -765,7 +766,7 @@ XFREE86JAPANESEDOCDIR = $(DOCDIR)/Japanese # endif #endif -#if HasGcc2 && defined(Ppc64Architecture) +#if HasGcc2 && (defined(Ppc64Architecture) || defined(Ppc64LeArchitecture)) # ifndef DefaultGcc2Ppc64Opt # define DefaultGcc2Ppc64Opt -O2 GccAliasingArgs # endif -- Alioth's /home/x2go-admin/maintenancescripts/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 8ebb5d23c931810335739be16c1b10f44ed3c4d0 Author: Ulrich Sibiller <uli42@gmx.de> Date: Sat Oct 21 02:47:07 2017 +0200 Xext: lift xres.c to xorg-xserver-7.1/1.1 state Fix XSERVER64 should be _XSERVER64 --- nx-X11/programs/Xserver/Xext/xres.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/nx-X11/programs/Xserver/Xext/xres.c b/nx-X11/programs/Xserver/Xext/xres.c index ceb9c65..03597ad 100644 --- a/nx-X11/programs/Xserver/Xext/xres.c +++ b/nx-X11/programs/Xserver/Xext/xres.c @@ -6,6 +6,8 @@ #include <dix-config.h> #endif +#include <stdio.h> +#include <string.h> #include <nx-X11/X.h> #include <nx-X11/Xproto.h> #include "misc.h" @@ -206,7 +208,7 @@ ProcXResQueryClientPixmapBytes (ClientPtr client) rep.sequenceNumber = client->sequence; rep.length = 0; rep.bytes = bytes; -#ifdef XSERVER64 +#ifdef _XSERVER64 rep.bytes_overflow = bytes >> 32; #else rep.bytes_overflow = 0; -- Alioth's /home/x2go-admin/maintenancescripts/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 5ec2366c40a540245be4a643fcf740fb16bcec50 Author: Ulrich Sibiller <uli42@gmx.de> Date: Sat Oct 21 02:54:33 2017 +0200 Xext: lift xvmain.c to xorg-xserver-7.1/1.1 state --- nx-X11/programs/Xserver/Xext/sync.c | 1 - nx-X11/programs/Xserver/Xext/xvmain.c | 6 +++--- 2 files changed, 3 insertions(+), 4 deletions(-) diff --git a/nx-X11/programs/Xserver/Xext/sync.c b/nx-X11/programs/Xserver/Xext/sync.c index 48b142f..e90e35d 100644 --- a/nx-X11/programs/Xserver/Xext/sync.c +++ b/nx-X11/programs/Xserver/Xext/sync.c @@ -316,7 +316,6 @@ SyncDeleteTriggerFromCounter(pTrigger) else pTrigger->pCounter->pTriglist = pCur->next; - xfree(pCur); free(pCur); break; } diff --git a/nx-X11/programs/Xserver/Xext/xvmain.c b/nx-X11/programs/Xserver/Xext/xvmain.c index 397f8dc..c1492fd 100644 --- a/nx-X11/programs/Xserver/Xext/xvmain.c +++ b/nx-X11/programs/Xserver/Xext/xvmain.c @@ -253,7 +253,7 @@ CreateResourceTypes() } -int +_X_EXPORT int XvScreenInit(ScreenPtr pScreen) { XvScreenPtr pxvs; @@ -333,13 +333,13 @@ XvResetProc(ExtensionEntry* extEntry) { } -int +_X_EXPORT int XvGetScreenIndex() { return XvScreenIndex; } -unsigned long +_X_EXPORT unsigned long XvGetRTPort() { return XvRTPort; -- Alioth's /home/x2go-admin/maintenancescripts/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 aecdb52661898d0ba400a61550fa6ce9c0a4d829 Merge: cbdae3b 5ec2366 Author: Mihai Moldovan <ionic@ionic.de> Date: Wed Feb 7 23:19:33 2018 +0100 Merge branch 'uli42-pr/update_xext' into 3.6.x Attributes GH PR #643: https://github.com/ArcticaProject/nx-libs/pull/643 nx-X11/include/extensions/saver.h | 4 +- nx-X11/include/extensions/saverproto.h | 13 +- nx-X11/programs/Xserver/Xext/dpms.c | 6 +- nx-X11/programs/Xserver/Xext/panoramiX.c | 31 +++-- nx-X11/programs/Xserver/Xext/saver.c | 149 ++++++++++++++++++++++- nx-X11/programs/Xserver/Xext/sleepuntil.c | 2 +- nx-X11/programs/Xserver/Xext/sync.c | 12 +- nx-X11/programs/Xserver/Xext/xres.c | 4 +- nx-X11/programs/Xserver/Xext/xvmain.c | 6 +- nx-X11/programs/Xserver/dix/Imakefile | 2 +- nx-X11/programs/Xserver/dix/globals.c | 4 + nx-X11/programs/Xserver/dix/main.c | 6 - nx-X11/programs/Xserver/include/globals.h | 4 + nx-X11/programs/Xserver/os/WaitFor.c | 193 ++++++++++++++++-------------- 14 files changed, 309 insertions(+), 127 deletions(-) -- Alioth's /home/x2go-admin/maintenancescripts/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 62373d42824c66a8a4a95d5a3a8953d2fcca544d Author: Ulrich Sibiller <uli42@gmx.de> Date: Sat Oct 21 02:42:58 2017 +0200 Xext: lift sleeputil.c to xorg-xserver-7.1/1.1 state --- nx-X11/programs/Xserver/Xext/sleepuntil.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/nx-X11/programs/Xserver/Xext/sleepuntil.c b/nx-X11/programs/Xserver/Xext/sleepuntil.c index 1934828..cc43815 100644 --- a/nx-X11/programs/Xserver/Xext/sleepuntil.c +++ b/nx-X11/programs/Xserver/Xext/sleepuntil.c @@ -78,7 +78,7 @@ static void SertafiedWakeupHandler( void * /* LastSelectMask */ ); -int +_X_EXPORT int ClientSleepUntil (client, revive, notifyFunc, closure) ClientPtr client; TimeStamp *revive; -- Alioth's /home/x2go-admin/maintenancescripts/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 d9c3a724972cb978660a00e1f9505d914e9a6b23 Author: Ulrich Sibiller <uli42@gmx.de> Date: Sat Oct 21 02:12:01 2017 +0200 Xext: lift panoramiX to xorg-xserver-7.1/1.1 state It also reintroduces a missed hack (undocumented commandline switch -disablexineramaextension to fool clients into thinking that Xinerama is disabled even though it is not). That hack had been dropped in d26930d59838e2a8305c66b67aaa163db157920c intentionally. --- nx-X11/programs/Xserver/Xext/panoramiX.c | 31 ++++++++++++++++++++----------- 1 file changed, 20 insertions(+), 11 deletions(-) diff --git a/nx-X11/programs/Xserver/Xext/panoramiX.c b/nx-X11/programs/Xserver/Xext/panoramiX.c index e720965..e36d04d 100644 --- a/nx-X11/programs/Xserver/Xext/panoramiX.c +++ b/nx-X11/programs/Xserver/Xext/panoramiX.c @@ -72,10 +72,10 @@ static unsigned char PanoramiXReqCode = 0; int PanoramiXPixWidth = 0; int PanoramiXPixHeight = 0; -int PanoramiXNumScreens = 0; +_X_EXPORT int PanoramiXNumScreens = 0; -PanoramiXData *panoramiXdataPtr = NULL; -RegionRec PanoramiXScreenRegion = {{0, 0, 0, 0}, NULL}; +_X_EXPORT PanoramiXData *panoramiXdataPtr = NULL; +RegionRec PanoramiXScreenRegion = {{0, 0, 0, 0}, NULL}; static int PanoramiXNumDepths; static DepthPtr PanoramiXDepths; @@ -83,13 +83,13 @@ static int PanoramiXNumVisuals; static VisualPtr PanoramiXVisuals; /* We support at most 256 visuals */ -XID *PanoramiXVisualTable = NULL; +_X_EXPORT XID *PanoramiXVisualTable = NULL; -unsigned long XRC_DRAWABLE; -unsigned long XRT_WINDOW; -unsigned long XRT_PIXMAP; -unsigned long XRT_GC; -unsigned long XRT_COLORMAP; +_X_EXPORT unsigned long XRC_DRAWABLE; +_X_EXPORT unsigned long XRT_WINDOW; +_X_EXPORT unsigned long XRT_PIXMAP; +_X_EXPORT unsigned long XRT_GC; +_X_EXPORT unsigned long XRT_COLORMAP; /* * Function prototypes @@ -330,7 +330,7 @@ XineramaDestroyClip(GCPtr pGC) -int +_X_EXPORT int XineramaDeleteResource(void * data, XID id) { free(data); @@ -411,7 +411,7 @@ typedef struct _connect_callback_list { static XineramaConnectionCallbackList *ConnectionCallbackList = NULL; -Bool +_X_EXPORT Bool XineramaRegisterConnectionBlockCallback(void (*func)(void)) { XineramaConnectionCallbackList *newlist; @@ -1037,7 +1037,16 @@ 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) { swaps (&rep.sequenceNumber); swapl (&rep.length); -- Alioth's /home/x2go-admin/maintenancescripts/git/hooks/post-receive-email on /srv/git/code.x2go.org/nx-libs.git