Hello community,
here is the log from the commit of package xorg-x11-server for openSUSE:Factory
checked in at Thu Aug 26 11:09:24 CEST 2010.
--------
--- xorg-x11-server/xorg-x11-server.changes 2010-08-19 16:08:02.000000000 +0200
+++ /mounts/work_src_done/STABLE/xorg-x11-server/xorg-x11-server.changes 2010-08-25 15:33:40.000000000 +0200
@@ -1,0 +2,44 @@
+Wed Aug 25 13:32:09 UTC 2010 - mhopf@novell.com
+
+- Use-external-tool-for-creating-backtraces-on-crashes.patch,
+ xorg-backtrace:
+ Use external script /usr/bin/xorg-backtrace for creating reasonable
+ backtraces upon crashes.
+
+-------------------------------------------------------------------
+Mon Aug 23 19:28:20 CEST 2010 - sndirsch@suse.de
+
+- set VIDEO_ABI_VERSION = 8 and INPUT_ABI_VERSION = 11 in specfile
+
+-------------------------------------------------------------------
+Mon Aug 23 17:26:21 CEST 2010 - sndirsch@suse.de
+
+- xorg-server 1.9.0
+ * obsolete patches:
+ - dmx-silly.patch
+ - fixed-SYNC-extension-trigger-BlockHandler-test.diff
+ - sw_cursor_on_randr.patch
+ - xorg-evdev-conf.diff
+ - xorg-server-commit-21ed660.diff
+ - xorg-server-revert-event-mask.patch
+ - xorg-x11-server-gl-apps-crash.patch
+ * adjusted patches
+ - 0001-Fix-segfault-when-killing-X-with-ctrl-alt-backspace.patch
+ - 0001-Xinput-Catch-missing-configlayout-when-deleting-dev.patch
+ - CVE-2010-2240-tree_depth_limit.patch
+ - cache-xkbcomp-output-for-fast-start-up.patch
+ - confine_to_shape.diff
+ - driver-autoconfig.diff
+ - fpic.diff
+ - xorg-detect-psb.patch
+ - xorg-server-1.8.0.diff
+ - xorg-server-nohwaccess.diff
+ - xorg-server-option_libxf86config.diff
+ - xorg-server-xf4vnc.patch
+ - xserver-1.6.1-nouveau.patch
+ - xserver-bg-none-root.patch
+ * vbe-bufferoverflow.diff
+ - fixes vbe buffer overflow
+- disabled vnc build for now (standalone server + module)
+
+-------------------------------------------------------------------
calling whatdependson for head-i586
Old:
----
dmx-silly.patch
fixed-SYNC-extension-trigger-BlockHandler-test.diff
sw_cursor_on_randr.patch
xorg-evdev-conf.diff
xorg-server-1.8.0.tar.bz2
xorg-server-commit-21ed660.diff
xorg-server-revert-event-mask.patch
xorg-x11-server-gl-apps-crash.patch
New:
----
Use-external-tool-for-creating-backtraces-on-crashes.patch
vbe-bufferoverflow.diff
xorg-backtrace
xorg-server-1.9.0.tar.bz2
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ xorg-x11-server.spec ++++++
--- /var/tmp/diff_new_pack.dVjDu7/_old 2010-08-26 11:08:54.000000000 +0200
+++ /var/tmp/diff_new_pack.dVjDu7/_new 2010-08-26 11:08:54.000000000 +0200
@@ -1,5 +1,5 @@
#
-# spec file for package xorg-x11-server (Version 7.5_1.8.0)
+# spec file for package xorg-x11-server (Version 7.5_1.9.0)
#
# Copyright (c) 2010 SUSE LINUX Products GmbH, Nuernberg, Germany.
#
@@ -20,8 +20,8 @@
%define moblin 0
Name: xorg-x11-server
-%define dirsuffix 1.8.0
-%define vnc 1
+%define dirsuffix 1.9.0
+%define vnc 0
BuildRequires: Mesa-devel bison flex fontconfig-devel freetype2-devel ghostscript-library libdrm-devel libopenssl-devel pkgconfig xorg-x11 xorg-x11-devel xorg-x11-fonts-devel xorg-x11-libICE-devel xorg-x11-libSM-devel xorg-x11-libX11-devel xorg-x11-libXau-devel xorg-x11-libXdmcp-devel xorg-x11-libXext-devel xorg-x11-libXfixes-devel xorg-x11-libXmu-devel xorg-x11-libXp-devel xorg-x11-libXpm-devel xorg-x11-libXprintUtil-devel xorg-x11-libXrender-devel xorg-x11-libXt-devel xorg-x11-libXv-devel xorg-x11-libfontenc-devel xorg-x11-libxkbfile-devel xorg-x11-proto-devel xorg-x11-xtrans-devel
### udev support (broken on openSUSE 11.2, see also bnc #589997)
%if %suse_version > 1120
@@ -32,7 +32,7 @@
%endif
Url: http://xorg.freedesktop.org/
Version: 7.5_%{dirsuffix}
-Release: 16
+Release: 1
License: GPLv2+ ; MIT License (or similar)
BuildRoot: %{_tmppath}/%{name}-%{version}-build
Group: System/X11/Servers/XF86_4
@@ -41,8 +41,8 @@
%endif
Requires: pkgconfig xorg-x11-fonts-core xorg-x11
%ifnarch s390 s390x
-Provides: VIDEO_ABI_VERSION = 7
-Provides: INPUT_ABI_VERSION = 9
+Provides: VIDEO_ABI_VERSION = 8
+Provides: INPUT_ABI_VERSION = 11
Requires: libpixman-1-0 >= 0.15.2
%endif
Provides: xorg-x11-server-glx
@@ -54,6 +54,7 @@
Source4: xorgcfg.tar.bz2
Source5: modprobe.nvidia
Source7: xorg-docs-1.4.tar.bz2
+Source8: xorg-backtrace
Patch1: fpic.diff
Patch2: p_default-module-path.diff
Patch6: pu_fixes.diff
@@ -93,7 +94,6 @@
Patch127: dpms_screensaver.diff
Patch128: pci-legacy-mem-fallback.diff
Patch129: bug474071-fix1.diff
-Patch132: fixed-SYNC-extension-trigger-BlockHandler-test.diff
Patch143: autoconfig_fallback_fbdev_first.diff
Patch145: driver-autoconfig.diff
Patch147: xserver-1.6.1-nouveau.patch
@@ -109,17 +109,13 @@
Patch205: xorg-server-1.8.0.diff
Patch206: fix_fglrx_screendepth_issue.patch
Patch207: xorg-server-option_libxf86config.diff
-Patch208: xorg-evdev-conf.diff
-Patch209: sw_cursor_on_randr.patch
Patch210: pio_ia64.diff
Patch211: 0001-Prevent-XSync-Alarms-from-senslessly-calling-CheckTr.patch
-Patch212: dmx-silly.patch
Patch213: xorg-server-xdmcp.patch
-Patch214: xorg-x11-server-gl-apps-crash.patch
-Patch215: xorg-server-revert-event-mask.patch
-Patch216: xorg-server-commit-21ed660.diff
Patch217: CVE-2010-2240-address_space_limit.patch
Patch218: CVE-2010-2240-tree_depth_limit.patch
+Patch219: vbe-bufferoverflow.diff
+Patch220: Use-external-tool-for-creating-backtraces-on-crashes.patch
%if %moblin
Patch300: moblin-use_preferred_mode_for_all_outputs.diff
%endif
@@ -223,7 +219,6 @@
pushd hw/xfree86/os-support/bus
%patch129 -p0
popd
-%patch132 -p1
%patch143 -p0
%patch145 -p0
%patch147 -p1
@@ -239,17 +234,13 @@
%patch205 -p0
%patch206 -p0
%patch207 -p0
-%patch208 -p0
-%patch209 -p1
%patch210 -p1
%patch211 -p1
-%patch212 -p1
%patch213 -p1
-%patch214 -p1
-%patch215 -p1
-%patch216 -p1
%patch217 -p1
%patch218 -p1
+%patch219 -p1
+%patch220 -p1
%if %moblin
%patch300 -p1
%endif
@@ -342,6 +333,7 @@
install -m 644 %_sourcedir/sysconfig.displaymanager.template \
%buildroot/var/adm/fillup-templates/sysconfig.displaymanager-%name
%endif
+install -m 755 $RPM_SOURCE_DIR/xorg-backtrace $RPM_BUILD_ROOT/usr/bin/xorg-backtrace
%clean
rm -rf "$RPM_BUILD_ROOT"
@@ -410,6 +402,7 @@
/var/adm/fillup-templates/sysconfig.displaymanager-%name
/var/lib/X11/X
%endif
+/usr/bin/xorg-backtrace
%files extra
%defattr(-,root,root)
++++++ 0001-Fix-segfault-when-killing-X-with-ctrl-alt-backspace.patch ++++++
--- /var/tmp/diff_new_pack.dVjDu7/_old 2010-08-26 11:08:54.000000000 +0200
+++ /var/tmp/diff_new_pack.dVjDu7/_new 2010-08-26 11:08:54.000000000 +0200
@@ -1,18 +1,10 @@
-From 5ed1510176b870fd6208e2f8561880c4abe6637d Mon Sep 17 00:00:00 2001
-From: Egbert Eich
-Date: Thu, 8 Oct 2009 12:40:55 +0200
-Subject: [PATCH] Fix segfault when killing X with ctrl-alt-backspace.
-
-The damage structure for the cursor is not deregistered before deallocation,
-causing a subsequent DamageUnregister () to segfault.
-================================================================================
---- xorg-server-1.7.99/mi/misprite.c
-+++ xorg-server-1.7.99/mi/misprite.c
-@@ -384,6 +384,7 @@
+--- xorg-server-1.9.0/mi/misprite.c.orig 2010-07-23 21:40:56.000000000 +0200
++++ xorg-server-1.9.0/mi/misprite.c 2010-08-23 15:44:51.000000000 +0200
+@@ -384,6 +384,7 @@ miSpriteCloseScreen (int i, ScreenPtr pS
pScreen->InstallColormap = pScreenPriv->InstallColormap;
pScreen->StoreColors = pScreenPriv->StoreColors;
+ miSpriteDisableDamage(pScreen, pScreenPriv);
DamageDestroy (pScreenPriv->pDamage);
- xfree (pScreenPriv);
+ free(pScreenPriv);
++++++ 0001-Xinput-Catch-missing-configlayout-when-deleting-dev.patch ++++++
--- /var/tmp/diff_new_pack.dVjDu7/_old 2010-08-26 11:08:54.000000000 +0200
+++ /var/tmp/diff_new_pack.dVjDu7/_new 2010-08-26 11:08:54.000000000 +0200
@@ -21,10 +21,10 @@
- if (!(*it)) /* end of list, not in the layout */
+ if (idev)
{
-- xfree(idev->driver);
-- xfree(idev->identifier);
+- free(idev->driver);
+- free(idev->identifier);
- xf86optionListFree(idev->commonOptions);
-- xfree(idev);
+- free(idev);
+ /* devices added through HAL aren't in the config layout */
+ it = xf86ConfigLayout.inputs;
+ while(*it && *it != idev)
@@ -32,10 +32,10 @@
+
+ if (!(*it)) /* end of list, not in the layout */
+ {
-+ xfree(idev->driver);
-+ xfree(idev->identifier);
++ free(idev->driver);
++ free(idev->identifier);
+ xf86optionListFree(idev->commonOptions);
-+ xfree(idev);
++ free(idev);
+ }
}
}
++++++ cache-xkbcomp-output-for-fast-start-up.patch ++++++
--- /var/tmp/diff_new_pack.dVjDu7/_old 2010-08-26 11:08:55.000000000 +0200
+++ /var/tmp/diff_new_pack.dVjDu7/_new 2010-08-26 11:08:55.000000000 +0200
@@ -49,9 +49,9 @@
Unless the X server is modified, sharing this directory between servers on
different hosts could cause problems.
---- xorg-server-1.7.99/xkb/ddxLoad.c
-+++ xorg-server-1.7.99/xkb/ddxLoad.c
-@@ -30,6 +30,12 @@
+--- xorg-server-1.9.0/xkb/ddxLoad.c.orig 2010-07-14 22:23:17.000000000 +0200
++++ xorg-server-1.9.0/xkb/ddxLoad.c 2010-08-23 15:23:47.000000000 +0200
+@@ -30,6 +30,12 @@ THE USE OR PERFORMANCE OF THIS SOFTWARE.
#include
@@ -64,7 +64,7 @@
#include
#include
#include
-@@ -43,24 +49,13 @@
+@@ -43,24 +49,13 @@ THE USE OR PERFORMANCE OF THIS SOFTWARE.
#define XKBSRV_NEED_FILE_FUNCS
#include
#include
@@ -90,7 +90,7 @@
#define PRE_ERROR_MSG "\"The XKEYBOARD keymap compiler (xkbcomp) reports:\""
#define ERROR_PREFIX "\"> \""
#define POST_ERROR_MSG1 "\"Errors from xkbcomp are not fatal to the X server\""
-@@ -175,6 +170,45 @@
+@@ -175,6 +170,45 @@ OutputDirectory(
}
static Bool
@@ -136,7 +136,7 @@
XkbDDXCompileKeymapByNames( XkbDescPtr xkb,
XkbComponentNamesPtr names,
unsigned want,
-@@ -183,7 +217,11 @@
+@@ -183,7 +217,11 @@ XkbDDXCompileKeymapByNames( XkbDescPtr
int nameRtrnLen)
{
FILE * out;
@@ -145,11 +145,11 @@
+ char * tmpXkmFile = NULL;
+ char * canonicalXkmFileName = NULL;
+ char sha1Asc[SHA_DIGEST_LENGTH*2+1], xkbKeyMapBuf[100*1024];
-+ int ret, result;
++ int ret, result;
const char *emptystring = "";
- const char *xkbbasedirflag = emptystring;
-@@ -194,15 +232,70 @@
+ char *xkbbasedirflag = NULL;
+@@ -194,15 +232,70 @@ XkbDDXCompileKeymapByNames( XkbDescPtr
/* WIN32 has no popen. The input must be stored in a file which is
used as input for xkbcomp. xkbcomp does not read from stdin. */
char tmpname[PATH_MAX];
@@ -223,15 +223,15 @@
#ifdef WIN32
strcpy(tmpname, Win32TempDir());
strcat(tmpname, "\\xkb_XXXXXX");
-@@ -225,19 +318,30 @@
+@@ -225,14 +318,20 @@ XkbDDXCompileKeymapByNames( XkbDescPtr
}
}
+ if ( (tmpXkmFile = tempnam(xkm_output_dir, NULL)) == NULL ) {
-+ ErrorF("[xkb] Can't generate temp xkm file name");
-+ result = FALSE;
-+ goto _ret;
-+ }
++ ErrorF("[xkb] Can't generate temp xkm file name");
++ result = FALSE;
++ goto _ret;
++ }
+
buf = Xprintf("\"%s%sxkbcomp\" -w %d %s -xkm \"%s\" "
- "-em1 %s -emp %s -eml %s \"%s%s.xkm\"",
@@ -239,25 +239,29 @@
xkbbindir, xkbbindirsep,
( (xkbDebugFlags < 2) ? 1 :
((xkbDebugFlags > 10) ? 10 : (int)xkbDebugFlags) ),
-- xkbbasedirflag, xkmfile,
-+ xkbbasedirflag, xkbfile,
+- xkbbasedirflag ? xkbbasedirflag : "", xkmfile,
++ xkbbasedirflag ? xkbbasedirflag : "", xkbfile,
PRE_ERROR_MSG, ERROR_PREFIX, POST_ERROR_MSG1,
- xkm_output_dir, keymap);
+ tmpXkmFile);
- if (xkbbasedirflag != emptystring) {
- xfree(xkbbasedirflag);
+ free(xkbbasedirflag);
+
+@@ -240,7 +339,12 @@ XkbDDXCompileKeymapByNames( XkbDescPtr
+ LogMessage(X_ERROR, "XKB: Could not invoke xkbcomp: not enough memory\n");
+ return FALSE;
}
-
+-
++
+ /* there's a potential race condition between calling tempnam()
+ and invoking xkbcomp to write the result file (potential temp
+ file name conflicts), but since xkbcomp is a standalone
+ program, we have to live with this */
-+
++
#ifndef WIN32
out= Popen(buf,"w");
#else
-@@ -245,31 +349,42 @@
+@@ -248,31 +352,42 @@ XkbDDXCompileKeymapByNames( XkbDescPtr
#endif
if (out!=NULL) {
@@ -287,27 +291,26 @@
- if (nameRtrn) {
- strncpy(nameRtrn,keymap,nameRtrnLen);
- nameRtrn[nameRtrnLen-1]= '\0';
-- }
-- if (buf != NULL)
-- xfree (buf);
-- return TRUE;
-+ /* if canonicalXkmFileName already exists now, we simply
-+ overwrite it, this is OK */
-+ ret = rename(tmpXkmFile, canonicalXkmFileName);
-+ if (0 != ret) {
-+ ErrorF("[xkb] Can't rename %s to %s, error: %s\n",
++ /* if canonicalXkmFileName already exists now, we simply
++ overwrite it, this is OK */
++ ret = rename(tmpXkmFile, canonicalXkmFileName);
++ if (0 != ret) {
++ ErrorF("[xkb] Can't rename %s to %s, error: %s\n",
+ tmpXkmFile, canonicalXkmFileName,
+ strerror(errno));
+
-+ /* in case of error, don't unlink tmpXkmFile, leave it
-+ for debugging */
-+
-+ result = FALSE;
-+ goto _ret;
-+ }
++ /* in case of error, don't unlink tmpXkmFile, leave it
++ for debugging */
+
-+ result = TRUE;
++ result = FALSE;
+ goto _ret;
+ }
+- if (buf != NULL)
+- free(buf);
+- return TRUE;
++
++ result = TRUE;
++ goto _ret;
}
else
- LogMessage(X_ERROR, "Error compiling keymap (%s)\n", keymap);
@@ -315,12 +318,12 @@
#ifdef WIN32
/* remove the temporary file */
unlink(tmpname);
-@@ -286,7 +401,17 @@
+@@ -289,7 +404,17 @@ XkbDDXCompileKeymapByNames( XkbDescPtr
nameRtrn[0]= '\0';
if (buf != NULL)
- xfree (buf);
+ free(buf);
- return FALSE;
-+ result = FALSE;
++ result = FALSE;
+
+_ret:
+ if (tmpXkmFile)
@@ -334,7 +337,7 @@
}
static FILE *
-@@ -370,7 +495,6 @@
+@@ -373,7 +498,6 @@ unsigned missing;
DebugF("Loaded XKB keymap %s, defined=0x%x\n",fileName,(*xkbRtrn)->defined);
}
fclose(file);
++++++ confine_to_shape.diff ++++++
--- /var/tmp/diff_new_pack.dVjDu7/_old 2010-08-26 11:08:55.000000000 +0200
+++ /var/tmp/diff_new_pack.dVjDu7/_new 2010-08-26 11:08:55.000000000 +0200
@@ -13,9 +13,9 @@
+ int d, min = (~0U >> 1), dx2, dy2, x_r, y_r;
pSprite = pDev->spriteInfo->sprite;
- if (POINT_IN_REGION(pSprite->hot.pScreen, shape, x, y, &box))
+ if (RegionContainsPoint(shape, x, y, &box))
return;
-- box = *REGION_EXTENTS(pSprite->hot.pScreen, shape);
+- box = *RegionExtents(shape);
- /* this is rather crude */
- do {
- x += incx;
@@ -99,7 +99,7 @@
- else if (y < box.y1)
- return; /* should never get here! */
}
-- } while (!POINT_IN_REGION(pSprite->hot.pScreen, shape, x, y, &box));
+- } while (!RegionContainsPoint(shape, x, y, &box));
- *px = x;
- *py = y;
+ }
++++++ CVE-2010-2240-tree_depth_limit.patch ++++++
--- /var/tmp/diff_new_pack.dVjDu7/_old 2010-08-26 11:08:55.000000000 +0200
+++ /var/tmp/diff_new_pack.dVjDu7/_new 2010-08-26 11:08:55.000000000 +0200
@@ -1,7 +1,7 @@
---- xorg-server-1.8.0/dix/window.c.orig 2010-08-07 17:45:14.000000000 +0200
-+++ xorg-server-1.8.0/dix/window.c 2010-08-07 17:52:58.000000000 +0200
-@@ -546,6 +546,48 @@ RealChildHead(WindowPtr pWin)
- return (NullWindow);
+--- xorg-server-1.9.0/dix/window.c.orig 2010-08-23 16:07:24.000000000 +0200
++++ xorg-server-1.9.0/dix/window.c 2010-08-23 16:14:09.000000000 +0200
+@@ -535,6 +535,48 @@ RealChildHead(WindowPtr pWin)
+ return NullWindow;
}
+static int
@@ -12,23 +12,23 @@
+ WindowPtr pChild;
+
+ if (!(pChild = pWin))
-+ return 0;
++ return 0;
+ while (1)
+ {
-+ if (pChild->firstChild)
-+ {
-+ ++depth;
-+ pChild = pChild->firstChild;
-+ continue;
-+ } else if (depth > max_depth)
-+ max_depth = depth;
-+ while (!pChild->nextSib && (pChild != pWin)) {
-+ --depth;
-+ pChild = pChild->parent;
-+ }
-+ if (pChild == pWin)
-+ break;
-+ pChild = pChild->nextSib;
++ if (pChild->firstChild)
++ {
++ ++depth;
++ pChild = pChild->firstChild;
++ continue;
++ } else if (depth > max_depth)
++ max_depth = depth;
++ while (!pChild->nextSib && (pChild != pWin)) {
++ --depth;
++ pChild = pChild->parent;
++ }
++ if (pChild == pWin)
++ break;
++ pChild = pChild->nextSib;
+ }
+ return max_depth;
+}
@@ -38,8 +38,8 @@
+{
+ int depth = 0;
+ while (pWin) {
-+ ++depth;
-+ pWin = pWin->parent;
++ ++depth;
++ pWin = pWin->parent;
+ }
+ return depth;
+}
@@ -49,7 +49,7 @@
/*****
* CreateWindow
* Makes a window in response to client request
-@@ -566,6 +608,11 @@ CreateWindow(Window wid, WindowPtr pPare
+@@ -555,6 +597,11 @@ CreateWindow(Window wid, WindowPtr pPare
PixmapFormatRec *format;
WindowOptPtr ancwopt;
@@ -61,13 +61,13 @@
if (class == CopyFromParent)
class = pParent->drawable.class;
-@@ -2457,6 +2504,9 @@ ReparentWindow(WindowPtr pWin, WindowPtr
+@@ -2434,6 +2481,9 @@ ReparentWindow(WindowPtr pWin, WindowPtr
int bw = wBorderWidth (pWin);
ScreenPtr pScreen;
+ if (WindowDepth(pParent) + TreeDepth(pWin) >= MAX_TREE_DEPTH)
-+ return BadAlloc;
++ return BadAlloc;
+
pScreen = pWin->drawable.pScreen;
if (TraverseTree(pWin, CompareWIDs, (pointer)&pParent->drawable.id) == WT_STOPWALKING)
- return(BadMatch);
+ return BadMatch;
++++++ driver-autoconfig.diff ++++++
--- /var/tmp/diff_new_pack.dVjDu7/_old 2010-08-26 11:08:55.000000000 +0200
+++ /var/tmp/diff_new_pack.dVjDu7/_new 2010-08-26 11:08:55.000000000 +0200
@@ -1,5 +1,5 @@
---- hw/xfree86/common/xf86AutoConfig.c
-+++ hw/xfree86/common/xf86AutoConfig.c
+--- hw/xfree86/common/xf86pciBus.c
++++ hw/xfree86/common/xf86pciBus.c
@@ -176,7 +176,11 @@
case 0x1142: driverList[0] = "apm"; break;
case 0xedd8: driverList[0] = "ark"; break;
++++++ fpic.diff ++++++
--- /var/tmp/diff_new_pack.dVjDu7/_old 2010-08-26 11:08:55.000000000 +0200
+++ /var/tmp/diff_new_pack.dVjDu7/_new 2010-08-26 11:08:55.000000000 +0200
@@ -1,13 +1,11 @@
-Index: hw/xfree86/parser/Makefile.am
-================================================================================
---- hw/xfree86/parser/Makefile.am
-+++ hw/xfree86/parser/Makefile.am
+--- hw/xfree86/parser/Makefile.am.orig 2010-06-06 03:16:52.000000000 +0200
++++ hw/xfree86/parser/Makefile.am 2010-08-23 14:05:50.000000000 +0200
@@ -34,7 +34,7 @@
$(INTERNAL_SOURCES)
libxf86config_a_CFLAGS = $(AM_CFLAGS)
--AM_CFLAGS = $(DIX_CFLAGS) $(XORG_CFLAGS)
-+AM_CFLAGS = $(DIX_CFLAGS) $(XORG_CFLAGS) -fPIC
+-AM_CFLAGS = $(DIX_CFLAGS) $(XORG_CFLAGS) \
++AM_CFLAGS = $(DIX_CFLAGS) $(XORG_CFLAGS) -fPIC \
+ -DSYSCONFDIR=\"$(sysconfdir)\" \
+ -DDATADIR=\"$(datadir)\"
- EXTRA_DIST = \
- Configint.h \
++++++ Use-external-tool-for-creating-backtraces-on-crashes.patch ++++++
From bb4e768eaf8025d3ccf369cbad9a9b8be721e7ac Mon Sep 17 00:00:00 2001
From: Matthias Hopf
Date: Wed, 25 Aug 2010 14:12:48 +0200
Subject: [PATCH] Use external tool for creating backtraces on crashes if available.
This calls /usr/bin/xorg-backtrace to create reasonable commented backtraces
with gdb. On errors it falls back to the generic method.
Signed-off-by: Matthias Hopf
---
os/backtrace.c | 82 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++
1 files changed, 82 insertions(+), 0 deletions(-)
diff --git a/os/backtrace.c b/os/backtrace.c
index 7ca6dab..1e3201a 100644
--- a/os/backtrace.c
+++ b/os/backtrace.c
@@ -28,6 +28,81 @@
#include "os.h"
#include "misc.h"
+#include
+#include
+#include
+#include
+#include
+#include
+
+#define XORG_BACKTRACE "/usr/bin/xorg-backtrace"
+
+/* Call gdb to create reasonable(!) backtrace. Returns 0 if successfull. */
+static int xorg_backtrace_gdb(void)
+{
+ static const char *xorg_backtrace = XORG_BACKTRACE;
+ char pidstr[12];
+ char fdname[] = "/tmp/xorg.XXXXXX";
+ char buf[256];
+ pid_t pid;
+ int fd, status = -1, ret;
+ FILE *f;
+
+ if (access (xorg_backtrace, R_OK | X_OK) != 0) {
+ ErrorF ("%s not found, using internal backtrace system\n", xorg_backtrace);
+ return 1;
+ }
+ if ( (fd = mkstemp (fdname)) == -1) {
+ ErrorF ("xorg_backtrace_gdb internal error 1\n");
+ return 1;
+ }
+ unlink (fdname);
+ snprintf (pidstr, 12, "%d", getpid());
+
+ switch ( (pid = fork()) ) {
+ case 0:
+ close (0);
+ close (1);
+ close (2);
+ dup2 (fd, 1);
+ dup2 (fd, 2);
+ close (fd);
+ execl (xorg_backtrace, xorg_backtrace, pidstr, NULL);
+ exit (-1);
+ case -1:
+ close (fd);
+ return 1;
+ }
+
+ while (waitpid (pid, &status, 0) == -1 && errno == EINTR)
+ ;
+ if (WIFEXITED (status) && WEXITSTATUS (status) == 0)
+ ret = 0;
+ else {
+ ErrorF ("%s failed with returncode %d\n", xorg_backtrace, WEXITSTATUS (status));
+ ret = 1;
+ }
+
+ lseek (fd, 0, SEEK_SET);
+ if (! (f = fdopen (fd, "r"))) {
+ ErrorF ("xorg_backtrace_gdb internal error 2\n");
+ close (fd);
+ return 1;
+ }
+ status = 0;
+ while (fgets (buf, 256, f)) {
+ status++;
+ ErrorF("%s", buf);
+ }
+ fclose (f);
+ if (status < 10 && ret == 0) {
+ ErrorF ("%s only produced %d lines of output\n", xorg_backtrace, status);
+ return 1;
+ }
+
+ return ret;
+}
+
#ifdef HAVE_BACKTRACE
#ifndef _GNU_SOURCE
#define _GNU_SOURCE
@@ -41,6 +116,10 @@ void xorg_backtrace(void)
const char *mod;
int size, i;
Dl_info info;
+
+ if (xorg_backtrace_gdb () == 0)
+ return;
+
ErrorF("\nBacktrace:\n");
size = backtrace(array, 64);
for (i = 0; i < size; i++) {
@@ -182,6 +261,9 @@ static int xorg_backtrace_pstack(void) {
void xorg_backtrace(void) {
+ if (xorg_backtrace_gdb () == 0)
+ return;
+
ErrorF("\nBacktrace:\n");
# ifdef HAVE_PSTACK
--
1.6.0.2
++++++ vbe-bufferoverflow.diff ++++++
--- xorg-server-1.9.0/hw/xfree86/vbe/vbe.c.orig 2010-08-23 15:55:52.000000000 +0000
+++ xorg-server-1.9.0/hw/xfree86/vbe/vbe.c 2010-08-23 15:56:40.000000000 +0000
@@ -586,10 +586,10 @@ VBEGetModeInfo(vbeInfoPtr pVbe, int mode
memcpy(&block->Reserved2, ((char*)pVbe->memory) + 66, 188);
}
else
- memcpy(&block->LinBytesPerScanLine, ((char*)pVbe->memory) + 50, 206);
+ memcpy(&block->LinBytesPerScanLine, ((char*)pVbe->memory) + 50, 205);
}
else
- memcpy(&block->PhysBasePtr, ((char*)pVbe->memory) + 40, 216);
+ memcpy(&block->PhysBasePtr, ((char*)pVbe->memory) + 40, 215);
return block;
}
++++++ xorg-backtrace ++++++
#!/usr/bin/perl
$version = "1.0";
$timeout = 5;
@pkgs = ( "xorg-x11-server", "xorg-x11-driver-video", "xorg-x11-driver-input",
"libpixman-1-0", "libpciaccess0" );
$xtracmds= "/etc/X11/xorg-backtrace-cmds";
$pid=$ARGV[0];
if ($pid == 0) {
print "Usage: $0 <pid>\n";
exit 1;
}
if (! -e "/usr/bin/gdb") {
print "Install gdb to get reasonable backtraces\n";
exit 2;
}
$SIG{ALRM} = sub { die "timeout starting gdb" };
alarm $timeout;
open STDERR, ">&STDOUT";
use FileHandle;
use IPC::Open2;
$gdb = open2 (*R, *W, "/usr/bin/gdb -n -p $pid");
$SIG{ALRM} = sub { kill QUIT, $gdb; sleep 1; kill KILL, $gdb; die "timeout using gdb" };
alarm $timeout;
print "\n==================== GDB Backtrace ============\n\n";
print "Done by $0 V$version\n\n";
$needpkgs=0;
for $p (@pkgs) {
next if system ("rpm", "-q", "--quiet", "$p-debuginfo") == 0 &&
system ("rpm", "-q", "--quiet", "$p-debugsource") == 0;
print "Install following debug packages to improve backtrace:\n" unless $needpkgs;
$needpkgs++;
print "\t$p-debug*\n";
}
print "\n" if $needpkgs;
print W "set prompt\necho \\n===info\\n\n";
#print W "info files\necho ===files\\n\n";
print W "thread apply all bt full\necho ===btend\\n\n";
$_=<R>; # GNU gdb version
print;
while (<R>) {
last if /^===info/;
print if /^This GDB was configured as/;
}
#print "\n==================== Files ====================\n\n";
#while (<R>) {
# last if /^===files/;
# print;
#}
print "\n==================== Backtrace ================\n";
$fno = "";
$fls = 0;
$o = "";
$use = 0;
while (<R>) {
last if /^===btend/;
if (/^#(\d+)\s/) {
$fno = $1;
$o .= "\n";
$o .= "===l".($fno-1)."\n" if $use;
$o .= "\n";
$fls = $fno+1 if /\bxorg_backtrace \(/ || /\bOsSigHandler \(/;
$use = 1;
}
$line{$fno} = $1 if $line{$fno} == 0 && /:(\d+)\s*$/;
$o .= $_;
$use = 0 if /^No symbol table info available/;
}
$o .="\n===l$fno";
for $i ($fls..$fno) {
print W "frame $i\necho ===fs$i\\n\nlist\necho ===fe$i\\n\n";
while (<R>) {
last if /^===fs$i\b/;
}
$r = "";
while (<R>) {
last if /^===fe$i\b/;
$r .= $_;
}
if ($line{$i} > 0) {
$r =~ s/^$line{$i}\b/$line{$i} */m;
}
$o =~ s/^===l$i$/$r/m;
}
if ($fls > 0) {
for $i (0..$fls-1) {
$o =~ s/^(#$i\s.*?)\n.*?\n#/$1\n\n#/ms;
}
}
$o =~ s/^===l.*$//mg;
print "$o";
if (-e $xtracmds) {
print W "source -v $xtracmds\necho ===cmds\\n\n";
print "\n==================== Extra Commands ===========\n\n";
while (<R>) {
last if /^===cmds/;
print unless /^\+echo ===cmds/;
}
}
print "\n==================== Backtrace End ============\n\n";
close R;
close W;
exit 0;
++++++ xorg-detect-psb.patch ++++++
--- /var/tmp/diff_new_pack.dVjDu7/_old 2010-08-26 11:08:55.000000000 +0200
+++ /var/tmp/diff_new_pack.dVjDu7/_new 2010-08-26 11:08:55.000000000 +0200
@@ -1,7 +1,7 @@
-Index: xorg-server-1.6.3.901/hw/xfree86/common/xf86AutoConfig.c
-================================================================================
---- xorg-server-1.7.99/hw/xfree86/common/xf86AutoConfig.c
-+++ xorg-server-1.7.99/hw/xfree86/common/xf86AutoConfig.c
+Index: xorg-server-1.6.3.901/hw/xfree86/common/xf86pciBus.c
+===============================================================================
+--- xorg-server-1.7.99/hw/xfree86/common/xf86pciBus.c
++++ xorg-server-1.7.99/hw/xfree86/common/xf86pciBus.c
@@ -186,12 +186,14 @@
case 0x3d3d: driverList[0] = "glint"; break;
case 0x105d: driverList[0] = "i128"; break;
++++++ xorg-server-1.8.0.diff ++++++
--- /var/tmp/diff_new_pack.dVjDu7/_old 2010-08-26 11:08:55.000000000 +0200
+++ /var/tmp/diff_new_pack.dVjDu7/_new 2010-08-26 11:08:55.000000000 +0200
@@ -1,10 +1,10 @@
---- config/Makefile.am.orig 2010-04-02 11:56:16.000000000 +0200
-+++ config/Makefile.am 2010-04-02 11:56:49.000000000 +0200
+--- config/Makefile.am.orig 2010-06-11 04:14:57.000000000 +0200
++++ config/Makefile.am 2010-08-23 15:47:19.000000000 +0200
@@ -9,7 +9,7 @@
libconfig_la_SOURCES += udev.c
libconfig_la_LIBADD = $(UDEV_LIBS)
--xorgconfddir = $(prefix)/etc/X11/$(XF86CONFIGDIR)
+-xorgconfddir = $(datadir)/X11/$(XF86CONFIGDIR)
+xorgconfddir = $(sysconfdir)/X11/$(XF86CONFIGDIR)
xorgconfd_DATA = 10-evdev.conf
++++++ xorg-server-1.8.0.tar.bz2 -> xorg-server-1.9.0.tar.bz2 ++++++
++++ 212848 lines of diff (skipped)
++++++ xorg-server-nohwaccess.diff ++++++
--- /var/tmp/diff_new_pack.dVjDu7/_old 2010-08-26 11:08:59.000000000 +0200
+++ /var/tmp/diff_new_pack.dVjDu7/_new 2010-08-26 11:08:59.000000000 +0200
@@ -1,33 +1,5 @@
Index: xorg-server-1.6.3/hw/xfree86/os-support/linux/lnx_init.c
===================================================================
---- xorg-server-1.6.3.orig/hw/xfree86/os-support/linux/lnx_init.c
-+++ xorg-server-1.6.3/hw/xfree86/os-support/linux/lnx_init.c
-@@ -49,6 +49,7 @@ static Bool KeepTty = FALSE;
- static int VTnum = -1;
- static Bool VTSwitch = TRUE;
- static Bool ShareVTs = FALSE;
-+Bool NoHwAccess = FALSE;
- static int activeVT = -1;
-
- static int vtPermSave[4];
-@@ -434,6 +439,11 @@ xf86ProcessArgument(int argc, char *argv
- ShareVTs = TRUE;
- return(1);
- }
-+ if (!strcmp(argv[i], "-nohwaccess"))
-+ {
-+ NoHwAccess = TRUE;
-+ return(1);
-+ }
- if ((argv[i][0] == 'v') && (argv[i][1] == 't'))
- {
- if (sscanf(argv[i], "vt%2d", &VTnum) == 0)
-@@ -455,4 +465,5 @@ xf86UseMsg()
- ErrorF("don't detach controlling tty (for debugging only)\n");
- ErrorF("-novtswitch don't immediately switch to new VT\n");
- ErrorF("-sharevts share VTs with another X server\n");
-+ ErrorF("-nohwaccess don't access hardware ports directly\n");
- }
Index: xorg-server-1.6.3/hw/xfree86/os-support/linux/lnx_video.c
===================================================================
--- xorg-server-1.6.3.orig/hw/xfree86/os-support/linux/lnx_video.c
@@ -50,3 +22,31 @@
if (ExtendedEnabled)
return TRUE;
+--- xorg-server-1.9.0/hw/xfree86/os-support/linux/lnx_init.c.orig 2010-06-10 16:07:55.000000000 +0200
++++ xorg-server-1.9.0/hw/xfree86/os-support/linux/lnx_init.c 2010-08-23 15:38:45.000000000 +0200
+@@ -42,6 +42,7 @@ static Bool KeepTty = FALSE;
+ static int VTnum = -1;
+ static Bool VTSwitch = TRUE;
+ static Bool ShareVTs = FALSE;
++Bool NoHwAccess = FALSE;
+ static int activeVT = -1;
+
+ static int vtPermSave[4];
+@@ -377,6 +378,11 @@ xf86ProcessArgument(int argc, char *argv
+ ShareVTs = TRUE;
+ return 1;
+ }
++ if (!strcmp(argv[i], "-nohwaccess"))
++ {
++ NoHwAccess = TRUE;
++ return(1);
++ }
+ if ((argv[i][0] == 'v') && (argv[i][1] == 't'))
+ {
+ if (sscanf(argv[i], "vt%2d", &VTnum) == 0)
+@@ -398,4 +404,5 @@ xf86UseMsg(void)
+ ErrorF("don't detach controlling tty (for debugging only)\n");
+ ErrorF("-novtswitch don't immediately switch to new VT\n");
+ ErrorF("-sharevts share VTs with another X server\n");
++ ErrorF("-nohwaccess don't access hardware ports directly\n");
+ }
++++++ xorg-server-option_libxf86config.diff ++++++
--- /var/tmp/diff_new_pack.dVjDu7/_old 2010-08-26 11:08:59.000000000 +0200
+++ /var/tmp/diff_new_pack.dVjDu7/_new 2010-08-26 11:08:59.000000000 +0200
@@ -1,6 +1,6 @@
---- hw/xfree86/parser/InputClass.c
-+++ hw/xfree86/parser/InputClass.c
-@@ -61,6 +61,47 @@
+--- hw/xfree86/parser/InputClass.c.orig 2010-08-13 07:53:48.000000000 +0200
++++ hw/xfree86/parser/InputClass.c 2010-08-23 15:55:16.000000000 +0200
+@@ -65,6 +65,47 @@ xf86ConfigSymTabRec InputClassTab[] =
#define TOKEN_SEP "|"
@@ -45,33 +45,64 @@
+}
+
+
- XF86ConfInputClassPtr
- xf86parseInputClassSection(void)
+ static void
+ add_group_entry(struct list *head, char **values)
{
-@@ -96,22 +137,22 @@
- case MATCH_PRODUCT:
+@@ -125,49 +166,49 @@ xf86parseInputClassSection(void)
if (xf86getSubToken(&(ptr->comment)) != STRING)
Error(QUOTE_MSG, "MatchProduct");
-- ptr->match_product = xstrtokenize(val.str, TOKEN_SEP);
-+ ptr->match_product = m_xstrtokenize(val.str, TOKEN_SEP);
+ add_group_entry(&ptr->match_product,
+- xstrtokenize(val.str, TOKEN_SEP));
++ m_xstrtokenize(val.str, TOKEN_SEP));
break;
case MATCH_VENDOR:
if (xf86getSubToken(&(ptr->comment)) != STRING)
Error(QUOTE_MSG, "MatchVendor");
-- ptr->match_vendor = xstrtokenize(val.str, TOKEN_SEP);
-+ ptr->match_vendor = m_xstrtokenize(val.str, TOKEN_SEP);
+ add_group_entry(&ptr->match_vendor,
+- xstrtokenize(val.str, TOKEN_SEP));
++ m_xstrtokenize(val.str, TOKEN_SEP));
break;
case MATCH_DEVICE_PATH:
if (xf86getSubToken(&(ptr->comment)) != STRING)
Error(QUOTE_MSG, "MatchDevicePath");
-- ptr->match_device = xstrtokenize(val.str, TOKEN_SEP);
-+ ptr->match_device = m_xstrtokenize(val.str, TOKEN_SEP);
+ add_group_entry(&ptr->match_device,
+- xstrtokenize(val.str, TOKEN_SEP));
++ m_xstrtokenize(val.str, TOKEN_SEP));
+ break;
+ case MATCH_OS:
+ if (xf86getSubToken(&(ptr->comment)) != STRING)
+ Error(QUOTE_MSG, "MatchOS");
+ add_group_entry(&ptr->match_os,
+- xstrtokenize(val.str, TOKEN_SEP));
++ m_xstrtokenize(val.str, TOKEN_SEP));
+ break;
+ case MATCH_PNPID:
+ if (xf86getSubToken(&(ptr->comment)) != STRING)
+ Error(QUOTE_MSG, "MatchPnPID");
+ add_group_entry(&ptr->match_pnpid,
+- xstrtokenize(val.str, TOKEN_SEP));
++ m_xstrtokenize(val.str, TOKEN_SEP));
+ break;
+ case MATCH_USBID:
+ if (xf86getSubToken(&(ptr->comment)) != STRING)
+ Error(QUOTE_MSG, "MatchUSBID");
+ add_group_entry(&ptr->match_usbid,
+- xstrtokenize(val.str, TOKEN_SEP));
++ m_xstrtokenize(val.str, TOKEN_SEP));
+ break;
+ case MATCH_DRIVER:
+ if (xf86getSubToken(&(ptr->comment)) != STRING)
+ Error(QUOTE_MSG, "MatchDriver");
+ add_group_entry(&ptr->match_driver,
+- xstrtokenize(val.str, TOKEN_SEP));
++ m_xstrtokenize(val.str, TOKEN_SEP));
break;
case MATCH_TAG:
if (xf86getSubToken(&(ptr->comment)) != STRING)
Error(QUOTE_MSG, "MatchTag");
-- ptr->match_tag = xstrtokenize(val.str, TOKEN_SEP);
-+ ptr->match_tag = m_xstrtokenize(val.str, TOKEN_SEP);
+ add_group_entry(&ptr->match_tag,
+- xstrtokenize(val.str, TOKEN_SEP));
++ m_xstrtokenize(val.str, TOKEN_SEP));
break;
case MATCH_IS_KEYBOARD:
if (xf86getSubToken(&(ptr->comment)) != STRING)
++++++ xorg-server-xf4vnc.patch ++++++
--- /var/tmp/diff_new_pack.dVjDu7/_old 2010-08-26 11:08:59.000000000 +0200
+++ /var/tmp/diff_new_pack.dVjDu7/_new 2010-08-26 11:08:59.000000000 +0200
@@ -1,5 +1,3 @@
-Index: xorg-server-1.6.3.901/Makefile.am
-================================================================================
--- xorg-server-1.7.99/Makefile.am
+++ xorg-server-1.7.99/Makefile.am
@@ -17,6 +17,10 @@
@@ -21,9 +19,9 @@
exa \
config \
hw \
---- xorg-server-1.7.99/configure.ac
-+++ xorg-server-1.7.99/configure.ac
-@@ -634,6 +634,8 @@
+--- xorg-server-1.9.0/configure.ac.orig 2010-08-21 02:30:34.000000000 +0200
++++ xorg-server-1.9.0/configure.ac 2010-08-23 14:11:04.000000000 +0200
+@@ -649,6 +649,8 @@
dnl DDXes.
AC_ARG_ENABLE(xorg, AS_HELP_STRING([--enable-xorg], [Build Xorg server (default: auto)]), [XORG=$enableval], [XORG=auto])
@@ -32,7 +30,7 @@
AC_ARG_ENABLE(dmx, AS_HELP_STRING([--enable-dmx], [Build DMX server (default: auto)]), [DMX=$enableval], [DMX=auto])
AC_ARG_ENABLE(xvfb, AS_HELP_STRING([--enable-xvfb], [Build Xvfb server (default: yes)]), [XVFB=$enableval], [XVFB=yes])
AC_ARG_ENABLE(xnest, AS_HELP_STRING([--enable-xnest], [Build Xnest server (default: auto)]), [XNEST=$enableval], [XNEST=auto])
-@@ -1131,6 +1133,20 @@
+@@ -1163,6 +1165,20 @@
AM_CONDITIONAL(VBE, test "x$VBE" = xyes)
AM_CONDITIONAL(INT10MODULE, test "x$INT10MODULE" = xyes)
@@ -53,7 +51,7 @@
AC_DEFINE(SHAPE, 1, [Support SHAPE extension])
AC_DEFINE_DIR(XKB_BASE_DIRECTORY, XKBPATH, [Path to XKB data])
-@@ -1470,6 +1486,40 @@
+@@ -1500,6 +1516,40 @@
dnl DDX section.
dnl ---------------------------------------------------------------------------
@@ -94,7 +92,7 @@
dnl Xvfb DDX
AC_MSG_CHECKING([whether to build Xvfb DDX])
-@@ -2160,6 +2210,7 @@
+@@ -2202,6 +2252,7 @@
Xi/Makefile
xfixes/Makefile
exa/Makefile
@@ -102,7 +100,7 @@
hw/Makefile
hw/xfree86/Makefile
hw/xfree86/common/Makefile
-@@ -2193,6 +2244,7 @@
+@@ -2235,6 +2286,7 @@
hw/xfree86/shadowfb/Makefile
hw/xfree86/vbe/Makefile
hw/xfree86/vgahw/Makefile
@@ -110,7 +108,7 @@
hw/xfree86/x86emu/Makefile
hw/xfree86/xaa/Makefile
hw/xfree86/xf8_16bpp/Makefile
-@@ -2204,8 +2256,10 @@
+@@ -2246,8 +2298,10 @@
hw/dmx/examples/Makefile
hw/dmx/input/Makefile
hw/dmx/glxProxy/Makefile
@@ -120,7 +118,9 @@
+hw/vnc/Makefile
hw/xnest/Makefile
hw/xwin/Makefile
- hw/xquartz/Makefile
+ hw/xwin/glx/Makefile
+Index: xorg-server-1.6.3.901/Makefile.am
+================================================================================
--- xorg-server-1.7.99/hw/Makefile.am
+++ xorg-server-1.7.99/hw/Makefile.am
@@ -22,6 +22,10 @@
++++++ xserver-1.6.1-nouveau.patch ++++++
--- /var/tmp/diff_new_pack.dVjDu7/_old 2010-08-26 11:08:59.000000000 +0200
+++ /var/tmp/diff_new_pack.dVjDu7/_new 2010-08-26 11:08:59.000000000 +0200
@@ -26,7 +26,7 @@
}
@@ -1184,7 +1187,7 @@ __glXDRIscreenProbe(ScreenPtr pScreen)
- xfree(screen);
+ free(screen);
- LogMessage(X_ERROR, "AIGLX: reverting to software rendering\n");
+ LogMessage(from, "AIGLX: reverting to software rendering\n");
@@ -43,7 +43,7 @@
int i;
+ int from = X_ERROR;
- screen = xcalloc(1, sizeof *screen);
+ screen = calloc(1, sizeof *screen);
if (screen == NULL)
@@ -702,7 +703,9 @@ __glXDRIscreenProbe(ScreenPtr pScreen)
@@ -58,7 +58,7 @@
}
@@ -793,7 +796,7 @@ __glXDRIscreenProbe(ScreenPtr pScreen)
- xfree(screen);
+ free(screen);
- LogMessage(X_ERROR, "AIGLX: reverting to software rendering\n");
+ LogMessage(from, "AIGLX: reverting to software rendering\n");
++++++ xserver-bg-none-root.patch ++++++
--- /var/tmp/diff_new_pack.dVjDu7/_old 2010-08-26 11:08:59.000000000 +0200
+++ /var/tmp/diff_new_pack.dVjDu7/_new 2010-08-26 11:08:59.000000000 +0200
@@ -14,16 +14,6 @@
Index: xorg-server-1.8.0/dix/globals.c
===================================================================
---- xorg-server-1.8.0.orig/dix/globals.c
-+++ xorg-server-1.8.0/dix/globals.c
-@@ -124,6 +124,7 @@ FontPtr defaultFont; /* not declared i
- CursorPtr rootCursor;
- Bool party_like_its_1989 = FALSE;
- Bool whiteRoot = FALSE;
-+Bool bgNoneRoot = FALSE;
-
- int cursorScreenDevPriv[MAXSCREENS];
-
Index: xorg-server-1.8.0/dix/window.c
===================================================================
--- xorg-server-1.8.0.orig/dix/window.c
@@ -61,41 +51,6 @@
}
Index: xorg-server-1.8.0/hw/xfree86/common/xf86Init.c
===================================================================
---- xorg-server-1.8.0.orig/hw/xfree86/common/xf86Init.c
-+++ xorg-server-1.8.0/hw/xfree86/common/xf86Init.c
-@@ -77,6 +77,7 @@
- #ifdef RENDER
- #include "picturestr.h"
- #endif
-+#include "xace.h"
-
- #include "xf86VGAarbiter.h"
- #include "globals.h"
-@@ -256,6 +257,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);
-@@ -306,6 +308,16 @@ xf86CreateRootWindow(WindowPtr pWin)
- ret = FALSE;
- }
- }
-+ if (bgNoneRoot) {
-+ if (pScrn->canDoBGNoneRoot) {
-+ 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);
-+ }
-+ }
-
- DebugF("xf86CreateRootWindow() returns %d\n", ret);
- return (ret);
Index: xorg-server-1.8.0/hw/xfree86/common/xf86str.h
===================================================================
--- xorg-server-1.8.0.orig/hw/xfree86/common/xf86str.h
@@ -152,3 +107,49 @@
else if ( strcmp( argv[i], "-maxbigreqsize") == 0) {
if(++i < argc) {
long reqSizeArg = atol(argv[i]);
+--- xorg-server-1.9.0/dix/globals.c.orig 2010-06-06 19:53:51.000000000 +0200
++++ xorg-server-1.9.0/dix/globals.c 2010-08-23 15:27:52.000000000 +0200
+@@ -122,6 +122,7 @@ FontPtr defaultFont; /* not declared i
+ CursorPtr rootCursor;
+ Bool party_like_its_1989 = FALSE;
+ Bool whiteRoot = FALSE;
++Bool bgNoneRoot = FALSE;
+
+ TimeStamp currentTime;
+ TimeStamp lastDeviceEventTime;
+--- xorg-server-1.9.0/hw/xfree86/common/xf86Init.c.orig 2010-06-10 16:07:55.000000000 +0200
++++ xorg-server-1.9.0/hw/xfree86/common/xf86Init.c 2010-08-23 15:32:56.000000000 +0200
+@@ -76,6 +76,7 @@
+ #include "xf86Xinput.h"
+ #include "xf86InPriv.h"
+ #include "picturestr.h"
++#include "xace.h"
+
+ #include "xf86Bus.h"
+ #include "xf86VGAarbiter.h"
+@@ -242,6 +243,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);
+@@ -293,6 +295,17 @@ xf86CreateRootWindow(WindowPtr pWin)
+ }
+ }
+
++ if (bgNoneRoot) {
++ if (pScrn->canDoBGNoneRoot) {
++ 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);
++ }
++ }
++
+ DebugF("xf86CreateRootWindow() returns %d\n", ret);
+ return ret;
+ }
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Remember to have fun...
--
To unsubscribe, e-mail: opensuse-commit+unsubscribe@opensuse.org
For additional commands, e-mail: opensuse-commit+help@opensuse.org