forked from pool/xorg-x11-server
Accepting request 46214 from X11:XOrg
Copy from X11:XOrg/xorg-x11-server based on submit request 46214 from user sndirsch OBS-URL: https://build.opensuse.org/request/show/46214 OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/xorg-x11-server?expand=0&rev=176
This commit is contained in:
commit
44be5e0519
@ -1,18 +1,10 @@
|
|||||||
From 5ed1510176b870fd6208e2f8561880c4abe6637d Mon Sep 17 00:00:00 2001
|
--- xorg-server-1.9.0/mi/misprite.c.orig 2010-07-23 21:40:56.000000000 +0200
|
||||||
From: Egbert Eich <eich@linux-p1mv.site>
|
+++ xorg-server-1.9.0/mi/misprite.c 2010-08-23 15:44:51.000000000 +0200
|
||||||
Date: Thu, 8 Oct 2009 12:40:55 +0200
|
@@ -384,6 +384,7 @@ miSpriteCloseScreen (int i, ScreenPtr pS
|
||||||
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 @@
|
|
||||||
pScreen->InstallColormap = pScreenPriv->InstallColormap;
|
pScreen->InstallColormap = pScreenPriv->InstallColormap;
|
||||||
pScreen->StoreColors = pScreenPriv->StoreColors;
|
pScreen->StoreColors = pScreenPriv->StoreColors;
|
||||||
|
|
||||||
+ miSpriteDisableDamage(pScreen, pScreenPriv);
|
+ miSpriteDisableDamage(pScreen, pScreenPriv);
|
||||||
DamageDestroy (pScreenPriv->pDamage);
|
DamageDestroy (pScreenPriv->pDamage);
|
||||||
|
|
||||||
xfree (pScreenPriv);
|
free(pScreenPriv);
|
||||||
|
@ -21,10 +21,10 @@ even if idev is null. This takes down the xserver hard in some cases
|
|||||||
- if (!(*it)) /* end of list, not in the layout */
|
- if (!(*it)) /* end of list, not in the layout */
|
||||||
+ if (idev)
|
+ if (idev)
|
||||||
{
|
{
|
||||||
- xfree(idev->driver);
|
- free(idev->driver);
|
||||||
- xfree(idev->identifier);
|
- free(idev->identifier);
|
||||||
- xf86optionListFree(idev->commonOptions);
|
- xf86optionListFree(idev->commonOptions);
|
||||||
- xfree(idev);
|
- free(idev);
|
||||||
+ /* devices added through HAL aren't in the config layout */
|
+ /* devices added through HAL aren't in the config layout */
|
||||||
+ it = xf86ConfigLayout.inputs;
|
+ it = xf86ConfigLayout.inputs;
|
||||||
+ while(*it && *it != idev)
|
+ while(*it && *it != idev)
|
||||||
@ -32,10 +32,10 @@ even if idev is null. This takes down the xserver hard in some cases
|
|||||||
+
|
+
|
||||||
+ if (!(*it)) /* end of list, not in the layout */
|
+ if (!(*it)) /* end of list, not in the layout */
|
||||||
+ {
|
+ {
|
||||||
+ xfree(idev->driver);
|
+ free(idev->driver);
|
||||||
+ xfree(idev->identifier);
|
+ free(idev->identifier);
|
||||||
+ xf86optionListFree(idev->commonOptions);
|
+ xf86optionListFree(idev->commonOptions);
|
||||||
+ xfree(idev);
|
+ free(idev);
|
||||||
+ }
|
+ }
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -1,7 +1,7 @@
|
|||||||
--- xorg-server-1.8.0/dix/window.c.orig 2010-08-07 17:45:14.000000000 +0200
|
--- xorg-server-1.9.0/dix/window.c.orig 2010-08-23 16:07:24.000000000 +0200
|
||||||
+++ xorg-server-1.8.0/dix/window.c 2010-08-07 17:52:58.000000000 +0200
|
+++ xorg-server-1.9.0/dix/window.c 2010-08-23 16:14:09.000000000 +0200
|
||||||
@@ -546,6 +546,48 @@ RealChildHead(WindowPtr pWin)
|
@@ -535,6 +535,48 @@ RealChildHead(WindowPtr pWin)
|
||||||
return (NullWindow);
|
return NullWindow;
|
||||||
}
|
}
|
||||||
|
|
||||||
+static int
|
+static int
|
||||||
@ -12,23 +12,23 @@
|
|||||||
+ WindowPtr pChild;
|
+ WindowPtr pChild;
|
||||||
+
|
+
|
||||||
+ if (!(pChild = pWin))
|
+ if (!(pChild = pWin))
|
||||||
+ return 0;
|
+ return 0;
|
||||||
+ while (1)
|
+ while (1)
|
||||||
+ {
|
+ {
|
||||||
+ if (pChild->firstChild)
|
+ if (pChild->firstChild)
|
||||||
+ {
|
+ {
|
||||||
+ ++depth;
|
+ ++depth;
|
||||||
+ pChild = pChild->firstChild;
|
+ pChild = pChild->firstChild;
|
||||||
+ continue;
|
+ continue;
|
||||||
+ } else if (depth > max_depth)
|
+ } else if (depth > max_depth)
|
||||||
+ max_depth = depth;
|
+ max_depth = depth;
|
||||||
+ while (!pChild->nextSib && (pChild != pWin)) {
|
+ while (!pChild->nextSib && (pChild != pWin)) {
|
||||||
+ --depth;
|
+ --depth;
|
||||||
+ pChild = pChild->parent;
|
+ pChild = pChild->parent;
|
||||||
+ }
|
+ }
|
||||||
+ if (pChild == pWin)
|
+ if (pChild == pWin)
|
||||||
+ break;
|
+ break;
|
||||||
+ pChild = pChild->nextSib;
|
+ pChild = pChild->nextSib;
|
||||||
+ }
|
+ }
|
||||||
+ return max_depth;
|
+ return max_depth;
|
||||||
+}
|
+}
|
||||||
@ -38,8 +38,8 @@
|
|||||||
+{
|
+{
|
||||||
+ int depth = 0;
|
+ int depth = 0;
|
||||||
+ while (pWin) {
|
+ while (pWin) {
|
||||||
+ ++depth;
|
+ ++depth;
|
||||||
+ pWin = pWin->parent;
|
+ pWin = pWin->parent;
|
||||||
+ }
|
+ }
|
||||||
+ return depth;
|
+ return depth;
|
||||||
+}
|
+}
|
||||||
@ -49,7 +49,7 @@
|
|||||||
/*****
|
/*****
|
||||||
* CreateWindow
|
* CreateWindow
|
||||||
* Makes a window in response to client request
|
* 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;
|
PixmapFormatRec *format;
|
||||||
WindowOptPtr ancwopt;
|
WindowOptPtr ancwopt;
|
||||||
|
|
||||||
@ -61,13 +61,13 @@
|
|||||||
if (class == CopyFromParent)
|
if (class == CopyFromParent)
|
||||||
class = pParent->drawable.class;
|
class = pParent->drawable.class;
|
||||||
|
|
||||||
@@ -2457,6 +2504,9 @@ ReparentWindow(WindowPtr pWin, WindowPtr
|
@@ -2434,6 +2481,9 @@ ReparentWindow(WindowPtr pWin, WindowPtr
|
||||||
int bw = wBorderWidth (pWin);
|
int bw = wBorderWidth (pWin);
|
||||||
ScreenPtr pScreen;
|
ScreenPtr pScreen;
|
||||||
|
|
||||||
+ if (WindowDepth(pParent) + TreeDepth(pWin) >= MAX_TREE_DEPTH)
|
+ if (WindowDepth(pParent) + TreeDepth(pWin) >= MAX_TREE_DEPTH)
|
||||||
+ return BadAlloc;
|
+ return BadAlloc;
|
||||||
+
|
+
|
||||||
pScreen = pWin->drawable.pScreen;
|
pScreen = pWin->drawable.pScreen;
|
||||||
if (TraverseTree(pWin, CompareWIDs, (pointer)&pParent->drawable.id) == WT_STOPWALKING)
|
if (TraverseTree(pWin, CompareWIDs, (pointer)&pParent->drawable.id) == WT_STOPWALKING)
|
||||||
return(BadMatch);
|
return BadMatch;
|
||||||
|
123
Use-external-tool-for-creating-backtraces-on-crashes.patch
Normal file
123
Use-external-tool-for-creating-backtraces-on-crashes.patch
Normal file
@ -0,0 +1,123 @@
|
|||||||
|
From bb4e768eaf8025d3ccf369cbad9a9b8be721e7ac Mon Sep 17 00:00:00 2001
|
||||||
|
From: Matthias Hopf <mhopf@suse.de>
|
||||||
|
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 <mhopf@suse.de>
|
||||||
|
---
|
||||||
|
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 <sys/types.h>
|
||||||
|
+#include <sys/wait.h>
|
||||||
|
+#include <stdio.h>
|
||||||
|
+#include <stdlib.h>
|
||||||
|
+#include <unistd.h>
|
||||||
|
+#include <errno.h>
|
||||||
|
+
|
||||||
|
+#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
|
||||||
|
|
@ -49,9 +49,9 @@ Signed-off-by: Yan Li <yan.i.li@intel.com>
|
|||||||
|
|
||||||
Unless the X server is modified, sharing this directory between servers on
|
Unless the X server is modified, sharing this directory between servers on
|
||||||
different hosts could cause problems.
|
different hosts could cause problems.
|
||||||
--- xorg-server-1.7.99/xkb/ddxLoad.c
|
--- xorg-server-1.9.0/xkb/ddxLoad.c.orig 2010-07-14 22:23:17.000000000 +0200
|
||||||
+++ xorg-server-1.7.99/xkb/ddxLoad.c
|
+++ xorg-server-1.9.0/xkb/ddxLoad.c 2010-08-23 15:23:47.000000000 +0200
|
||||||
@@ -30,6 +30,12 @@
|
@@ -30,6 +30,12 @@ THE USE OR PERFORMANCE OF THIS SOFTWARE.
|
||||||
|
|
||||||
#include <xkb-config.h>
|
#include <xkb-config.h>
|
||||||
|
|
||||||
@ -64,7 +64,7 @@ Signed-off-by: Yan Li <yan.i.li@intel.com>
|
|||||||
#include <stdio.h>
|
#include <stdio.h>
|
||||||
#include <ctype.h>
|
#include <ctype.h>
|
||||||
#include <X11/X.h>
|
#include <X11/X.h>
|
||||||
@@ -43,24 +49,13 @@
|
@@ -43,24 +49,13 @@ THE USE OR PERFORMANCE OF THIS SOFTWARE.
|
||||||
#define XKBSRV_NEED_FILE_FUNCS
|
#define XKBSRV_NEED_FILE_FUNCS
|
||||||
#include <xkbsrv.h>
|
#include <xkbsrv.h>
|
||||||
#include <X11/extensions/XI.h>
|
#include <X11/extensions/XI.h>
|
||||||
@ -90,7 +90,7 @@ Signed-off-by: Yan Li <yan.i.li@intel.com>
|
|||||||
#define PRE_ERROR_MSG "\"The XKEYBOARD keymap compiler (xkbcomp) reports:\""
|
#define PRE_ERROR_MSG "\"The XKEYBOARD keymap compiler (xkbcomp) reports:\""
|
||||||
#define ERROR_PREFIX "\"> \""
|
#define ERROR_PREFIX "\"> \""
|
||||||
#define POST_ERROR_MSG1 "\"Errors from xkbcomp are not fatal to the X server\""
|
#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
|
static Bool
|
||||||
@ -136,7 +136,7 @@ Signed-off-by: Yan Li <yan.i.li@intel.com>
|
|||||||
XkbDDXCompileKeymapByNames( XkbDescPtr xkb,
|
XkbDDXCompileKeymapByNames( XkbDescPtr xkb,
|
||||||
XkbComponentNamesPtr names,
|
XkbComponentNamesPtr names,
|
||||||
unsigned want,
|
unsigned want,
|
||||||
@@ -183,7 +217,11 @@
|
@@ -183,7 +217,11 @@ XkbDDXCompileKeymapByNames( XkbDescPtr
|
||||||
int nameRtrnLen)
|
int nameRtrnLen)
|
||||||
{
|
{
|
||||||
FILE * out;
|
FILE * out;
|
||||||
@ -145,11 +145,11 @@ Signed-off-by: Yan Li <yan.i.li@intel.com>
|
|||||||
+ char * tmpXkmFile = NULL;
|
+ char * tmpXkmFile = NULL;
|
||||||
+ char * canonicalXkmFileName = NULL;
|
+ char * canonicalXkmFileName = NULL;
|
||||||
+ char sha1Asc[SHA_DIGEST_LENGTH*2+1], xkbKeyMapBuf[100*1024];
|
+ char sha1Asc[SHA_DIGEST_LENGTH*2+1], xkbKeyMapBuf[100*1024];
|
||||||
+ int ret, result;
|
+ int ret, result;
|
||||||
|
|
||||||
const char *emptystring = "";
|
const char *emptystring = "";
|
||||||
const char *xkbbasedirflag = emptystring;
|
char *xkbbasedirflag = NULL;
|
||||||
@@ -194,15 +232,70 @@
|
@@ -194,15 +232,70 @@ XkbDDXCompileKeymapByNames( XkbDescPtr
|
||||||
/* WIN32 has no popen. The input must be stored in a file which is
|
/* 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. */
|
used as input for xkbcomp. xkbcomp does not read from stdin. */
|
||||||
char tmpname[PATH_MAX];
|
char tmpname[PATH_MAX];
|
||||||
@ -223,15 +223,15 @@ Signed-off-by: Yan Li <yan.i.li@intel.com>
|
|||||||
#ifdef WIN32
|
#ifdef WIN32
|
||||||
strcpy(tmpname, Win32TempDir());
|
strcpy(tmpname, Win32TempDir());
|
||||||
strcat(tmpname, "\\xkb_XXXXXX");
|
strcat(tmpname, "\\xkb_XXXXXX");
|
||||||
@@ -225,19 +318,30 @@
|
@@ -225,14 +318,20 @@ XkbDDXCompileKeymapByNames( XkbDescPtr
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
+ if ( (tmpXkmFile = tempnam(xkm_output_dir, NULL)) == NULL ) {
|
+ if ( (tmpXkmFile = tempnam(xkm_output_dir, NULL)) == NULL ) {
|
||||||
+ ErrorF("[xkb] Can't generate temp xkm file name");
|
+ ErrorF("[xkb] Can't generate temp xkm file name");
|
||||||
+ result = FALSE;
|
+ result = FALSE;
|
||||||
+ goto _ret;
|
+ goto _ret;
|
||||||
+ }
|
+ }
|
||||||
+
|
+
|
||||||
buf = Xprintf("\"%s%sxkbcomp\" -w %d %s -xkm \"%s\" "
|
buf = Xprintf("\"%s%sxkbcomp\" -w %d %s -xkm \"%s\" "
|
||||||
- "-em1 %s -emp %s -eml %s \"%s%s.xkm\"",
|
- "-em1 %s -emp %s -eml %s \"%s%s.xkm\"",
|
||||||
@ -239,25 +239,29 @@ Signed-off-by: Yan Li <yan.i.li@intel.com>
|
|||||||
xkbbindir, xkbbindirsep,
|
xkbbindir, xkbbindirsep,
|
||||||
( (xkbDebugFlags < 2) ? 1 :
|
( (xkbDebugFlags < 2) ? 1 :
|
||||||
((xkbDebugFlags > 10) ? 10 : (int)xkbDebugFlags) ),
|
((xkbDebugFlags > 10) ? 10 : (int)xkbDebugFlags) ),
|
||||||
- xkbbasedirflag, xkmfile,
|
- xkbbasedirflag ? xkbbasedirflag : "", xkmfile,
|
||||||
+ xkbbasedirflag, xkbfile,
|
+ xkbbasedirflag ? xkbbasedirflag : "", xkbfile,
|
||||||
PRE_ERROR_MSG, ERROR_PREFIX, POST_ERROR_MSG1,
|
PRE_ERROR_MSG, ERROR_PREFIX, POST_ERROR_MSG1,
|
||||||
- xkm_output_dir, keymap);
|
- xkm_output_dir, keymap);
|
||||||
+ tmpXkmFile);
|
+ tmpXkmFile);
|
||||||
|
|
||||||
if (xkbbasedirflag != emptystring) {
|
free(xkbbasedirflag);
|
||||||
xfree(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()
|
+ /* there's a potential race condition between calling tempnam()
|
||||||
+ and invoking xkbcomp to write the result file (potential temp
|
+ and invoking xkbcomp to write the result file (potential temp
|
||||||
+ file name conflicts), but since xkbcomp is a standalone
|
+ file name conflicts), but since xkbcomp is a standalone
|
||||||
+ program, we have to live with this */
|
+ program, we have to live with this */
|
||||||
+
|
+
|
||||||
#ifndef WIN32
|
#ifndef WIN32
|
||||||
out= Popen(buf,"w");
|
out= Popen(buf,"w");
|
||||||
#else
|
#else
|
||||||
@@ -245,31 +349,42 @@
|
@@ -248,31 +352,42 @@ XkbDDXCompileKeymapByNames( XkbDescPtr
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
if (out!=NULL) {
|
if (out!=NULL) {
|
||||||
@ -287,27 +291,26 @@ Signed-off-by: Yan Li <yan.i.li@intel.com>
|
|||||||
- if (nameRtrn) {
|
- if (nameRtrn) {
|
||||||
- strncpy(nameRtrn,keymap,nameRtrnLen);
|
- strncpy(nameRtrn,keymap,nameRtrnLen);
|
||||||
- nameRtrn[nameRtrnLen-1]= '\0';
|
- nameRtrn[nameRtrnLen-1]= '\0';
|
||||||
- }
|
+ /* if canonicalXkmFileName already exists now, we simply
|
||||||
- if (buf != NULL)
|
+ overwrite it, this is OK */
|
||||||
- xfree (buf);
|
+ ret = rename(tmpXkmFile, canonicalXkmFileName);
|
||||||
- return TRUE;
|
+ if (0 != ret) {
|
||||||
+ /* if canonicalXkmFileName already exists now, we simply
|
+ ErrorF("[xkb] Can't rename %s to %s, error: %s\n",
|
||||||
+ 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,
|
+ tmpXkmFile, canonicalXkmFileName,
|
||||||
+ strerror(errno));
|
+ strerror(errno));
|
||||||
+
|
+
|
||||||
+ /* in case of error, don't unlink tmpXkmFile, leave it
|
+ /* in case of error, don't unlink tmpXkmFile, leave it
|
||||||
+ for debugging */
|
+ for debugging */
|
||||||
+
|
+
|
||||||
+ result = FALSE;
|
+ result = FALSE;
|
||||||
+ goto _ret;
|
|
||||||
+ }
|
|
||||||
+
|
|
||||||
+ result = TRUE;
|
|
||||||
+ goto _ret;
|
+ goto _ret;
|
||||||
|
}
|
||||||
|
- if (buf != NULL)
|
||||||
|
- free(buf);
|
||||||
|
- return TRUE;
|
||||||
|
+
|
||||||
|
+ result = TRUE;
|
||||||
|
+ goto _ret;
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
- LogMessage(X_ERROR, "Error compiling keymap (%s)\n", keymap);
|
- LogMessage(X_ERROR, "Error compiling keymap (%s)\n", keymap);
|
||||||
@ -315,12 +318,12 @@ Signed-off-by: Yan Li <yan.i.li@intel.com>
|
|||||||
#ifdef WIN32
|
#ifdef WIN32
|
||||||
/* remove the temporary file */
|
/* remove the temporary file */
|
||||||
unlink(tmpname);
|
unlink(tmpname);
|
||||||
@@ -286,7 +401,17 @@
|
@@ -289,7 +404,17 @@ XkbDDXCompileKeymapByNames( XkbDescPtr
|
||||||
nameRtrn[0]= '\0';
|
nameRtrn[0]= '\0';
|
||||||
if (buf != NULL)
|
if (buf != NULL)
|
||||||
xfree (buf);
|
free(buf);
|
||||||
- return FALSE;
|
- return FALSE;
|
||||||
+ result = FALSE;
|
+ result = FALSE;
|
||||||
+
|
+
|
||||||
+_ret:
|
+_ret:
|
||||||
+ if (tmpXkmFile)
|
+ if (tmpXkmFile)
|
||||||
@ -334,7 +337,7 @@ Signed-off-by: Yan Li <yan.i.li@intel.com>
|
|||||||
}
|
}
|
||||||
|
|
||||||
static FILE *
|
static FILE *
|
||||||
@@ -370,7 +495,6 @@
|
@@ -373,7 +498,6 @@ unsigned missing;
|
||||||
DebugF("Loaded XKB keymap %s, defined=0x%x\n",fileName,(*xkbRtrn)->defined);
|
DebugF("Loaded XKB keymap %s, defined=0x%x\n",fileName,(*xkbRtrn)->defined);
|
||||||
}
|
}
|
||||||
fclose(file);
|
fclose(file);
|
||||||
|
@ -13,9 +13,9 @@ Index: dix/events.c
|
|||||||
+ int d, min = (~0U >> 1), dx2, dy2, x_r, y_r;
|
+ int d, min = (~0U >> 1), dx2, dy2, x_r, y_r;
|
||||||
|
|
||||||
pSprite = pDev->spriteInfo->sprite;
|
pSprite = pDev->spriteInfo->sprite;
|
||||||
if (POINT_IN_REGION(pSprite->hot.pScreen, shape, x, y, &box))
|
if (RegionContainsPoint(shape, x, y, &box))
|
||||||
return;
|
return;
|
||||||
- box = *REGION_EXTENTS(pSprite->hot.pScreen, shape);
|
- box = *RegionExtents(shape);
|
||||||
- /* this is rather crude */
|
- /* this is rather crude */
|
||||||
- do {
|
- do {
|
||||||
- x += incx;
|
- x += incx;
|
||||||
@ -99,7 +99,7 @@ Index: dix/events.c
|
|||||||
- else if (y < box.y1)
|
- else if (y < box.y1)
|
||||||
- return; /* should never get here! */
|
- return; /* should never get here! */
|
||||||
}
|
}
|
||||||
- } while (!POINT_IN_REGION(pSprite->hot.pScreen, shape, x, y, &box));
|
- } while (!RegionContainsPoint(shape, x, y, &box));
|
||||||
- *px = x;
|
- *px = x;
|
||||||
- *py = y;
|
- *py = y;
|
||||||
+ }
|
+ }
|
||||||
|
@ -1,12 +0,0 @@
|
|||||||
diff -Nru xorg-server-1.8.0.orig/hw/dmx/dmxextension.c xorg-server-1.8.0/hw/dmx/dmxextension.c
|
|
||||||
--- xorg-server-1.8.0.orig/hw/dmx/dmxextension.c 2009-11-04 17:25:50.000000000 +0100
|
|
||||||
+++ xorg-server-1.8.0/hw/dmx/dmxextension.c 2010-04-23 14:31:56.000000000 +0200
|
|
||||||
@@ -1160,7 +1160,7 @@
|
|
||||||
len_images);
|
|
||||||
|
|
||||||
/* Clean up */
|
|
||||||
- free(len_images);
|
|
||||||
+ free(images);
|
|
||||||
free(gids);
|
|
||||||
free(glyphs);
|
|
||||||
}
|
|
@ -1,5 +1,5 @@
|
|||||||
--- hw/xfree86/common/xf86AutoConfig.c
|
--- hw/xfree86/common/xf86pciBus.c
|
||||||
+++ hw/xfree86/common/xf86AutoConfig.c
|
+++ hw/xfree86/common/xf86pciBus.c
|
||||||
@@ -176,7 +176,11 @@
|
@@ -176,7 +176,11 @@
|
||||||
case 0x1142: driverList[0] = "apm"; break;
|
case 0x1142: driverList[0] = "apm"; break;
|
||||||
case 0xedd8: driverList[0] = "ark"; break;
|
case 0xedd8: driverList[0] = "ark"; break;
|
||||||
|
@ -1,296 +0,0 @@
|
|||||||
From 6dbae4f4841ddfb70d6f2a973431f34d2b3cc4c0 Mon Sep 17 00:00:00 2001
|
|
||||||
From: Egbert Eich <eich@freedesktop.org>
|
|
||||||
Date: Mon, 23 Mar 2009 12:58:28 +0100
|
|
||||||
Subject: [PATCH] Fixed SYNC extension trigger BlockHandler test.
|
|
||||||
|
|
||||||
* Reworked ComputeBracketValues():
|
|
||||||
+ Removed 'startOver' flag: we always seem to want to start
|
|
||||||
over, there doesn't seem to be a reason why we should keep the old
|
|
||||||
bracket values, moreover when this flag was set the semantics of
|
|
||||||
setting the bracket values for the selected sync counter were flawed
|
|
||||||
anyhow:
|
|
||||||
the bracket whose value hadn't changed (if the other one did) was simply
|
|
||||||
deleted.
|
|
||||||
+ Rewrote the bracket value calculation for Postitive/NegativeTransition:
|
|
||||||
the calulation didn't cover all possible cases and was flawed anyhow.
|
|
||||||
* Reworked previous patch to IdleTimeBlockHandler()
|
|
||||||
(commit: 1f4fb022)
|
|
||||||
+ Simplified code.
|
|
||||||
+ Modified heuristics:
|
|
||||||
pIdleTimeValueLess does not exclude pIdleTimeValueGreater: if no wakeup
|
|
||||||
is scheduled for the former one check if there is one for the latter.
|
|
||||||
+ If no immediate wakeup is scheduled at all find schedule a wakeup for
|
|
||||||
the next time an idle counter might trigger, do not wait for the latest
|
|
||||||
idle counter to trigger.
|
|
||||||
This fixes a problem introduced with commit 1f4fb022 where an idle counter
|
|
||||||
expires unnoticed.
|
|
||||||
Index: xorg-server-1.6.3.901/Xext/sync.c
|
|
||||||
================================================================================
|
|
||||||
--- xorg-server-1.7.99/Xext/sync.c
|
|
||||||
+++ xorg-server-1.7.99/Xext/sync.c
|
|
||||||
@@ -94,7 +94,7 @@
|
|
||||||
#define XSyncCAAllTrigger \
|
|
||||||
(XSyncCACounter | XSyncCAValueType | XSyncCAValue | XSyncCATestType)
|
|
||||||
|
|
||||||
-static void SyncComputeBracketValues(SyncCounter *, Bool);
|
|
||||||
+static void SyncComputeBracketValues(SyncCounter *);
|
|
||||||
|
|
||||||
static void SyncInitServerTime(void);
|
|
||||||
|
|
||||||
@@ -167,7 +167,7 @@
|
|
||||||
}
|
|
||||||
|
|
||||||
if (IsSystemCounter(pTrigger->pCounter))
|
|
||||||
- SyncComputeBracketValues(pTrigger->pCounter, /*startOver*/ TRUE);
|
|
||||||
+ SyncComputeBracketValues(pTrigger->pCounter);
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
@@ -194,7 +194,7 @@
|
|
||||||
pTrigger->pCounter->pTriglist = pCur;
|
|
||||||
|
|
||||||
if (IsSystemCounter(pTrigger->pCounter))
|
|
||||||
- SyncComputeBracketValues(pTrigger->pCounter, /*startOver*/ TRUE);
|
|
||||||
+ SyncComputeBracketValues(pTrigger->pCounter);
|
|
||||||
|
|
||||||
return Success;
|
|
||||||
}
|
|
||||||
@@ -351,7 +351,7 @@
|
|
||||||
}
|
|
||||||
else if (IsSystemCounter(pCounter))
|
|
||||||
{
|
|
||||||
- SyncComputeBracketValues(pCounter, /*startOver*/ TRUE);
|
|
||||||
+ SyncComputeBracketValues(pCounter);
|
|
||||||
}
|
|
||||||
|
|
||||||
return Success;
|
|
||||||
@@ -640,13 +640,14 @@
|
|
||||||
for (ptl = pCounter->pTriglist; ptl; ptl = pnext)
|
|
||||||
{
|
|
||||||
pnext = ptl->next;
|
|
||||||
- if ((*ptl->pTrigger->CheckTrigger)(ptl->pTrigger, oldval))
|
|
||||||
+ if ((*ptl->pTrigger->CheckTrigger)(ptl->pTrigger, oldval)) {
|
|
||||||
(*ptl->pTrigger->TriggerFired)(ptl->pTrigger);
|
|
||||||
+ }
|
|
||||||
}
|
|
||||||
|
|
||||||
if (IsSystemCounter(pCounter))
|
|
||||||
{
|
|
||||||
- SyncComputeBracketValues(pCounter, /* startOver */ FALSE);
|
|
||||||
+ SyncComputeBracketValues(pCounter);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
@@ -913,7 +914,7 @@
|
|
||||||
}
|
|
||||||
|
|
||||||
static void
|
|
||||||
-SyncComputeBracketValues(SyncCounter *pCounter, Bool startOver)
|
|
||||||
+SyncComputeBracketValues(SyncCounter *pCounter)
|
|
||||||
{
|
|
||||||
SyncTriggerList *pCur;
|
|
||||||
SyncTrigger *pTrigger;
|
|
||||||
@@ -930,58 +931,53 @@
|
|
||||||
if (ct == XSyncCounterNeverChanges)
|
|
||||||
return;
|
|
||||||
|
|
||||||
- if (startOver)
|
|
||||||
- {
|
|
||||||
- XSyncMaxValue(&psci->bracket_greater);
|
|
||||||
- XSyncMinValue(&psci->bracket_less);
|
|
||||||
- }
|
|
||||||
+ XSyncMaxValue(&psci->bracket_greater);
|
|
||||||
+ XSyncMinValue(&psci->bracket_less);
|
|
||||||
+
|
|
||||||
|
|
||||||
for (pCur = pCounter->pTriglist; pCur; pCur = pCur->next)
|
|
||||||
{
|
|
||||||
pTrigger = pCur->pTrigger;
|
|
||||||
-
|
|
||||||
- if (pTrigger->test_type == XSyncPositiveComparison &&
|
|
||||||
- ct != XSyncCounterNeverIncreases)
|
|
||||||
- {
|
|
||||||
- if (XSyncValueLessThan(pCounter->value, pTrigger->test_value) &&
|
|
||||||
- XSyncValueLessThan(pTrigger->test_value,
|
|
||||||
- psci->bracket_greater))
|
|
||||||
- {
|
|
||||||
- psci->bracket_greater = pTrigger->test_value;
|
|
||||||
- pnewgtval = &psci->bracket_greater;
|
|
||||||
- }
|
|
||||||
- }
|
|
||||||
- else if (pTrigger->test_type == XSyncNegativeComparison &&
|
|
||||||
- ct != XSyncCounterNeverDecreases)
|
|
||||||
- {
|
|
||||||
- if (XSyncValueGreaterThan(pCounter->value, pTrigger->test_value) &&
|
|
||||||
- XSyncValueGreaterThan(pTrigger->test_value,
|
|
||||||
- psci->bracket_less))
|
|
||||||
- {
|
|
||||||
- psci->bracket_less = pTrigger->test_value;
|
|
||||||
- pnewltval = &psci->bracket_less;
|
|
||||||
- }
|
|
||||||
- }
|
|
||||||
- else if (pTrigger->test_type == XSyncNegativeTransition &&
|
|
||||||
- ct != XSyncCounterNeverIncreases)
|
|
||||||
- {
|
|
||||||
- if (XSyncValueGreaterThan(pCounter->value, pTrigger->test_value) &&
|
|
||||||
- XSyncValueGreaterThan(pTrigger->test_value, psci->bracket_less))
|
|
||||||
- {
|
|
||||||
+
|
|
||||||
+ if ( ( (pTrigger->test_type == XSyncPositiveComparison)
|
|
||||||
+ && ( XSyncValueGreaterOrEqual(pCounter->value, pTrigger->test_value)
|
|
||||||
+ || (ct != XSyncCounterNeverIncreases
|
|
||||||
+ && XSyncValueLessThan(pCounter->value, pTrigger->test_value))
|
|
||||||
+ )
|
|
||||||
+ )
|
|
||||||
+ || ((pTrigger->test_type == XSyncPositiveTransition)
|
|
||||||
+ && ( ( ct != XSyncCounterNeverDecreases
|
|
||||||
+ && XSyncValueGreaterOrEqual(pCounter->value, pTrigger->test_value))
|
|
||||||
+ || ( ct != XSyncCounterNeverIncreases
|
|
||||||
+ && XSyncValueLessThan(pCounter->value, pTrigger->test_value))
|
|
||||||
+ )
|
|
||||||
+ )
|
|
||||||
+ ) {
|
|
||||||
+ if (XSyncValueLessThan(pTrigger->test_value,
|
|
||||||
+ psci->bracket_greater)) {
|
|
||||||
+ psci->bracket_greater = pTrigger->test_value;
|
|
||||||
+ pnewgtval = &psci->bracket_greater;
|
|
||||||
+ }
|
|
||||||
+ } else if ( ( (pTrigger->test_type == XSyncNegativeComparison)
|
|
||||||
+ && ( XSyncValueLessOrEqual(pCounter->value, pTrigger->test_value)
|
|
||||||
+ || (ct != XSyncCounterNeverDecreases
|
|
||||||
+ && XSyncValueGreaterThan(pCounter->value, pTrigger->test_value))
|
|
||||||
+ )
|
|
||||||
+ )
|
|
||||||
+ || ((pTrigger->test_type == XSyncNegativeTransition)
|
|
||||||
+ && ( ( ct != XSyncCounterNeverDecreases
|
|
||||||
+ && XSyncValueGreaterOrEqual(pCounter->value, pTrigger->test_value))
|
|
||||||
+ || ( ct != XSyncCounterNeverIncreases
|
|
||||||
+ && XSyncValueLessThan(pCounter->value, pTrigger->test_value))
|
|
||||||
+ )
|
|
||||||
+ )
|
|
||||||
+ ) {
|
|
||||||
+ if (XSyncValueGreaterThan(pTrigger->test_value,
|
|
||||||
+ psci->bracket_less)) {
|
|
||||||
psci->bracket_less = pTrigger->test_value;
|
|
||||||
pnewltval = &psci->bracket_less;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
- else if (pTrigger->test_type == XSyncPositiveTransition &&
|
|
||||||
- ct != XSyncCounterNeverDecreases)
|
|
||||||
- {
|
|
||||||
- if (XSyncValueLessThan(pCounter->value, pTrigger->test_value) &&
|
|
||||||
- XSyncValueLessThan(pTrigger->test_value, psci->bracket_greater))
|
|
||||||
- {
|
|
||||||
- psci->bracket_greater = pTrigger->test_value;
|
|
||||||
- pnewgtval = &psci->bracket_greater;
|
|
||||||
- }
|
|
||||||
- }
|
|
||||||
} /* end for each trigger */
|
|
||||||
|
|
||||||
if (pnewgtval || pnewltval)
|
|
||||||
@@ -2277,11 +2273,17 @@
|
|
||||||
}
|
|
||||||
|
|
||||||
static void
|
|
||||||
-IdleTimeBlockHandler(pointer env, struct timeval **wt, pointer LastSelectMask)
|
|
||||||
-{
|
|
||||||
- XSyncValue idle, old_idle;
|
|
||||||
- SyncTriggerList *list = IdleTimeCounter->pTriglist;
|
|
||||||
- SyncTrigger *trig;
|
|
||||||
+IdleTimeBlockHandler (pointer env,
|
|
||||||
+ struct timeval **wt,
|
|
||||||
+ pointer LastSelectMask)
|
|
||||||
+{
|
|
||||||
+ XSyncValue idle, old_idle;
|
|
||||||
+ SyncTriggerList *list = IdleTimeCounter->pTriglist;
|
|
||||||
+ SyncTrigger *trig;
|
|
||||||
+ unsigned long timeout = -1;
|
|
||||||
+ XSyncValue value;
|
|
||||||
+ Bool overflow;
|
|
||||||
+
|
|
||||||
|
|
||||||
if (!pIdleTimeValueLess && !pIdleTimeValueGreater)
|
|
||||||
return;
|
|
||||||
@@ -2299,46 +2301,57 @@
|
|
||||||
* want level or edge trigger. Check the trigger list against the
|
|
||||||
* current idle time, and if any succeed, bomb out of select()
|
|
||||||
* immediately so we can reschedule.
|
|
||||||
+ * NOTE: we need to check trigger because the idle timer can go
|
|
||||||
+ * both ways (XSyncCounterUnrestricted) so that we need to set
|
|
||||||
+ * pIdleTimeValueLess in ComputeBracketValues() in the edge
|
|
||||||
+ * triggered case even if the idle timer is already less.
|
|
||||||
*/
|
|
||||||
-
|
|
||||||
- for (list = IdleTimeCounter->pTriglist; list; list = list->next) {
|
|
||||||
+ for (list = IdleTimeCounter->pTriglist; list; list = list->next) {
|
|
||||||
trig = list->pTrigger;
|
|
||||||
if (trig->CheckTrigger(trig, old_idle)) {
|
|
||||||
- AdjustWaitForDelay(wt, 0);
|
|
||||||
- break;
|
|
||||||
+ AdjustWaitForDelay(wt, 0);
|
|
||||||
+ IdleTimeCounter->value = old_idle; /* pop */
|
|
||||||
+ return;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
- else if (pIdleTimeValueGreater)
|
|
||||||
+ if (pIdleTimeValueGreater)
|
|
||||||
{
|
|
||||||
- /*
|
|
||||||
- * There's a threshold in the positive direction. If we've been
|
|
||||||
- * idle less than it, schedule a wakeup for sometime in the future.
|
|
||||||
- * If we've been idle more than it, and someone wants to know about
|
|
||||||
- * that level-triggered, schedule an immediate wakeup.
|
|
||||||
- */
|
|
||||||
- unsigned long timeout = -1;
|
|
||||||
-
|
|
||||||
- if (XSyncValueLessThan (idle, *pIdleTimeValueGreater)) {
|
|
||||||
- XSyncValue value;
|
|
||||||
- Bool overflow;
|
|
||||||
+ /*
|
|
||||||
+ * There's a threshold in the positive direction.
|
|
||||||
+ * If we've been idle more than it, and someone wants to know about
|
|
||||||
+ * that level-triggered, schedule an immediate wakeup.
|
|
||||||
+ * NOTE: we need to check trigger because the idle timer can go
|
|
||||||
+ * both ways (XSyncCounterUnrestricted) so that we need to set
|
|
||||||
+ * pIdleTimeValueGreater in ComputeBracketValues() in the edge
|
|
||||||
+ * triggered case even if the idle timer is already greater.
|
|
||||||
+ */
|
|
||||||
|
|
||||||
- XSyncValueSubtract (&value, *pIdleTimeValueGreater,
|
|
||||||
- idle, &overflow);
|
|
||||||
- timeout = min(timeout, XSyncValueLow32 (value));
|
|
||||||
- } else {
|
|
||||||
+ if (XSyncValueGreaterOrEqual (idle, *pIdleTimeValueGreater)) {
|
|
||||||
for (list = IdleTimeCounter->pTriglist; list; list = list->next) {
|
|
||||||
- trig = list->pTrigger;
|
|
||||||
+ trig = list->pTrigger;
|
|
||||||
if (trig->CheckTrigger(trig, old_idle)) {
|
|
||||||
- timeout = min(timeout, 0);
|
|
||||||
- break;
|
|
||||||
+ AdjustWaitForDelay (wt, 0);
|
|
||||||
+ IdleTimeCounter->value = old_idle; /* pop */
|
|
||||||
+ return;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
-
|
|
||||||
- AdjustWaitForDelay (wt, timeout);
|
|
||||||
}
|
|
||||||
|
|
||||||
+ /*
|
|
||||||
+ * If we don't have to wake up immediately we schedule a wakeup for the
|
|
||||||
+ * next time a trigger expires.
|
|
||||||
+ */
|
|
||||||
+ for (list = IdleTimeCounter->pTriglist; list; list = list->next) {
|
|
||||||
+ trig = list->pTrigger;
|
|
||||||
+ if (XSyncValueLessThan (idle, trig->test_value)) {
|
|
||||||
+ XSyncValueSubtract (&value, trig->test_value,
|
|
||||||
+ idle, &overflow);
|
|
||||||
+ timeout = min(timeout,XSyncValueLow32 (value));
|
|
||||||
+ }
|
|
||||||
+ }
|
|
||||||
+ AdjustWaitForDelay (wt, timeout);
|
|
||||||
IdleTimeCounter->value = old_idle; /* pop */
|
|
||||||
}
|
|
||||||
|
|
14
fpic.diff
14
fpic.diff
@ -1,13 +1,11 @@
|
|||||||
Index: 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
|
||||||
--- hw/xfree86/parser/Makefile.am
|
|
||||||
+++ hw/xfree86/parser/Makefile.am
|
|
||||||
@@ -34,7 +34,7 @@
|
@@ -34,7 +34,7 @@
|
||||||
$(INTERNAL_SOURCES)
|
$(INTERNAL_SOURCES)
|
||||||
libxf86config_a_CFLAGS = $(AM_CFLAGS)
|
libxf86config_a_CFLAGS = $(AM_CFLAGS)
|
||||||
|
|
||||||
-AM_CFLAGS = $(DIX_CFLAGS) $(XORG_CFLAGS)
|
-AM_CFLAGS = $(DIX_CFLAGS) $(XORG_CFLAGS) \
|
||||||
+AM_CFLAGS = $(DIX_CFLAGS) $(XORG_CFLAGS) -fPIC
|
+AM_CFLAGS = $(DIX_CFLAGS) $(XORG_CFLAGS) -fPIC \
|
||||||
|
-DSYSCONFDIR=\"$(sysconfdir)\" \
|
||||||
|
-DDATADIR=\"$(datadir)\"
|
||||||
|
|
||||||
EXTRA_DIST = \
|
|
||||||
Configint.h \
|
|
||||||
|
@ -1,13 +0,0 @@
|
|||||||
Index: xorg-server-1.8.0/hw/xfree86/modes/xf86Cursors.c
|
|
||||||
===================================================================
|
|
||||||
--- xorg-server-1.8.0.orig/hw/xfree86/modes/xf86Cursors.c
|
|
||||||
+++ xorg-server-1.8.0/hw/xfree86/modes/xf86Cursors.c
|
|
||||||
@@ -611,7 +611,7 @@ xf86_reload_cursors (ScreenPtr screen)
|
|
||||||
cursor_screen_priv = dixLookupPrivate(&screen->devPrivates,
|
|
||||||
xf86CursorScreenKey);
|
|
||||||
/* return if HW cursor is inactive, to avoid displaying two cursors */
|
|
||||||
- if (!cursor_screen_priv->isUp)
|
|
||||||
+ if (!cursor_screen_priv || !cursor_screen_priv->isUp)
|
|
||||||
return;
|
|
||||||
|
|
||||||
scrn = xf86Screens[screen->myNum];
|
|
15
vbe-bufferoverflow.diff
Normal file
15
vbe-bufferoverflow.diff
Normal file
@ -0,0 +1,15 @@
|
|||||||
|
--- 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;
|
||||||
|
}
|
127
xorg-backtrace
Normal file
127
xorg-backtrace
Normal file
@ -0,0 +1,127 @@
|
|||||||
|
#!/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;
|
||||||
|
|
@ -1,7 +1,7 @@
|
|||||||
Index: xorg-server-1.6.3.901/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/xf86AutoConfig.c
|
--- xorg-server-1.7.99/hw/xfree86/common/xf86pciBus.c
|
||||||
+++ xorg-server-1.7.99/hw/xfree86/common/xf86AutoConfig.c
|
+++ xorg-server-1.7.99/hw/xfree86/common/xf86pciBus.c
|
||||||
@@ -186,12 +186,14 @@
|
@@ -186,12 +186,14 @@
|
||||||
case 0x3d3d: driverList[0] = "glint"; break;
|
case 0x3d3d: driverList[0] = "glint"; break;
|
||||||
case 0x105d: driverList[0] = "i128"; break;
|
case 0x105d: driverList[0] = "i128"; break;
|
||||||
|
@ -1,45 +0,0 @@
|
|||||||
--- config/10-evdev.conf 2010/04/08 09:38:26 1.1
|
|
||||||
+++ config/10-evdev.conf 2010/04/08 09:38:31
|
|
||||||
@@ -1,8 +1,40 @@
|
|
||||||
#
|
|
||||||
# Catch-all evdev loader for udev-based systems
|
|
||||||
-#
|
|
||||||
+# We don't simply match on any device since that also adds accelerometers
|
|
||||||
+# and other devices that we don't really want to use. The list below
|
|
||||||
+# matches everything but joysticks.
|
|
||||||
+
|
|
||||||
Section "InputClass"
|
|
||||||
- Identifier "evdev-catchall"
|
|
||||||
+ Identifier "evdev pointer catchall"
|
|
||||||
+ MatchIsPointer "on"
|
|
||||||
+ MatchDevicePath "/dev/input/event*"
|
|
||||||
Driver "evdev"
|
|
||||||
+EndSection
|
|
||||||
+
|
|
||||||
+Section "InputClass"
|
|
||||||
+ Identifier "evdev keyboard catchall"
|
|
||||||
+ MatchIsKeyboard "on"
|
|
||||||
MatchDevicePath "/dev/input/event*"
|
|
||||||
+ Driver "evdev"
|
|
||||||
+EndSection
|
|
||||||
+
|
|
||||||
+Section "InputClass"
|
|
||||||
+ Identifier "evdev touchpad catchall"
|
|
||||||
+ MatchIsTouchpad "on"
|
|
||||||
+ MatchDevicePath "/dev/input/event*"
|
|
||||||
+ Driver "evdev"
|
|
||||||
+EndSection
|
|
||||||
+
|
|
||||||
+Section "InputClass"
|
|
||||||
+ Identifier "evdev tablet catchall"
|
|
||||||
+ MatchIsTablet "on"
|
|
||||||
+ MatchDevicePath "/dev/input/event*"
|
|
||||||
+ Driver "evdev"
|
|
||||||
+EndSection
|
|
||||||
+
|
|
||||||
+Section "InputClass"
|
|
||||||
+ Identifier "evdev touchscreen catchall"
|
|
||||||
+ MatchIsTouchscreen "on"
|
|
||||||
+ MatchDevicePath "/dev/input/event*"
|
|
||||||
+ Driver "evdev"
|
|
||||||
EndSection
|
|
@ -1,10 +1,10 @@
|
|||||||
--- config/Makefile.am.orig 2010-04-02 11:56:16.000000000 +0200
|
--- config/Makefile.am.orig 2010-06-11 04:14:57.000000000 +0200
|
||||||
+++ config/Makefile.am 2010-04-02 11:56:49.000000000 +0200
|
+++ config/Makefile.am 2010-08-23 15:47:19.000000000 +0200
|
||||||
@@ -9,7 +9,7 @@
|
@@ -9,7 +9,7 @@
|
||||||
libconfig_la_SOURCES += udev.c
|
libconfig_la_SOURCES += udev.c
|
||||||
libconfig_la_LIBADD = $(UDEV_LIBS)
|
libconfig_la_LIBADD = $(UDEV_LIBS)
|
||||||
|
|
||||||
-xorgconfddir = $(prefix)/etc/X11/$(XF86CONFIGDIR)
|
-xorgconfddir = $(datadir)/X11/$(XF86CONFIGDIR)
|
||||||
+xorgconfddir = $(sysconfdir)/X11/$(XF86CONFIGDIR)
|
+xorgconfddir = $(sysconfdir)/X11/$(XF86CONFIGDIR)
|
||||||
xorgconfd_DATA = 10-evdev.conf
|
xorgconfd_DATA = 10-evdev.conf
|
||||||
|
|
||||||
|
@ -1,3 +0,0 @@
|
|||||||
version https://git-lfs.github.com/spec/v1
|
|
||||||
oid sha256:423a8092e28affb83aa736695408e01fd4641040727f34ed6bcfae9c06018b77
|
|
||||||
size 5097035
|
|
3
xorg-server-1.9.0.tar.bz2
Normal file
3
xorg-server-1.9.0.tar.bz2
Normal file
@ -0,0 +1,3 @@
|
|||||||
|
version https://git-lfs.github.com/spec/v1
|
||||||
|
oid sha256:1064f04c648285af9960e9c8e9cd5b8efabd58113c229e3af2408da39e829ad3
|
||||||
|
size 5345092
|
@ -1,32 +0,0 @@
|
|||||||
commit 21ed660f30a3f96c787ab00a16499e0fb034b2ad
|
|
||||||
Author: Chris Humbert <freedesktop@mahadri.com>
|
|
||||||
Date: Fri May 7 17:02:43 2010 +1000
|
|
||||||
|
|
||||||
dix: make DeviceEvent coordinates signed for Xinerama. #24986
|
|
||||||
|
|
||||||
With Xinerama enabled, event coordinates are relative to Screen 0, so
|
|
||||||
they can be negative. The new DeviceEvent's coordinates are of type
|
|
||||||
uint16_t, making screens above and to the left of Screen 0 unusable.
|
|
||||||
|
|
||||||
X.Org Bug 24986 <https://bugs.freedesktop.org/show_bug.cgi?id=24986>
|
|
||||||
|
|
||||||
Signed-off-by: Chris Humbert <freedesktop@mahadri.com>
|
|
||||||
Reviewed-by: Peter Hutterer <peter.hutterer@who-t.net>
|
|
||||||
Signed-off-by: Keith Packard <keithp@keithp.com>
|
|
||||||
|
|
||||||
diff --git a/include/eventstr.h b/include/eventstr.h
|
|
||||||
index 79685c1..433227e 100644
|
|
||||||
--- a/include/eventstr.h
|
|
||||||
+++ b/include/eventstr.h
|
|
||||||
@@ -91,9 +91,9 @@ struct _DeviceEvent
|
|
||||||
uint32_t button; /**< Button number */
|
|
||||||
uint32_t key; /**< Key code */
|
|
||||||
} detail;
|
|
||||||
- uint16_t root_x; /**< Pos relative to root window in integral data */
|
|
||||||
+ int16_t root_x; /**< Pos relative to root window in integral data */
|
|
||||||
float root_x_frac; /**< Pos relative to root window in frac part */
|
|
||||||
- uint16_t root_y; /**< Pos relative to root window in integral part */
|
|
||||||
+ int16_t root_y; /**< Pos relative to root window in integral part */
|
|
||||||
float root_y_frac; /**< Pos relative to root window in frac part */
|
|
||||||
uint8_t buttons[(MAX_BUTTONS + 7)/8]; /**< Button mask */
|
|
||||||
struct {
|
|
@ -1,33 +1,5 @@
|
|||||||
Index: xorg-server-1.6.3/hw/xfree86/os-support/linux/lnx_init.c
|
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
|
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
|
--- xorg-server-1.6.3.orig/hw/xfree86/os-support/linux/lnx_video.c
|
||||||
@ -50,3 +22,31 @@ Index: xorg-server-1.6.3/hw/xfree86/os-support/linux/lnx_video.c
|
|||||||
|
|
||||||
if (ExtendedEnabled)
|
if (ExtendedEnabled)
|
||||||
return TRUE;
|
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");
|
||||||
|
}
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
--- hw/xfree86/parser/InputClass.c
|
--- hw/xfree86/parser/InputClass.c.orig 2010-08-13 07:53:48.000000000 +0200
|
||||||
+++ hw/xfree86/parser/InputClass.c
|
+++ hw/xfree86/parser/InputClass.c 2010-08-23 15:55:16.000000000 +0200
|
||||||
@@ -61,6 +61,47 @@
|
@@ -65,6 +65,47 @@ xf86ConfigSymTabRec InputClassTab[] =
|
||||||
|
|
||||||
#define TOKEN_SEP "|"
|
#define TOKEN_SEP "|"
|
||||||
|
|
||||||
@ -45,33 +45,64 @@
|
|||||||
+}
|
+}
|
||||||
+
|
+
|
||||||
+
|
+
|
||||||
XF86ConfInputClassPtr
|
static void
|
||||||
xf86parseInputClassSection(void)
|
add_group_entry(struct list *head, char **values)
|
||||||
{
|
{
|
||||||
@@ -96,22 +137,22 @@
|
@@ -125,49 +166,49 @@ xf86parseInputClassSection(void)
|
||||||
case MATCH_PRODUCT:
|
|
||||||
if (xf86getSubToken(&(ptr->comment)) != STRING)
|
if (xf86getSubToken(&(ptr->comment)) != STRING)
|
||||||
Error(QUOTE_MSG, "MatchProduct");
|
Error(QUOTE_MSG, "MatchProduct");
|
||||||
- ptr->match_product = xstrtokenize(val.str, TOKEN_SEP);
|
add_group_entry(&ptr->match_product,
|
||||||
+ ptr->match_product = m_xstrtokenize(val.str, TOKEN_SEP);
|
- xstrtokenize(val.str, TOKEN_SEP));
|
||||||
|
+ m_xstrtokenize(val.str, TOKEN_SEP));
|
||||||
break;
|
break;
|
||||||
case MATCH_VENDOR:
|
case MATCH_VENDOR:
|
||||||
if (xf86getSubToken(&(ptr->comment)) != STRING)
|
if (xf86getSubToken(&(ptr->comment)) != STRING)
|
||||||
Error(QUOTE_MSG, "MatchVendor");
|
Error(QUOTE_MSG, "MatchVendor");
|
||||||
- ptr->match_vendor = xstrtokenize(val.str, TOKEN_SEP);
|
add_group_entry(&ptr->match_vendor,
|
||||||
+ ptr->match_vendor = m_xstrtokenize(val.str, TOKEN_SEP);
|
- xstrtokenize(val.str, TOKEN_SEP));
|
||||||
|
+ m_xstrtokenize(val.str, TOKEN_SEP));
|
||||||
break;
|
break;
|
||||||
case MATCH_DEVICE_PATH:
|
case MATCH_DEVICE_PATH:
|
||||||
if (xf86getSubToken(&(ptr->comment)) != STRING)
|
if (xf86getSubToken(&(ptr->comment)) != STRING)
|
||||||
Error(QUOTE_MSG, "MatchDevicePath");
|
Error(QUOTE_MSG, "MatchDevicePath");
|
||||||
- ptr->match_device = xstrtokenize(val.str, TOKEN_SEP);
|
add_group_entry(&ptr->match_device,
|
||||||
+ ptr->match_device = m_xstrtokenize(val.str, TOKEN_SEP);
|
- 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;
|
break;
|
||||||
case MATCH_TAG:
|
case MATCH_TAG:
|
||||||
if (xf86getSubToken(&(ptr->comment)) != STRING)
|
if (xf86getSubToken(&(ptr->comment)) != STRING)
|
||||||
Error(QUOTE_MSG, "MatchTag");
|
Error(QUOTE_MSG, "MatchTag");
|
||||||
- ptr->match_tag = xstrtokenize(val.str, TOKEN_SEP);
|
add_group_entry(&ptr->match_tag,
|
||||||
+ ptr->match_tag = m_xstrtokenize(val.str, TOKEN_SEP);
|
- xstrtokenize(val.str, TOKEN_SEP));
|
||||||
|
+ m_xstrtokenize(val.str, TOKEN_SEP));
|
||||||
break;
|
break;
|
||||||
case MATCH_IS_KEYBOARD:
|
case MATCH_IS_KEYBOARD:
|
||||||
if (xf86getSubToken(&(ptr->comment)) != STRING)
|
if (xf86getSubToken(&(ptr->comment)) != STRING)
|
||||||
|
@ -1,90 +0,0 @@
|
|||||||
diff --git a/dix/events.c b/dix/events.c
|
|
||||||
index ae9847c..e1c3d0a 100644
|
|
||||||
--- a/dix/events.c
|
|
||||||
+++ b/dix/events.c
|
|
||||||
@@ -3420,7 +3420,6 @@ CheckPassiveGrabsOnWindow(
|
|
||||||
{
|
|
||||||
DeviceIntPtr gdev;
|
|
||||||
XkbSrvInfoPtr xkbi = NULL;
|
|
||||||
- Mask mask = 0;
|
|
||||||
|
|
||||||
gdev= grab->modifierDevice;
|
|
||||||
if (grab->grabtype == GRABTYPE_CORE)
|
|
||||||
@@ -3535,9 +3534,6 @@ CheckPassiveGrabsOnWindow(
|
|
||||||
}
|
|
||||||
xE = &core;
|
|
||||||
count = 1;
|
|
||||||
- mask = grab->eventMask;
|
|
||||||
- if (grab->ownerEvents)
|
|
||||||
- mask |= pWin->eventMask;
|
|
||||||
} else if (match & XI2_MATCH)
|
|
||||||
{
|
|
||||||
rc = EventToXI2((InternalEvent*)event, &xE);
|
|
||||||
@@ -3549,34 +3545,6 @@ CheckPassiveGrabsOnWindow(
|
|
||||||
continue;
|
|
||||||
}
|
|
||||||
count = 1;
|
|
||||||
-
|
|
||||||
- /* FIXME: EventToXI2 returns NULL for enter events, so
|
|
||||||
- * dereferencing the event is bad. Internal event types are
|
|
||||||
- * aligned with core events, so the else clause is valid.
|
|
||||||
- * long-term we should use internal events for enter/focus
|
|
||||||
- * as well */
|
|
||||||
- if (xE)
|
|
||||||
- mask = grab->xi2mask[device->id][((xGenericEvent*)xE)->evtype/8];
|
|
||||||
- else if (event->type == XI_Enter || event->type == XI_FocusIn)
|
|
||||||
- mask = grab->xi2mask[device->id][event->type/8];
|
|
||||||
-
|
|
||||||
- if (grab->ownerEvents && wOtherInputMasks(grab->window))
|
|
||||||
- {
|
|
||||||
- InputClientsPtr icp =
|
|
||||||
- wOtherInputMasks(grab->window)->inputClients;
|
|
||||||
-
|
|
||||||
- while(icp)
|
|
||||||
- {
|
|
||||||
- if (rClient(icp) == rClient(grab))
|
|
||||||
- {
|
|
||||||
- int evtype = (xE) ? ((xGenericEvent*)xE)->evtype : event->type;
|
|
||||||
- mask |= icp->xi2mask[device->id][evtype/8];
|
|
||||||
- break;
|
|
||||||
- }
|
|
||||||
-
|
|
||||||
- icp = icp->next;
|
|
||||||
- }
|
|
||||||
- }
|
|
||||||
} else
|
|
||||||
{
|
|
||||||
rc = EventToXI((InternalEvent*)event, &xE, &count);
|
|
||||||
@@ -3587,23 +3555,6 @@ CheckPassiveGrabsOnWindow(
|
|
||||||
"(%d, %d).\n", device->name, event->type, rc);
|
|
||||||
continue;
|
|
||||||
}
|
|
||||||
- mask = grab->eventMask;
|
|
||||||
- if (grab->ownerEvents && wOtherInputMasks(grab->window))
|
|
||||||
- {
|
|
||||||
- InputClientsPtr icp =
|
|
||||||
- wOtherInputMasks(grab->window)->inputClients;
|
|
||||||
-
|
|
||||||
- while(icp)
|
|
||||||
- {
|
|
||||||
- if (rClient(icp) == rClient(grab))
|
|
||||||
- {
|
|
||||||
- mask |= icp->mask[device->id];
|
|
||||||
- break;
|
|
||||||
- }
|
|
||||||
-
|
|
||||||
- icp = icp->next;
|
|
||||||
- }
|
|
||||||
- }
|
|
||||||
}
|
|
||||||
|
|
||||||
(*grabinfo->ActivateGrab)(device, grab, currentTime, TRUE);
|
|
||||||
@@ -3612,7 +3563,8 @@ CheckPassiveGrabsOnWindow(
|
|
||||||
{
|
|
||||||
FixUpEventFromWindow(device, xE, grab->window, None, TRUE);
|
|
||||||
|
|
||||||
- TryClientEvents(rClient(grab), device, xE, count, mask,
|
|
||||||
+ TryClientEvents(rClient(grab), device, xE, count,
|
|
||||||
+ GetEventFilter(device, xE),
|
|
||||||
GetEventFilter(device, xE), grab);
|
|
||||||
}
|
|
@ -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
|
||||||
+++ xorg-server-1.7.99/Makefile.am
|
+++ xorg-server-1.7.99/Makefile.am
|
||||||
@@ -17,6 +17,10 @@
|
@@ -17,6 +17,10 @@
|
||||||
@ -21,9 +19,9 @@ Index: xorg-server-1.6.3.901/Makefile.am
|
|||||||
exa \
|
exa \
|
||||||
config \
|
config \
|
||||||
hw \
|
hw \
|
||||||
--- xorg-server-1.7.99/configure.ac
|
--- xorg-server-1.9.0/configure.ac.orig 2010-08-21 02:30:34.000000000 +0200
|
||||||
+++ xorg-server-1.7.99/configure.ac
|
+++ xorg-server-1.9.0/configure.ac 2010-08-23 14:11:04.000000000 +0200
|
||||||
@@ -634,6 +634,8 @@
|
@@ -649,6 +649,8 @@
|
||||||
|
|
||||||
dnl DDXes.
|
dnl DDXes.
|
||||||
AC_ARG_ENABLE(xorg, AS_HELP_STRING([--enable-xorg], [Build Xorg server (default: auto)]), [XORG=$enableval], [XORG=auto])
|
AC_ARG_ENABLE(xorg, AS_HELP_STRING([--enable-xorg], [Build Xorg server (default: auto)]), [XORG=$enableval], [XORG=auto])
|
||||||
@ -32,7 +30,7 @@ Index: xorg-server-1.6.3.901/Makefile.am
|
|||||||
AC_ARG_ENABLE(dmx, AS_HELP_STRING([--enable-dmx], [Build DMX server (default: auto)]), [DMX=$enableval], [DMX=auto])
|
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(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])
|
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(VBE, test "x$VBE" = xyes)
|
||||||
AM_CONDITIONAL(INT10MODULE, test "x$INT10MODULE" = xyes)
|
AM_CONDITIONAL(INT10MODULE, test "x$INT10MODULE" = xyes)
|
||||||
|
|
||||||
@ -53,7 +51,7 @@ Index: xorg-server-1.6.3.901/Makefile.am
|
|||||||
AC_DEFINE(SHAPE, 1, [Support SHAPE extension])
|
AC_DEFINE(SHAPE, 1, [Support SHAPE extension])
|
||||||
|
|
||||||
AC_DEFINE_DIR(XKB_BASE_DIRECTORY, XKBPATH, [Path to XKB data])
|
AC_DEFINE_DIR(XKB_BASE_DIRECTORY, XKBPATH, [Path to XKB data])
|
||||||
@@ -1470,6 +1486,40 @@
|
@@ -1500,6 +1516,40 @@
|
||||||
dnl DDX section.
|
dnl DDX section.
|
||||||
dnl ---------------------------------------------------------------------------
|
dnl ---------------------------------------------------------------------------
|
||||||
|
|
||||||
@ -94,7 +92,7 @@ Index: xorg-server-1.6.3.901/Makefile.am
|
|||||||
dnl Xvfb DDX
|
dnl Xvfb DDX
|
||||||
|
|
||||||
AC_MSG_CHECKING([whether to build Xvfb DDX])
|
AC_MSG_CHECKING([whether to build Xvfb DDX])
|
||||||
@@ -2160,6 +2210,7 @@
|
@@ -2202,6 +2252,7 @@
|
||||||
Xi/Makefile
|
Xi/Makefile
|
||||||
xfixes/Makefile
|
xfixes/Makefile
|
||||||
exa/Makefile
|
exa/Makefile
|
||||||
@ -102,7 +100,7 @@ Index: xorg-server-1.6.3.901/Makefile.am
|
|||||||
hw/Makefile
|
hw/Makefile
|
||||||
hw/xfree86/Makefile
|
hw/xfree86/Makefile
|
||||||
hw/xfree86/common/Makefile
|
hw/xfree86/common/Makefile
|
||||||
@@ -2193,6 +2244,7 @@
|
@@ -2235,6 +2286,7 @@
|
||||||
hw/xfree86/shadowfb/Makefile
|
hw/xfree86/shadowfb/Makefile
|
||||||
hw/xfree86/vbe/Makefile
|
hw/xfree86/vbe/Makefile
|
||||||
hw/xfree86/vgahw/Makefile
|
hw/xfree86/vgahw/Makefile
|
||||||
@ -110,7 +108,7 @@ Index: xorg-server-1.6.3.901/Makefile.am
|
|||||||
hw/xfree86/x86emu/Makefile
|
hw/xfree86/x86emu/Makefile
|
||||||
hw/xfree86/xaa/Makefile
|
hw/xfree86/xaa/Makefile
|
||||||
hw/xfree86/xf8_16bpp/Makefile
|
hw/xfree86/xf8_16bpp/Makefile
|
||||||
@@ -2204,8 +2256,10 @@
|
@@ -2246,8 +2298,10 @@
|
||||||
hw/dmx/examples/Makefile
|
hw/dmx/examples/Makefile
|
||||||
hw/dmx/input/Makefile
|
hw/dmx/input/Makefile
|
||||||
hw/dmx/glxProxy/Makefile
|
hw/dmx/glxProxy/Makefile
|
||||||
@ -120,7 +118,9 @@ Index: xorg-server-1.6.3.901/Makefile.am
|
|||||||
+hw/vnc/Makefile
|
+hw/vnc/Makefile
|
||||||
hw/xnest/Makefile
|
hw/xnest/Makefile
|
||||||
hw/xwin/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
|
||||||
+++ xorg-server-1.7.99/hw/Makefile.am
|
+++ xorg-server-1.7.99/hw/Makefile.am
|
||||||
@@ -22,6 +22,10 @@
|
@@ -22,6 +22,10 @@
|
||||||
|
File diff suppressed because it is too large
Load Diff
@ -1,3 +1,47 @@
|
|||||||
|
-------------------------------------------------------------------
|
||||||
|
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)
|
||||||
|
|
||||||
-------------------------------------------------------------------
|
-------------------------------------------------------------------
|
||||||
Thu Aug 19 15:53:11 CEST 2010 - max@suse.de
|
Thu Aug 19 15:53:11 CEST 2010 - max@suse.de
|
||||||
|
|
||||||
|
@ -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.
|
# Copyright (c) 2010 SUSE LINUX Products GmbH, Nuernberg, Germany.
|
||||||
#
|
#
|
||||||
@ -20,8 +20,8 @@
|
|||||||
%define moblin 0
|
%define moblin 0
|
||||||
|
|
||||||
Name: xorg-x11-server
|
Name: xorg-x11-server
|
||||||
%define dirsuffix 1.8.0
|
%define dirsuffix 1.9.0
|
||||||
%define vnc 1
|
%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
|
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)
|
### udev support (broken on openSUSE 11.2, see also bnc #589997)
|
||||||
%if %suse_version > 1120
|
%if %suse_version > 1120
|
||||||
@ -32,7 +32,7 @@ BuildRequires: libjpeg-devel
|
|||||||
%endif
|
%endif
|
||||||
Url: http://xorg.freedesktop.org/
|
Url: http://xorg.freedesktop.org/
|
||||||
Version: 7.5_%{dirsuffix}
|
Version: 7.5_%{dirsuffix}
|
||||||
Release: 16
|
Release: 1
|
||||||
License: GPLv2+ ; MIT License (or similar)
|
License: GPLv2+ ; MIT License (or similar)
|
||||||
BuildRoot: %{_tmppath}/%{name}-%{version}-build
|
BuildRoot: %{_tmppath}/%{name}-%{version}-build
|
||||||
Group: System/X11/Servers/XF86_4
|
Group: System/X11/Servers/XF86_4
|
||||||
@ -41,8 +41,8 @@ PreReq: %fillup_prereq
|
|||||||
%endif
|
%endif
|
||||||
Requires: pkgconfig xorg-x11-fonts-core xorg-x11
|
Requires: pkgconfig xorg-x11-fonts-core xorg-x11
|
||||||
%ifnarch s390 s390x
|
%ifnarch s390 s390x
|
||||||
Provides: VIDEO_ABI_VERSION = 7
|
Provides: VIDEO_ABI_VERSION = 8
|
||||||
Provides: INPUT_ABI_VERSION = 9
|
Provides: INPUT_ABI_VERSION = 11
|
||||||
Requires: libpixman-1-0 >= 0.15.2
|
Requires: libpixman-1-0 >= 0.15.2
|
||||||
%endif
|
%endif
|
||||||
Provides: xorg-x11-server-glx
|
Provides: xorg-x11-server-glx
|
||||||
@ -54,6 +54,7 @@ Source3: README.updates
|
|||||||
Source4: xorgcfg.tar.bz2
|
Source4: xorgcfg.tar.bz2
|
||||||
Source5: modprobe.nvidia
|
Source5: modprobe.nvidia
|
||||||
Source7: xorg-docs-1.4.tar.bz2
|
Source7: xorg-docs-1.4.tar.bz2
|
||||||
|
Source8: xorg-backtrace
|
||||||
Patch1: fpic.diff
|
Patch1: fpic.diff
|
||||||
Patch2: p_default-module-path.diff
|
Patch2: p_default-module-path.diff
|
||||||
Patch6: pu_fixes.diff
|
Patch6: pu_fixes.diff
|
||||||
@ -93,7 +94,6 @@ Patch125: 0001-Xinput-Catch-missing-configlayout-when-deleting-dev.patch
|
|||||||
Patch127: dpms_screensaver.diff
|
Patch127: dpms_screensaver.diff
|
||||||
Patch128: pci-legacy-mem-fallback.diff
|
Patch128: pci-legacy-mem-fallback.diff
|
||||||
Patch129: bug474071-fix1.diff
|
Patch129: bug474071-fix1.diff
|
||||||
Patch132: fixed-SYNC-extension-trigger-BlockHandler-test.diff
|
|
||||||
Patch143: autoconfig_fallback_fbdev_first.diff
|
Patch143: autoconfig_fallback_fbdev_first.diff
|
||||||
Patch145: driver-autoconfig.diff
|
Patch145: driver-autoconfig.diff
|
||||||
Patch147: xserver-1.6.1-nouveau.patch
|
Patch147: xserver-1.6.1-nouveau.patch
|
||||||
@ -109,17 +109,13 @@ Patch204: missing_font_paths.diff
|
|||||||
Patch205: xorg-server-1.8.0.diff
|
Patch205: xorg-server-1.8.0.diff
|
||||||
Patch206: fix_fglrx_screendepth_issue.patch
|
Patch206: fix_fglrx_screendepth_issue.patch
|
||||||
Patch207: xorg-server-option_libxf86config.diff
|
Patch207: xorg-server-option_libxf86config.diff
|
||||||
Patch208: xorg-evdev-conf.diff
|
|
||||||
Patch209: sw_cursor_on_randr.patch
|
|
||||||
Patch210: pio_ia64.diff
|
Patch210: pio_ia64.diff
|
||||||
Patch211: 0001-Prevent-XSync-Alarms-from-senslessly-calling-CheckTr.patch
|
Patch211: 0001-Prevent-XSync-Alarms-from-senslessly-calling-CheckTr.patch
|
||||||
Patch212: dmx-silly.patch
|
|
||||||
Patch213: xorg-server-xdmcp.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
|
Patch217: CVE-2010-2240-address_space_limit.patch
|
||||||
Patch218: CVE-2010-2240-tree_depth_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
|
%if %moblin
|
||||||
Patch300: moblin-use_preferred_mode_for_all_outputs.diff
|
Patch300: moblin-use_preferred_mode_for_all_outputs.diff
|
||||||
%endif
|
%endif
|
||||||
@ -223,7 +219,6 @@ popd
|
|||||||
pushd hw/xfree86/os-support/bus
|
pushd hw/xfree86/os-support/bus
|
||||||
%patch129 -p0
|
%patch129 -p0
|
||||||
popd
|
popd
|
||||||
%patch132 -p1
|
|
||||||
%patch143 -p0
|
%patch143 -p0
|
||||||
%patch145 -p0
|
%patch145 -p0
|
||||||
%patch147 -p1
|
%patch147 -p1
|
||||||
@ -239,17 +234,13 @@ popd
|
|||||||
%patch205 -p0
|
%patch205 -p0
|
||||||
%patch206 -p0
|
%patch206 -p0
|
||||||
%patch207 -p0
|
%patch207 -p0
|
||||||
%patch208 -p0
|
|
||||||
%patch209 -p1
|
|
||||||
%patch210 -p1
|
%patch210 -p1
|
||||||
%patch211 -p1
|
%patch211 -p1
|
||||||
%patch212 -p1
|
|
||||||
%patch213 -p1
|
%patch213 -p1
|
||||||
%patch214 -p1
|
|
||||||
%patch215 -p1
|
|
||||||
%patch216 -p1
|
|
||||||
%patch217 -p1
|
%patch217 -p1
|
||||||
%patch218 -p1
|
%patch218 -p1
|
||||||
|
%patch219 -p1
|
||||||
|
%patch220 -p1
|
||||||
%if %moblin
|
%if %moblin
|
||||||
%patch300 -p1
|
%patch300 -p1
|
||||||
%endif
|
%endif
|
||||||
@ -342,6 +333,7 @@ mkdir -p %buildroot/var/adm/fillup-templates
|
|||||||
install -m 644 %_sourcedir/sysconfig.displaymanager.template \
|
install -m 644 %_sourcedir/sysconfig.displaymanager.template \
|
||||||
%buildroot/var/adm/fillup-templates/sysconfig.displaymanager-%name
|
%buildroot/var/adm/fillup-templates/sysconfig.displaymanager-%name
|
||||||
%endif
|
%endif
|
||||||
|
install -m 755 $RPM_SOURCE_DIR/xorg-backtrace $RPM_BUILD_ROOT/usr/bin/xorg-backtrace
|
||||||
|
|
||||||
%clean
|
%clean
|
||||||
rm -rf "$RPM_BUILD_ROOT"
|
rm -rf "$RPM_BUILD_ROOT"
|
||||||
@ -410,6 +402,7 @@ exit 0
|
|||||||
/var/adm/fillup-templates/sysconfig.displaymanager-%name
|
/var/adm/fillup-templates/sysconfig.displaymanager-%name
|
||||||
/var/lib/X11/X
|
/var/lib/X11/X
|
||||||
%endif
|
%endif
|
||||||
|
/usr/bin/xorg-backtrace
|
||||||
|
|
||||||
%files extra
|
%files extra
|
||||||
%defattr(-,root,root)
|
%defattr(-,root,root)
|
||||||
|
@ -26,7 +26,7 @@ index 21e44d1..30b820c 100644
|
|||||||
}
|
}
|
||||||
@@ -1184,7 +1187,7 @@ __glXDRIscreenProbe(ScreenPtr pScreen)
|
@@ -1184,7 +1187,7 @@ __glXDRIscreenProbe(ScreenPtr pScreen)
|
||||||
|
|
||||||
xfree(screen);
|
free(screen);
|
||||||
|
|
||||||
- LogMessage(X_ERROR, "AIGLX: reverting to software rendering\n");
|
- LogMessage(X_ERROR, "AIGLX: reverting to software rendering\n");
|
||||||
+ LogMessage(from, "AIGLX: reverting to software rendering\n");
|
+ LogMessage(from, "AIGLX: reverting to software rendering\n");
|
||||||
@ -43,7 +43,7 @@ index 0f998de..a244809 100644
|
|||||||
int i;
|
int i;
|
||||||
+ int from = X_ERROR;
|
+ int from = X_ERROR;
|
||||||
|
|
||||||
screen = xcalloc(1, sizeof *screen);
|
screen = calloc(1, sizeof *screen);
|
||||||
if (screen == NULL)
|
if (screen == NULL)
|
||||||
@@ -702,7 +703,9 @@ __glXDRIscreenProbe(ScreenPtr pScreen)
|
@@ -702,7 +703,9 @@ __glXDRIscreenProbe(ScreenPtr pScreen)
|
||||||
|
|
||||||
@ -58,7 +58,7 @@ index 0f998de..a244809 100644
|
|||||||
}
|
}
|
||||||
@@ -793,7 +796,7 @@ __glXDRIscreenProbe(ScreenPtr pScreen)
|
@@ -793,7 +796,7 @@ __glXDRIscreenProbe(ScreenPtr pScreen)
|
||||||
|
|
||||||
xfree(screen);
|
free(screen);
|
||||||
|
|
||||||
- LogMessage(X_ERROR, "AIGLX: reverting to software rendering\n");
|
- LogMessage(X_ERROR, "AIGLX: reverting to software rendering\n");
|
||||||
+ LogMessage(from, "AIGLX: reverting to software rendering\n");
|
+ LogMessage(from, "AIGLX: reverting to software rendering\n");
|
||||||
|
@ -14,16 +14,6 @@ Subject: [PATCH] Add nr for background=none root
|
|||||||
|
|
||||||
Index: xorg-server-1.8.0/dix/globals.c
|
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
|
Index: xorg-server-1.8.0/dix/window.c
|
||||||
===================================================================
|
===================================================================
|
||||||
--- xorg-server-1.8.0.orig/dix/window.c
|
--- xorg-server-1.8.0.orig/dix/window.c
|
||||||
@ -61,41 +51,6 @@ Index: xorg-server-1.8.0/dix/window.c
|
|||||||
}
|
}
|
||||||
Index: xorg-server-1.8.0/hw/xfree86/common/xf86Init.c
|
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
|
Index: xorg-server-1.8.0/hw/xfree86/common/xf86str.h
|
||||||
===================================================================
|
===================================================================
|
||||||
--- xorg-server-1.8.0.orig/hw/xfree86/common/xf86str.h
|
--- xorg-server-1.8.0.orig/hw/xfree86/common/xf86str.h
|
||||||
@ -152,3 +107,49 @@ Index: xorg-server-1.8.0/os/utils.c
|
|||||||
else if ( strcmp( argv[i], "-maxbigreqsize") == 0) {
|
else if ( strcmp( argv[i], "-maxbigreqsize") == 0) {
|
||||||
if(++i < argc) {
|
if(++i < argc) {
|
||||||
long reqSizeArg = atol(argv[i]);
|
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;
|
||||||
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user