Hello community, here is the log from the commit of package xorg-x11-server for openSUSE:Factory checked in at Wed Jun 3 00:58:24 CEST 2009. -------- --- xorg-x11-server/xorg-x11-server.changes 2009-05-28 15:29:02.000000000 +0200 +++ /mounts/work_src_done/STABLE/xorg-x11-server/xorg-x11-server.changes 2009-06-02 20:34:23.000000000 +0200 @@ -1,0 +2,22 @@ +Tue Jun 2 19:02:02 CEST 2009 - eich@suse.de + +Frederico's patches to support reprobing of connected displays on EnterVT +and fixes to set event timestamps properly. +- Re-probe RANDR outputs on laptop unsuspend. +- Make RANDR 'set' timestamps follow client specified time. +- Add missing fields to SRR*NotifyEvent(). + +------------------------------------------------------------------- +Tue Jun 2 14:46:19 CEST 2009 - eich@suse.de + +- Patches taken from Moblin: + * security: Grant untrusted windows remove access on all windows. + * security: Fix a crash caused by wrong ordering of format arguments. + * security: Revert behavior of extension access for compatibility. + * Autodetect Plousbo chips. + * add -nb command line option to supress root window background stet + on startup. + * cache xkb output for fast startup. + * make noPanoramiXExtension symbol local and initialize. + +------------------------------------------------------------------- calling whatdependson for head-i586 New: ---- bug-507190_xorg-x11-server-bnc381139-randr-fix-timestamps.diff bug-507190_xorg-x11-server-bnc381139-randr-reprobe-on-unsuspend.diff cache-xkbcomp-output-for-fast-start-up.patch libdri_noPanoramiXExtension_symbol.patch security-Fix-a-crash-caused-by-wrong-ordering-of-fo.patch security-Grant-untrusted-windows-remove-access-on-a.patch security-Revert-behavior-of-extension-access-for-co.patch xorg-detect-psb.patch xserver-1.5.0-bg-none-root.patch xserver-boottime.patch ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ xorg-x11-server.spec ++++++ --- /var/tmp/diff_new_pack.Ls6405/_old 2009-06-03 00:57:40.000000000 +0200 +++ /var/tmp/diff_new_pack.Ls6405/_new 2009-06-03 00:57:40.000000000 +0200 @@ -32,7 +32,7 @@ Url: http://xorg.freedesktop.org/ %define EXPERIMENTAL 0 Version: 7.4 -Release: 37 +Release: 38 License: GPL v2 or later; X11/MIT BuildRoot: %{_tmppath}/%{name}-%{version}-build Group: System/X11/Servers/XF86_4 @@ -112,6 +112,16 @@ Patch131: commit-cadf65a.diff Patch132: fixed-SYNC-extension-trigger-BlockHandler-test.diff Patch140: fbdev_fallback_fail_fix.diff +Patch141: bug-507190_xorg-x11-server-bnc381139-randr-fix-timestamps.diff +Patch142: bug-507190_xorg-x11-server-bnc381139-randr-reprobe-on-unsuspend.diff +Patch160: libdri_noPanoramiXExtension_symbol.patch +Patch161: cache-xkbcomp-output-for-fast-start-up.patch +Patch162: xserver-boottime.patch +Patch163: xserver-1.5.0-bg-none-root.patch +Patch164: xorg-detect-psb.patch +Patch165: security-Revert-behavior-of-extension-access-for-co.patch +Patch166: security-Fix-a-crash-caused-by-wrong-ordering-of-fo.patch +Patch167: security-Grant-untrusted-windows-remove-access-on-a.patch %description This package contains the X.Org Server. @@ -231,6 +241,16 @@ %patch131 -p1 %patch132 -p1 %patch140 -p1 +%patch141 -p1 +%patch142 -p1 +%patch160 -p1 +%patch161 -p1 +# %patch162 -p1 +%patch163 -p1 +%patch164 -p1 +%patch165 -p1 +%patch166 -p1 +%patch167 -p1 %build pushd xorg-docs-* @@ -554,6 +574,22 @@ %endif %changelog +* Tue Jun 02 2009 eich@suse.de + Frederico's patches to support reprobing of connected displays on EnterVT + and fixes to set event timestamps properly. +- Re-probe RANDR outputs on laptop unsuspend. +- Make RANDR 'set' timestamps follow client specified time. +- Add missing fields to SRR*NotifyEvent(). +* Tue Jun 02 2009 eich@suse.de +- Patches taken from Moblin: + * security: Grant untrusted windows remove access on all windows. + * security: Fix a crash caused by wrong ordering of format arguments. + * security: Revert behavior of extension access for compatibility. + * Autodetect Plousbo chips. + * add -nb command line option to supress root window background stet + on startup. + * cache xkb output for fast startup. + * make noPanoramiXExtension symbol local and initialize. * Thu May 28 2009 sndirsch@suse.de - fbdev_fallback_fail_fix.diff * fix fbdev fallback failure if no xorg.conf exists; fbdev driver ++++++ bug-507190_xorg-x11-server-bnc381139-randr-fix-timestamps.diff ++++++
From 0b1a5ecb8f7f8338cffff5b2441116687d2bbb66 Mon Sep 17 00:00:00 2001 From: Keith Packard
Date: Thu, 28 May 2009 14:46:05 -0700 Subject: [PATCH 1/3] Make RANDR 'set' timestamps follow client specified time. Bug 21987.
The lastSetTime value which indicates when the configuration within the
server was last changed was not getting set in the appropriate RandR
requests.
Signed-off-by: Keith Packard
From 33944b5fe72385b40ff9a8ed42394ce1687b3974 Mon Sep 17 00:00:00 2001 From: Federico Mena Quintero
Date: Fri, 29 May 2009 13:57:05 -0500 Subject: [PATCH 2/3] Add missing fields to SRR*NotifyEvent()
Also, remove redundant field swaps and make others match the order in which
they are declared in the xRR*NotifyEvent structs.
Signed-off-by: Federico Mena Quintero
From 9834c1c5d27eedc28ff8e488c476f12487a1d749 Mon Sep 17 00:00:00 2001 From: Federico Mena Quintero
Date: Fri, 29 May 2009 17:07:08 -0500 Subject: [PATCH 3/3] Fix field name
--- randr/rrscreen.c | 2 +- 1 files changed, 1 insertions(+), 1 deletions(-) diff --git a/randr/rrscreen.c b/randr/rrscreen.c index 6683731..aa85a9b 100644 --- a/randr/rrscreen.c +++ b/randr/rrscreen.c @@ -922,7 +922,7 @@ ProcRRSetScreenConfig (ClientPtr client) if (!RRCrtcSet (crtc, mode, 0, 0, stuff->rotation, 1, &output)) rep.status = RRSetConfigFailed; else { - pScreenPriv->lastSetTime = time; + pScrPriv->lastSetTime = time; rep.status = RRSetConfigSuccess; } -- 1.6.0.2 ++++++ bug-507190_xorg-x11-server-bnc381139-randr-reprobe-on-unsuspend.diff ++++++ diff --git a/hw/xfree86/modes/xf86RandR12.c b/hw/xfree86/modes/xf86RandR12.c index 6f93a0d..01310e6 100644 --- a/hw/xfree86/modes/xf86RandR12.c +++ b/hw/xfree86/modes/xf86RandR12.c @@ -55,6 +55,13 @@ typedef struct _xf86RandR12Info { int pointerY; Rotation rotation; /* current mode */ Rotation supported_rotations; /* driver supported */ + + /* Used to wrap EnterVT so we can re-probe the outputs when a laptop unsuspends + * (actually, any time that we switch back into our VT). + * + * See https://bugs.freedesktop.org/show_bug.cgi?id=21554 + */ + xf86EnterVTProc *orig_EnterVT; } XF86RandRInfoRec, *XF86RandRInfoPtr; #ifdef RANDR_12_INTERFACE @@ -1646,10 +1653,25 @@ xf86RandR13SetPanning (ScreenPtr pScreen, } static Bool +xf86RandR12EnterVT (int screen_index, int flags) +{ + ScreenPtr pScreen = screenInfo.screens[screen_index]; + XF86RandRInfoPtr randrp = XF86RANDRINFO(pScreen); + + if (randrp->orig_EnterVT) { + if (!randrp->orig_EnterVT (screen_index, flags)) + return FALSE; + } + + return RRGetInfo (pScreen, TRUE); /* force a re-probe of outputs and notify clients about changes */ +} + +static Bool xf86RandR12Init12 (ScreenPtr pScreen) { ScrnInfoPtr pScrn = xf86Screens[pScreen->myNum]; rrScrPrivPtr rp = rrGetScrPriv(pScreen); + XF86RandRInfoPtr randrp = XF86RANDRINFO(pScreen); rp->rrGetInfo = xf86RandR12GetInfo12; rp->rrScreenSetSize = xf86RandR12ScreenSetSize; @@ -1665,6 +1687,10 @@ xf86RandR12Init12 (ScreenPtr pScreen) rp->rrModeDestroy = xf86RandR12ModeDestroy; rp->rrSetConfig = NULL; pScrn->PointerMoved = xf86RandR12PointerMoved; + + randrp->orig_EnterVT = pScrn->EnterVT; + pScrn->EnterVT = xf86RandR12EnterVT; + if (!xf86RandR12CreateObjects12 (pScreen)) return FALSE; ++++++ cache-xkbcomp-output-for-fast-start-up.patch ++++++
From 0f70ba9d3412b17ac4e08e33e1be3c226c06ea54 Mon Sep 17 00:00:00 2001 From: Yan Li
Date: Tue, 12 May 2009 17:49:07 +0800 Subject: [PATCH] XKB: cache xkbcomp output for fast start-up v5 for 1.6.1 Organization: Intel
xkbcomp outputs will be cached in files with hashed keymap as
names. This saves boot time for around 1s on commodity netbooks.
Signed-off-by: Yan Li
From 5d48f288eccb57dfe1751946c9d60dbd3ac0129a Mon Sep 17 00:00:00 2001 From: Eamon Walsh
Date: Thu, 16 Apr 2009 22:39:54 -0400 Subject: security: Fix a crash caused by wrong ordering of format arguments. (cherry picked from commit 3481b32ab971c41cb972f6819ae049f3e9f7033b)
--- Xext/security.c | 7 ++++--- 1 files changed, 4 insertions(+), 3 deletions(-) diff --git a/Xext/security.c b/Xext/security.c index 4b34bb0..e660cc8 100644 --- a/Xext/security.c +++ b/Xext/security.c @@ -948,9 +948,10 @@ SecuritySend(CallbackListPtr *pcbl, pointer unused, pointer calldata) SecurityAudit("Security: denied client %d from sending event " "of type %s to window 0x%x of client %d\n", - rec->client->index, rec->pWin->drawable.id, - wClient(rec->pWin)->index, - LookupEventName(rec->events[i].u.u.type)); + rec->client->index, + LookupEventName(rec->events[i].u.u.type), + rec->pWin->drawable.id, + wClient(rec->pWin)->index); rec->status = BadAccess; return; } -- 1.6.1.3 ++++++ security-Grant-untrusted-windows-remove-access-on-a.patch ++++++
From 11db545a86c8933c638a0bc1fcd4f2c65279f617 Mon Sep 17 00:00:00 2001 From: Eamon Walsh
Date: Thu, 16 Apr 2009 22:48:11 -0400 Subject: security: Grant untrusted windows remove access on all windows.
This allows untrusted clients to destroy their own windows when they have been reparented by a trusted window manager. (cherry picked from commit 4559d2ace6ac55fe361f572ded0769cdd1f3b545) --- Xext/security.c | 5 +++++ 1 files changed, 5 insertions(+), 0 deletions(-) diff --git a/Xext/security.c b/Xext/security.c index e660cc8..b9f411e 100644 --- a/Xext/security.c +++ b/Xext/security.c @@ -74,6 +74,7 @@ static char *SecurityTrustedExtensions[] = { static const Mask SecurityResourceMask = DixGetAttrAccess | DixReceiveAccess | DixListPropAccess | DixGetPropAccess | DixListAccess; +static const Mask SecurityWindowExtraMask = DixRemoveAccess; static const Mask SecurityRootWindowExtraMask = DixReceiveAccess | DixSendAccess | DixAddAccess | DixRemoveAccess; static const Mask SecurityDeviceMask = @@ -817,6 +818,10 @@ SecurityResource(CallbackListPtr *pcbl, pointer unused, pointer calldata) if (subj->haveState && subj->trustLevel != XSecurityClientTrusted) ((WindowPtr)rec->res)->forcedBG = TRUE; + /* additional permissions for specific resource types */ + if (rec->rtype == RT_WINDOW) + allowed |= SecurityWindowExtraMask; + /* special checks for server-owned resources */ if (cid == 0) { if (rec->rtype & RC_DRAWABLE) -- 1.6.1.3 ++++++ security-Revert-behavior-of-extension-access-for-co.patch ++++++
From 93e0a648138e569087fc6e07c1a28abfa92a4dde Mon Sep 17 00:00:00 2001 From: Eamon Walsh
Date: Thu, 16 Apr 2009 22:33:12 -0400 Subject: security: Revert behavior of extension access for compatibility.
Previously, three extensions were defined as "trusted" by the extension: BIG-REQUESTS, XC-MISC, and XPrint. No other extensions were permitted to be used by untrusted clients. In commit 8b5d21cc1d1f4e9d20e5d5eca44cb1e60a419763 this was changed for some reason. Return to the old, compatible behavior. (cherry picked from commit 6045506be0cebca4ebbe943ae77f020aafa703d4) --- Xext/security.c | 30 ++++++++++++++++-------------- 1 files changed, 16 insertions(+), 14 deletions(-) diff --git a/Xext/security.c b/Xext/security.c index e379063..4b34bb0 100644 --- a/Xext/security.c +++ b/Xext/security.c @@ -61,10 +61,10 @@ typedef struct { } SecurityStateRec; /* Extensions that untrusted clients shouldn't have access to */ -static char *SecurityUntrustedExtensions[] = { - "RandR", - "SECURITY", - "XFree86-DGA", +static char *SecurityTrustedExtensions[] = { + "XC-MISC", + "BIG-REQUESTS", + "XpExtension", NULL }; @@ -852,16 +852,18 @@ SecurityExtension(CallbackListPtr *pcbl, pointer unused, pointer calldata) subj = dixLookupPrivate(&rec->client->devPrivates, stateKey); - if (subj->haveState && subj->trustLevel != XSecurityClientTrusted) - while (SecurityUntrustedExtensions[i]) - if (!strcmp(SecurityUntrustedExtensions[i++], rec->ext->name)) { - SecurityAudit("Security: denied client %d access to extension " - "%s on request %s\n", - rec->client->index, rec->ext->name, - SecurityLookupRequestName(rec->client)); - rec->status = BadAccess; - return; - } + if (subj->haveState && subj->trustLevel == XSecurityClientTrusted) + return; + + while (SecurityTrustedExtensions[i]) + if (!strcmp(SecurityTrustedExtensions[i++], rec->ext->name)) + return; + + SecurityAudit("Security: denied client %d access to extension " + "%s on request %s\n", + rec->client->index, rec->ext->name, + SecurityLookupRequestName(rec->client)); + rec->status = BadAccess; } static void -- 1.6.1.3 ++++++ xorg-detect-psb.patch ++++++ --- xorg-server-1.6.0/hw/xfree86/common/xf86AutoConfig.c~ 2009-03-26 22:10:45.000000000 -0700 +++ xorg-server-1.6.0/hw/xfree86/common/xf86AutoConfig.c 2009-03-26 22:10:45.000000000 -0700 @@ -171,6 +171,9 @@ case 0x8086: if ((dev->device_id == 0x00d1) || (dev->device_id == 0x7800)) { driverList[0] = "i740"; + } if ((dev->device_id == 0x8109) || (dev->device_id == 0x8108) || (dev->device_id == 0x4102) ) { + driverList[0] = "psb"; + driverList[1] = "psb_drv"; } else { driverList[0] = "intel"; driverList[1] = "i810"; ++++++ xserver-1.5.0-bg-none-root.patch ++++++
From a3e15680da24cb8259f6a83dee0c930dab024290 Mon Sep 17 00:00:00 2001 From: Kristian
Date: Fri, 15 Aug 2008 15:15:14 +1000 Subject: [PATCH] Add nr for background=none root
--- dix/globals.c | 1 + dix/window.c | 22 ++++++++++++---------- hw/xfree86/common/xf86Init.c | 11 +++++++++++ hw/xfree86/common/xf86str.h | 5 ++++- include/opaque.h | 1 + os/utils.c | 3 +++ 6 files changed, 32 insertions(+), 11 deletions(-) diff --git a/dix/globals.c b/dix/globals.c index 973dc43..dbd76bb 100644 --- a/dix/globals.c +++ b/dix/globals.c @@ -141,6 +141,7 @@ FontPtr defaultFont; /* not declared in dix.h to avoid including font.h in CursorPtr rootCursor; Bool party_like_its_1989 = FALSE; Bool whiteRoot = FALSE; +Bool bgNoneRoot = FALSE; int cursorScreenDevPriv[MAXSCREENS]; diff --git a/dix/window.c b/dix/window.c index c31fa87..8bb178d 100644 --- a/dix/window.c +++ b/dix/window.c @@ -482,23 +482,24 @@ InitRootWindow(WindowPtr pWin) pWin->cursorIsNone = FALSE; pWin->optional->cursor = rootCursor; rootCursor->refcnt++; - + pWin->backingStore = defaultBackingStore; + pWin->forcedBS = (defaultBackingStore != NotUseful); if (party_like_its_1989) { MakeRootTile(pWin); backFlag |= CWBackPixmap; + pScreen->ChangeWindowAttributes(pWin, backFlag); + } else if (bgNoneRoot) { + /* nothing, handled in xf86CreateRootWindow */ } else { if (whiteRoot) pWin->background.pixel = pScreen->whitePixel; else pWin->background.pixel = pScreen->blackPixel; backFlag |= CWBackPixel; - } - pWin->backingStore = defaultBackingStore; - pWin->forcedBS = (defaultBackingStore != NotUseful); - /* We SHOULD check for an error value here XXX */ - (*pScreen->ChangeWindowAttributes)(pWin, backFlag); + pScreen->ChangeWindowAttributes(pWin, backFlag); + } MapWindow(pWin, serverClient); } diff --git a/hw/xfree86/common/xf86Init.c b/hw/xfree86/common/xf86Init.c index 236c00b..083a6ac 100644 --- a/hw/xfree86/common/xf86Init.c +++ b/hw/xfree86/common/xf86Init.c @@ -79,6 +79,7 @@ #ifdef RENDER #include "picturestr.h" #endif +#include "xace.h" #include "globals.h" @@ -328,6 +329,7 @@ xf86CreateRootWindow(WindowPtr pWin) int ret = TRUE; int err = Success; ScreenPtr pScreen = pWin->drawable.pScreen; + ScrnInfoPtr pScrn = xf86Screens[pScreen->myNum]; RootWinPropPtr pProp; CreateWindowProcPtr CreateWindow = (CreateWindowProcPtr) dixLookupPrivate(&pScreen->devPrivates, xf86CreateRootWindowKey); @@ -381,6 +383,15 @@ xf86CreateRootWindow(WindowPtr pWin) } } + if (bgNoneRoot && pScrn->canDoBGNoneRoot || 1) { + pWin->backgroundState = XaceBackgroundNoneState(pWin); + pWin->background.pixel = pScreen->whitePixel; + pScreen->ChangeWindowAttributes(pWin, CWBackPixmap | CWBorderPixel | CWCursor | CWBackingStore); + } else { + pWin->background.pixel = pScreen->blackPixel; + pScreen->ChangeWindowAttributes(pWin, CWBackPixel | CWBorderPixel | CWCursor | CWBackingStore); + } + #ifdef DEBUG ErrorF("xf86CreateRootWindow() returns %d\n", ret); #endif diff --git a/hw/xfree86/common/xf86str.h b/hw/xfree86/common/xf86str.h index 904c369..8c38f69 100644 --- a/hw/xfree86/common/xf86str.h +++ b/hw/xfree86/common/xf86str.h @@ -531,7 +531,7 @@ typedef struct _confdrirec { } confDRIRec, *confDRIPtr; /* These values should be adjusted when new fields are added to ScrnInfoRec */ -#define NUM_RESERVED_INTS 16 +#define NUM_RESERVED_INTS 15 #define NUM_RESERVED_POINTERS 15 #define NUM_RESERVED_FUNCS 11 @@ -959,6 +959,9 @@ typedef struct _ScrnInfoRec { ClockRangesPtr clockRanges; int adjustFlags; + /* -nr support */ + int canDoBGNoneRoot; + /* * These can be used when the minor ABI version is incremented. * The NUM_* parameters must be reduced appropriately to keep the diff --git a/include/opaque.h b/include/opaque.h index 07a0715..be1577b 100644 --- a/include/opaque.h +++ b/include/opaque.h @@ -71,6 +71,7 @@ extern Bool defeatAccessControl; extern long maxBigRequestSize; extern Bool party_like_its_1989; extern Bool whiteRoot; +extern Bool bgNoneRoot; extern Bool CoreDump; diff --git a/os/utils.c b/os/utils.c index b100949..c41b45b 100644 --- a/os/utils.c +++ b/os/utils.c @@ -515,6 +515,7 @@ void UseMsg(void) #endif ErrorF("-nolisten string don't listen on protocol\n"); ErrorF("-noreset don't reset after last client exists\n"); + ErrorF("-nr create root window with no background\n"); ErrorF("-reset reset after last client exists\n"); ErrorF("-p # screen-saver pattern duration (minutes)\n"); ErrorF("-pn accept failure to listen on all ports\n"); @@ -859,6 +860,8 @@ ProcessCommandLine(int argc, char *argv[]) defaultBackingStore = WhenMapped; else if ( strcmp( argv[i], "-wr") == 0) whiteRoot = TRUE; + else if ( strcmp( argv[i], "-nr") == 0) + bgNoneRoot = TRUE; else if ( strcmp( argv[i], "-maxbigreqsize") == 0) { if(++i < argc) { long reqSizeArg = atol(argv[i]);
From 6a39049e34eeefeeb821970d83e1994870af8f3e Mon Sep 17 00:00:00 2001 From: Adam Jackson
Date: Thu, 1 Nov 2007 14:56:25 -0400 Subject: [PATCH] Don't backfill bg=None windows in Composite.
--- composite/compalloc.c | 2 ++ 1 files changed, 2 insertions(+), 0 deletions(-) diff --git a/composite/compalloc.c b/composite/compalloc.c index 006e808..67d830d 100644 --- a/composite/compalloc.c +++ b/composite/compalloc.c @@ -478,6 +478,7 @@ compNewPixmap (WindowPtr pWin, int x, int y, int w, int h) * Copy bits from the parent into the new pixmap so that it will * have "reasonable" contents in case for background None areas. */ +#if 0 if (pGC) { XID val = IncludeInferiors; @@ -492,6 +493,7 @@ compNewPixmap (WindowPtr pWin, int x, int y, int w, int h) w, h, 0, 0); FreeScratchGC (pGC); } +#endif } else { -- 1.5.3.4 ++++++ xserver-boottime.patch ++++++ diff --git a/os/log.c b/os/log.c index 0860847..2c46f1a 100644 --- a/os/log.c +++ b/os/log.c @@ -255,6 +255,33 @@ LogVWrite(int verb, const char *f, va_list args) static char tmpBuffer[1024]; int len = 0; + struct timeval time; + time_t tv_sec; + suseconds_t tv_usec; + static Bool first = TRUE; + static time_t start_tv_sec; + static suseconds_t start_usec; + int diff_sec, diff_usec; + + gettimeofday(&time, NULL); + tv_sec = time.tv_sec; + tv_usec = time.tv_usec; + if (first == TRUE) { + start_tv_sec = tv_sec; + start_usec = tv_usec; + first = FALSE; + } + diff_sec = (int)difftime(tv_sec, start_tv_sec); + diff_usec = (tv_usec - start_usec); + if (diff_usec < 0) { + diff_sec--; + diff_usec += 1000000; + } + sprintf(tmpBuffer, "[%d sec: %06d usec]", diff_sec , diff_usec); + len = strlen(tmpBuffer); + if (logFile) + fwrite(tmpBuffer, len, 1, logFile); + /* * Since a va_list can only be processed once, write the string to a * buffer, and then write the buffer out to the appropriate output ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Remember to have fun... -- To unsubscribe, e-mail: opensuse-commit+unsubscribe@opensuse.org For additional commands, e-mail: opensuse-commit+help@opensuse.org