From 4c175ee4025bf2ba78b24301eb27701260f2108a Mon Sep 17 00:00:00 2001 From: Peter Hutterer Date: Apr 18 2011 23:36:58 +0000 Subject: rebase all patches xserver-1.10-vbe-malloc.patch: drop, d8caa782009abf4d "git rm" all unused patches --- diff --git a/xorg-x11-server.spec b/xorg-x11-server.spec index 7e9bb03..7f62db5 100644 --- a/xorg-x11-server.spec +++ b/xorg-x11-server.spec @@ -30,7 +30,7 @@ Summary: X.Org X11 X server Name: xorg-x11-server Version: 1.10.99.1 -Release: 1%{?gitdate:.%{gitdate}}%{dist} +Release: 2%{?gitdate:.%{gitdate}}%{dist} URL: http://www.x.org License: MIT Group: User Interface/X @@ -64,7 +64,7 @@ Source30: xserver-sdk-abi-requires # Trivial things to never merge upstream ever: # This really could be done prettier. -Patch5002: xserver-1.4.99-ssh-isnt-local.patch +Patch5002: xserver-1.4.99-ssh-isnt-local.patch # don't build the (broken) acpi code Patch6011: xserver-1.6.0-less-acpi-brokenness.patch @@ -85,7 +85,6 @@ Patch6053: xserver-1.8-disable-vboxvideo.patch Patch7005: xserver-1.9.0-qxl-fallback.patch Patch7006: xserver-1.10-pointer-barriers.patch -Patch7007: xserver-1.10-vbe-malloc.patch # from ajax/xserver-next Patch7008: xserver-1.10-glx-pixmap-crash.patch Patch7009: xserver-1.10-bg-none-revert.patch @@ -553,6 +552,11 @@ rm -rf $RPM_BUILD_ROOT %{xserver_source_dir} %changelog +* Tue Apr 19 2011 Peter Hutterer 1.10.99.1-2.20110418 +- rebase all patches +- xserver-1.10-vbe-malloc.patch: drop, d8caa782009abf4d +- "git rm" all unused patches + * Mon Apr 18 2011 Peter Hutterer 1.10.99.1-1.20110418 - Today's server from git diff --git a/xserver-1.10-bg-none-revert.patch b/xserver-1.10-bg-none-revert.patch index 1388522..52e6469 100644 --- a/xserver-1.10-bg-none-revert.patch +++ b/xserver-1.10-bg-none-revert.patch @@ -1,7 +1,7 @@ -From 3bc6ed2d8c9028ec28015d05b60af67a194f3694 Mon Sep 17 00:00:00 2001 +From 2223b2b953fc6034d28d85dfe3f97652ca375beb Mon Sep 17 00:00:00 2001 From: Adam Jackson Date: Tue, 29 Mar 2011 10:09:46 -0400 -Subject: [PATCH 2/2] Revert "composite: Don't backfill non-bg-None windows" +Subject: [PATCH 9/9] Revert "composite: Don't backfill non-bg-None windows" This reverts commit 6dd775f57d2f94f0ddaee324aeec33b9b66ed5bc. @@ -58,5 +58,5 @@ index e4064f6..7164c0d 100644 { GCPtr pGC = GetScratchGC (pWin->drawable.depth, pScreen); -- -1.7.4.1 +1.7.4.4 diff --git a/xserver-1.10-glx-pixmap-crash.patch b/xserver-1.10-glx-pixmap-crash.patch index ae635af..832aa57 100644 --- a/xserver-1.10-glx-pixmap-crash.patch +++ b/xserver-1.10-glx-pixmap-crash.patch @@ -1,7 +1,7 @@ -From 2fefa1aff56f6d24dcc0206c60da3d9487832504 Mon Sep 17 00:00:00 2001 +From 070319e6e49f762ccaba06c7241c00e4afcb7c05 Mon Sep 17 00:00:00 2001 From: Adam Jackson Date: Wed, 30 Mar 2011 16:03:53 -0400 -Subject: [PATCH] glx: Fix lifetime tracking for pixmaps +Subject: [PATCH 8/9] glx: Fix lifetime tracking for pixmaps MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit @@ -20,10 +20,10 @@ Signed-off-by: Adam Jackson 2 files changed, 20 insertions(+), 13 deletions(-) diff --git a/glx/glxcmds.c b/glx/glxcmds.c -index 9b4bc9e..9d60bdb 100644 +index 66d4c7e..d5b764f 100644 --- a/glx/glxcmds.c +++ b/glx/glxcmds.c -@@ -1177,10 +1177,11 @@ DoCreateGLXDrawable(ClientPtr client, __GLXscreen *pGlxScreen, +@@ -1127,10 +1127,11 @@ DoCreateGLXDrawable(ClientPtr client, __GLXscreen *pGlxScreen, return BadAlloc; } @@ -39,7 +39,7 @@ index 9b4bc9e..9d60bdb 100644 !AddResource(pDraw->id, __glXDrawableRes, pGlxDraw)) { pGlxDraw->destroy (pGlxDraw); return BadAlloc; -@@ -1211,6 +1212,8 @@ DoCreateGLXPixmap(ClientPtr client, __GLXscreen *pGlxScreen, __GLXconfig *config +@@ -1161,6 +1162,8 @@ DoCreateGLXPixmap(ClientPtr client, __GLXscreen *pGlxScreen, __GLXconfig *config err = DoCreateGLXDrawable(client, pGlxScreen, config, pDraw, drawableId, glxDrawableId, GLX_DRAWABLE_PIXMAP); @@ -49,10 +49,10 @@ index 9b4bc9e..9d60bdb 100644 } diff --git a/glx/glxext.c b/glx/glxext.c -index 4bd5d6b..cec3ee5 100644 +index 3f3dd79..9cfc096 100644 --- a/glx/glxext.c +++ b/glx/glxext.c -@@ -124,15 +124,15 @@ static Bool DrawableGone(__GLXdrawable *glxPriv, XID xid) +@@ -118,15 +118,15 @@ static Bool DrawableGone(__GLXdrawable *glxPriv, XID xid) { __GLXcontext *c, *next; @@ -77,8 +77,8 @@ index 4bd5d6b..cec3ee5 100644 } for (c = glxAllContexts; c; c = next) { -@@ -168,6 +168,10 @@ static Bool DrawableGone(__GLXdrawable *glxPriv, XID xid) - __glXFreeContext(c); +@@ -143,6 +143,10 @@ static Bool DrawableGone(__GLXdrawable *glxPriv, XID xid) + c->readPriv = NULL; } + /* drop our reference to any backing pixmap */ @@ -89,5 +89,5 @@ index 4bd5d6b..cec3ee5 100644 return True; -- -1.7.4.1 +1.7.4.4 diff --git a/xserver-1.10-pointer-barriers.patch b/xserver-1.10-pointer-barriers.patch index 0995654..f8424d1 100644 --- a/xserver-1.10-pointer-barriers.patch +++ b/xserver-1.10-pointer-barriers.patch @@ -1,105 +1,22 @@ -From 14f1112bec18ccece8e732fe6c200a56546230c7 Mon Sep 17 00:00:00 2001 +From fb72637557fa1d9135bb4028d8603c8f8b6dee58 Mon Sep 17 00:00:00 2001 From: Adam Jackson Date: Thu, 17 Mar 2011 13:56:17 -0400 -Subject: [PATCH] CRTC confine and pointer barriers +Subject: [PATCH 7/9] CRTC confine and pointer barriers --- - dix/events.c | 7 + - dix/getevents.c | 12 +- - include/dix.h | 1 + include/protocol-versions.h | 2 +- - mi/mipointer.c | 16 ++- - mi/mipointer.h | 6 + - randr/randr.c | 2 + - randr/randrstr.h | 4 + - randr/rrcrtc.c | 155 ++++++++++++++++ - test/Makefile.am | 4 +- + test/Makefile.am | 3 +- xfixes/cursor.c | 408 ++++++++++++++++++++++++++++++++++++++++++- xfixes/xfixes.c | 24 ++- xfixes/xfixes.h | 17 ++ xfixes/xfixesint.h | 16 ++ - 14 files changed, 658 insertions(+), 16 deletions(-) + 6 files changed, 458 insertions(+), 12 deletions(-) -diff --git a/dix/events.c b/dix/events.c -index 07f8b05..d2be84f 100644 ---- a/dix/events.c -+++ b/dix/events.c -@@ -328,6 +328,13 @@ IsMaster(DeviceIntPtr dev) - return dev->type == MASTER_POINTER || dev->type == MASTER_KEYBOARD; - } - -+Bool -+IsFloating(DeviceIntPtr dev) -+{ -+ return GetMaster(dev, MASTER_KEYBOARD) == NULL; -+} -+ -+ - /** - * Max event opcode. - */ -diff --git a/dix/getevents.c b/dix/getevents.c -index 794df42..c66e516 100644 ---- a/dix/getevents.c -+++ b/dix/getevents.c -@@ -812,7 +812,11 @@ accelPointer(DeviceIntPtr dev, int first, int num, int *valuators, CARD32 ms) - * miPointerSetPosition() and then scale back into device coordinates (if - * needed). miPSP will change x/y if the screen was crossed. - * -+ * The coordinates provided are always absolute. The parameter mode whether -+ * it was relative or absolute movement that landed us at those coordinates. -+ * - * @param dev The device to be moved. -+ * @param mode Movement mode (Absolute or Relative) - * @param x Pointer to current x-axis value, may be modified. - * @param y Pointer to current y-axis value, may be modified. - * @param x_frac Fractional part of current x-axis value, may be modified. -@@ -824,7 +828,8 @@ accelPointer(DeviceIntPtr dev, int first, int num, int *valuators, CARD32 ms) - * @param screeny_frac Fractional part of screen y coordinate, as above. - */ - static void --positionSprite(DeviceIntPtr dev, int *x, int *y, float x_frac, float y_frac, -+positionSprite(DeviceIntPtr dev, int mode, -+ int *x, int *y, float x_frac, float y_frac, - ScreenPtr scr, int *screenx, int *screeny, float *screenx_frac, float *screeny_frac) - { - int old_screenx, old_screeny; -@@ -863,7 +868,7 @@ positionSprite(DeviceIntPtr dev, int *x, int *y, float x_frac, float y_frac, - old_screeny = *screeny; - /* This takes care of crossing screens for us, as well as clipping - * to the current screen. */ -- miPointerSetPosition(dev, screenx, screeny); -+ _miPointerSetPosition(dev, mode, screenx, screeny); - - if (dev->u.master) { - dev->u.master->last.valuators[0] = *screenx; -@@ -1193,7 +1198,8 @@ GetPointerEvents(EventList *events, DeviceIntPtr pDev, int type, int buttons, - - set_raw_valuators(raw, &mask, raw->valuators.data); - -- positionSprite(pDev, &x, &y, x_frac, y_frac, scr, &cx, &cy, &cx_frac, &cy_frac); -+ positionSprite(pDev, (flags & POINTER_ABSOLUTE) ? Absolute : Relative, -+ &x, &y, x_frac, y_frac, scr, &cx, &cy, &cx_frac, &cy_frac); - updateHistory(pDev, &mask, ms); - - /* Update the valuators with the true value sent to the client*/ -diff --git a/include/dix.h b/include/dix.h -index 12e4b59..3f99098 100644 ---- a/include/dix.h -+++ b/include/dix.h -@@ -570,6 +570,7 @@ extern Bool _X_EXPORT IsPointerDevice( DeviceIntPtr dev); - extern Bool _X_EXPORT IsKeyboardDevice(DeviceIntPtr dev); - extern Bool IsPointerEvent(InternalEvent *event); - extern _X_EXPORT Bool IsMaster(DeviceIntPtr dev); -+extern _X_EXPORT Bool IsFloating(DeviceIntPtr dev); - - extern _X_HIDDEN void CopyKeyClass(DeviceIntPtr device, DeviceIntPtr master); - extern _X_HIDDEN int CorePointerProc(DeviceIntPtr dev, int what); diff --git a/include/protocol-versions.h b/include/protocol-versions.h -index 1d33bdd..1dc66ad 100644 +index 8692ded..7b7a9f5 100644 --- a/include/protocol-versions.h +++ b/include/protocol-versions.h -@@ -126,7 +126,7 @@ +@@ -122,7 +122,7 @@ #define SERVER_XF86VIDMODE_MINOR_VERSION 2 /* Fixes */ @@ -108,327 +25,23 @@ index 1d33bdd..1dc66ad 100644 #define SERVER_XFIXES_MINOR_VERSION 0 /* X Input */ -diff --git a/mi/mipointer.c b/mi/mipointer.c -index 554397a..85f1949 100644 ---- a/mi/mipointer.c -+++ b/mi/mipointer.c -@@ -229,6 +229,10 @@ miPointerSetCursorPosition(DeviceIntPtr pDev, ScreenPtr pScreen, - SetupScreen (pScreen); - - GenerateEvent = generateEvent; -+ -+ if (pScreen->ConstrainCursorHarder) -+ pScreen->ConstrainCursorHarder(pDev, pScreen, Absolute, &x, &y); -+ - /* device dependent - must pend signal and call miPointerWarpCursor */ - (*pScreenPriv->screenFuncs->WarpCursor) (pDev, pScreen, x, y); - if (!generateEvent) -@@ -484,7 +488,7 @@ miPointerMoveNoEvent (DeviceIntPtr pDev, ScreenPtr pScreen, - } - - void --miPointerSetPosition(DeviceIntPtr pDev, int *x, int *y) -+_miPointerSetPosition(DeviceIntPtr pDev, int mode, int *x, int *y) - { - miPointerScreenPtr pScreenPriv; - ScreenPtr pScreen; -@@ -529,6 +533,9 @@ miPointerSetPosition(DeviceIntPtr pDev, int *x, int *y) - if (*y >= pPointer->limits.y2) - *y = pPointer->limits.y2 - 1; - -+ if (pScreen->ConstrainCursorHarder) -+ pScreen->ConstrainCursorHarder(pDev, pScreen, mode, x, y); -+ - if (pPointer->x == *x && pPointer->y == *y && - pPointer->pScreen == pScreen) - return; -@@ -536,6 +543,13 @@ miPointerSetPosition(DeviceIntPtr pDev, int *x, int *y) - miPointerMoveNoEvent(pDev, pScreen, *x, *y); - } - -+/* ABI hack */ -+void -+miPointerSetPosition(DeviceIntPtr pDev, int *x, int *y) -+{ -+ _miPointerSetPosition(pDev, Absolute, x, y); -+} -+ - void - miPointerGetPosition(DeviceIntPtr pDev, int *x, int *y) - { -diff --git a/mi/mipointer.h b/mi/mipointer.h -index 3c86110..6b6010c 100644 ---- a/mi/mipointer.h -+++ b/mi/mipointer.h -@@ -131,6 +131,12 @@ extern _X_EXPORT void miPointerGetPosition( - - /* Moves the cursor to the specified position. May clip the co-ordinates: - * x and y are modified in-place. */ -+extern _X_EXPORT void _miPointerSetPosition( -+ DeviceIntPtr pDev, -+ int mode, -+ int *x, -+ int *y); -+ - extern _X_EXPORT void miPointerSetPosition( - DeviceIntPtr pDev, - int *x, -diff --git a/randr/randr.c b/randr/randr.c -index 6077705..d337129 100644 ---- a/randr/randr.c -+++ b/randr/randr.c -@@ -270,6 +270,8 @@ Bool RRScreenInit(ScreenPtr pScreen) - - wrap (pScrPriv, pScreen, CloseScreen, RRCloseScreen); - -+ pScreen->ConstrainCursorHarder = RRConstrainCursorHarder; -+ - pScrPriv->numOutputs = 0; - pScrPriv->outputs = NULL; - pScrPriv->numCrtcs = 0; -diff --git a/randr/randrstr.h b/randr/randrstr.h -index 7ea6080..d8dd37d 100644 ---- a/randr/randrstr.h -+++ b/randr/randrstr.h -@@ -297,6 +297,7 @@ typedef struct _rrScrPriv { - int rate; - int size; - #endif -+ Bool discontiguous; - } rrScrPrivRec, *rrScrPrivPtr; - - extern _X_EXPORT DevPrivateKeyRec rrPrivKeyRec; -@@ -700,6 +701,9 @@ ProcRRGetPanning (ClientPtr client); - int - ProcRRSetPanning (ClientPtr client); - -+void -+RRConstrainCursorHarder (DeviceIntPtr, ScreenPtr, int, int *, int *); -+ - /* rrdispatch.c */ - extern _X_EXPORT Bool - RRClientKnowsRates (ClientPtr pClient); -diff --git a/randr/rrcrtc.c b/randr/rrcrtc.c -index 98206a2..d4d8f2a 100644 ---- a/randr/rrcrtc.c -+++ b/randr/rrcrtc.c -@@ -1,5 +1,6 @@ - /* - * Copyright © 2006 Keith Packard -+ * Copyright 2010 Red Hat, Inc - * - * Permission to use, copy, modify, distribute, and sell this software and its - * documentation for any purpose is hereby granted without fee, provided that -@@ -22,6 +23,7 @@ - - #include "randrstr.h" - #include "swaprep.h" -+#include "mipointer.h" - - RESTYPE RRCrtcType; - -@@ -292,6 +294,92 @@ RRCrtcPendingProperties (RRCrtcPtr crtc) - return FALSE; - } - -+static void -+crtc_bounds(RRCrtcPtr crtc, int *left, int *right, int *top, int *bottom) -+{ -+ *left = crtc->x; -+ *top = crtc->y; -+ -+ switch (crtc->rotation) { -+ case RR_Rotate_0: -+ case RR_Rotate_180: -+ default: -+ *right = crtc->x + crtc->mode->mode.width; -+ *bottom = crtc->y + crtc->mode->mode.height; -+ return; -+ case RR_Rotate_90: -+ case RR_Rotate_270: -+ *right = crtc->x + crtc->mode->mode.height; -+ *bottom = crtc->y + crtc->mode->mode.width; -+ return; -+ } -+} -+ -+/* overlapping counts as adjacent */ -+static Bool -+crtcs_adjacent(const RRCrtcPtr a, const RRCrtcPtr b) -+{ -+ /* left, right, top, bottom... */ -+ int al, ar, at, ab; -+ int bl, br, bt, bb; -+ int cl, cr, ct, cb; /* the overlap, if any */ -+ -+ crtc_bounds(a, &al, &ar, &at, &ab); -+ crtc_bounds(b, &bl, &br, &bt, &bb); -+ -+ cl = max(al, bl); -+ cr = min(ar, br); -+ ct = max(at, bt); -+ cb = min(ab, bb); -+ -+ return (cl <= cr) && (ct <= cb); -+} -+ -+/* Depth-first search and mark all CRTCs reachable from cur */ -+static void -+mark_crtcs (rrScrPrivPtr pScrPriv, int *reachable, int cur) -+{ -+ int i; -+ reachable[cur] = TRUE; -+ for (i = 0; i < pScrPriv->numCrtcs; ++i) { -+ if (reachable[i] || !pScrPriv->crtcs[i]->mode) -+ continue; -+ if (crtcs_adjacent(pScrPriv->crtcs[cur], pScrPriv->crtcs[i])) -+ mark_crtcs(pScrPriv, reachable, i); -+ } -+} -+ -+static void -+RRComputeContiguity (ScreenPtr pScreen) -+{ -+ rrScrPriv(pScreen); -+ Bool discontiguous = TRUE; -+ int i, n = pScrPriv->numCrtcs; -+ -+ int *reachable = calloc(n, sizeof(int)); -+ if (!reachable) -+ goto out; -+ -+ /* Find first enabled CRTC and start search for reachable CRTCs from it */ -+ for (i = 0; i < n; ++i) { -+ if (pScrPriv->crtcs[i]->mode) { -+ mark_crtcs(pScrPriv, reachable, i); -+ break; -+ } -+ } -+ -+ /* Check that all enabled CRTCs were marked as reachable */ -+ for (i = 0; i < n; ++i) -+ if (pScrPriv->crtcs[i]->mode && !reachable[i]) -+ goto out; -+ -+ discontiguous = FALSE; -+ -+out: -+ free(reachable); -+ pScrPriv->discontiguous = discontiguous; -+} -+ - /* - * Request that the Crtc be reconfigured - */ -@@ -306,6 +394,7 @@ RRCrtcSet (RRCrtcPtr crtc, - { - ScreenPtr pScreen = crtc->pScreen; - Bool ret = FALSE; -+ Bool recompute = TRUE; - rrScrPriv(pScreen); - - /* See if nothing changed */ -@@ -318,6 +407,7 @@ RRCrtcSet (RRCrtcPtr crtc, - !RRCrtcPendingProperties (crtc) && - !RRCrtcPendingTransform (crtc)) - { -+ recompute = FALSE; - ret = TRUE; - } - else -@@ -381,6 +471,10 @@ RRCrtcSet (RRCrtcPtr crtc, - RRPostPendingProperties (outputs[o]); - } - } -+ -+ if (recompute) -+ RRComputeContiguity(pScreen); -+ - return ret; - } - -@@ -1349,3 +1443,64 @@ ProcRRGetCrtcTransform (ClientPtr client) - free(reply); - return Success; - } -+ -+void -+RRConstrainCursorHarder(DeviceIntPtr pDev, ScreenPtr pScreen, int mode, int *x, int *y) -+{ -+ rrScrPriv (pScreen); -+ int i; -+ -+ /* intentional dead space -> let it float */ -+ if (pScrPriv->discontiguous) -+ return; -+ -+ /* if we're moving inside a crtc, we're fine */ -+ for (i = 0; i < pScrPriv->numCrtcs; i++) { -+ RRCrtcPtr crtc = pScrPriv->crtcs[i]; -+ -+ int left, right, top, bottom; -+ -+ if (!crtc->mode) -+ continue; -+ -+ crtc_bounds(crtc, &left, &right, &top, &bottom); -+ -+ if ((*x >= left) && (*x <= right) && (*y >= top) && (*y <= bottom)) -+ return; -+ } -+ -+ /* if we're trying to escape, clamp to the CRTC we're coming from */ -+ for (i = 0; i < pScrPriv->numCrtcs; i++) { -+ RRCrtcPtr crtc = pScrPriv->crtcs[i]; -+ int nx, ny; -+ int left, right, top, bottom; -+ -+ if (!crtc->mode) -+ continue; -+ -+ crtc_bounds(crtc, &left, &right, &top, &bottom); -+ miPointerGetPosition(pDev, &nx, &ny); -+ -+ if ((nx >= left) && (nx <= right) && (ny >= top) && (ny <= bottom)) { -+ if ((*x <= left) || (*x >= right)) { -+ int dx = *x - nx; -+ -+ if (dx > 0) -+ *x = right; -+ else if (dx < 0) -+ *x = left; -+ } -+ -+ if ((*y <= top) || (*y >= bottom)) { -+ int dy = *y - ny; -+ -+ if (dy > 0) -+ *y = bottom; -+ else if (dy < 0) -+ *y = top; -+ } -+ -+ return; -+ } -+ } -+} diff --git a/test/Makefile.am b/test/Makefile.am -index 456221e..ccdb859 100644 +index f3265b7..b60d319 100644 --- a/test/Makefile.am +++ b/test/Makefile.am -@@ -1,6 +1,6 @@ - if UNITTESTS +@@ -2,7 +2,7 @@ if ENABLE_UNIT_TESTS + if HAVE_GLIB + if HAVE_LD_WRAP SUBDIRS= . xi2 --check_PROGRAMS = xkb input xtest -+check_PROGRAMS = xkb input xtest list fixes +-noinst_PROGRAMS = xkb input xtest list ++noinst_PROGRAMS = xkb input xtest list fixes check_LTLIBRARIES = libxservertest.la - TESTS=$(check_PROGRAMS) -@@ -16,6 +16,8 @@ endif - xkb_LDADD=$(TEST_LDADD) + TESTS=$(noinst_PROGRAMS) +@@ -19,6 +19,7 @@ xkb_LDADD=$(TEST_LDADD) input_LDADD=$(TEST_LDADD) xtest_LDADD=$(TEST_LDADD) -+list_LDADD=$(TEST_LDADD) + list_LDADD=$(TEST_LDADD) +fixes_LDADD=$(TEST_LDADD) libxservertest_la_LIBADD = \ @@ -914,7 +527,7 @@ index fb608f6..5c55c95 100644 } diff --git a/xfixes/xfixes.c b/xfixes/xfixes.c -index e8c7bf1..a57884b 100644 +index e8c7bf1..de0e4db 100644 --- a/xfixes/xfixes.c +++ b/xfixes/xfixes.c @@ -1,5 +1,6 @@ @@ -1050,5 +663,5 @@ index d005369..6ba276e 100644 void PanoramiXFixesInit (void); void PanoramiXFixesReset (void); -- -1.7.4 +1.7.4.4 diff --git a/xserver-1.10-vbe-malloc.patch b/xserver-1.10-vbe-malloc.patch deleted file mode 100644 index 5231983..0000000 --- a/xserver-1.10-vbe-malloc.patch +++ /dev/null @@ -1,43 +0,0 @@ -From 0ab680f08208afe51ad6ddc1018b7d6f8b851840 Mon Sep 17 00:00:00 2001 -From: Adam Jackson -Date: Thu, 24 Feb 2011 16:06:34 -0500 -Subject: [PATCH] vbe: Fix malloc size bug - -v2: Slightly more obvious sizing math. - -==14882== Invalid write of size 2 -==14882== at 0x6750267: VBEGetVBEInfo (vbe.c:400) -==14882== by 0x6142064: ??? (in /usr/lib64/xorg/modules/drivers/vesa_drv.so) -==14882== by 0x471895: InitOutput (xf86Init.c:519) -==14882== by 0x422778: main (main.c:205) -==14882== Address 0x4f32fa8 is 72 bytes inside a block of size 73 alloc'd -==14882== at 0x4A0640D: malloc (vg_replace_malloc.c:236) -==14882== by 0x675024B: VBEGetVBEInfo (vbe.c:398) -==14882== by 0x6142064: ??? (in /usr/lib64/xorg/modules/drivers/vesa_drv.so) -==14882== by 0x471895: InitOutput (xf86Init.c:519) -==14882== by 0x422778: main (main.c:205) - -Reviewed-by: Mark Kettenis -Reviewed-by: Alan Coopersmith -Signed-off-by: Adam Jackson -(cherry picked from commit d8caa782009abf4dc17b945e325e83fda299a534) ---- - hw/xfree86/vbe/vbe.c | 2 +- - 1 files changed, 1 insertions(+), 1 deletions(-) - -diff --git a/hw/xfree86/vbe/vbe.c b/hw/xfree86/vbe/vbe.c -index bcda5ec..04132d9 100644 ---- a/hw/xfree86/vbe/vbe.c -+++ b/hw/xfree86/vbe/vbe.c -@@ -395,7 +395,7 @@ VBEGetVBEInfo(vbeInfoPtr pVbe) - i = 0; - while (modes[i] != 0xffff) - i++; -- block->VideoModePtr = malloc(sizeof(CARD16) * i + 1); -+ block->VideoModePtr = malloc(sizeof(CARD16) * (i + 1)); - memcpy(block->VideoModePtr, modes, sizeof(CARD16) * i); - block->VideoModePtr[i] = 0xffff; - --- -1.7.4 - diff --git a/xserver-1.5.99.902-sod-off-poulsbo.patch b/xserver-1.5.99.902-sod-off-poulsbo.patch deleted file mode 100644 index ac3bce1..0000000 --- a/xserver-1.5.99.902-sod-off-poulsbo.patch +++ /dev/null @@ -1,26 +0,0 @@ -From c799dd4390e5ea301c8f4f81784ac590b97f7a07 Mon Sep 17 00:00:00 2001 -From: Adam Jackson -Date: Tue, 10 Feb 2009 10:25:19 -0500 -Subject: [PATCH] autoconfig: ignore poulsbo - -Thanks, Intel. ---- - hw/xfree86/common/xf86AutoConfig.c | 2 ++ - 1 files changed, 2 insertions(+), 0 deletions(-) - -diff --git a/hw/xfree86/common/xf86AutoConfig.c b/hw/xfree86/common/xf86AutoConfig.c -index a9a1fd2..19c06c8 100644 ---- a/hw/xfree86/common/xf86AutoConfig.c -+++ b/hw/xfree86/common/xf86AutoConfig.c -@@ -171,6 +171,8 @@ videoPtrToDriverList(struct pci_device *dev, - case 0x8086: - if ((dev->device_id == 0x00d1) || (dev->device_id == 0x7800)) { - driverList[0] = "i740"; -+ } else if (dev->device_id == 0x8108) { -+ break; /* you got powervr in my intel! */ - } else { - driverList[0] = "intel"; - driverList[1] = "i810"; --- -1.6.1.2 - diff --git a/xserver-1.6.0-displayfd.patch b/xserver-1.6.0-displayfd.patch index 5fc1f08..36e92cd 100644 --- a/xserver-1.6.0-displayfd.patch +++ b/xserver-1.6.0-displayfd.patch @@ -1,7 +1,7 @@ -From 47c3d565596ad3d5c837fb6909a40f7a251c248d Mon Sep 17 00:00:00 2001 +From f14a89c627d9c4d790cc6785dd6628c9bda1c317 Mon Sep 17 00:00:00 2001 From: Adam Jackson Date: Thu, 18 Jun 2009 16:56:41 +1000 -Subject: [PATCH] displayfd hack +Subject: [PATCH 3/9] displayfd hack --- dix/globals.c | 1 + @@ -35,7 +35,7 @@ index 5c70717..f23203f 100644 extern _X_EXPORT int defaultBackingStore; extern _X_EXPORT Bool disableBackingStore; diff --git a/os/connection.c b/os/connection.c -index 5452ae1..9c20ef1 100644 +index 0c580ab..1acdb7f 100644 --- a/os/connection.c +++ b/os/connection.c @@ -145,6 +145,7 @@ Bool AnyClientsWriteBlocked; /* true if some client blocked on write */ @@ -149,10 +149,10 @@ index 5452ae1..9c20ef1 100644 } diff --git a/os/utils.c b/os/utils.c -index afdff0c..6866740 100644 +index 36cb46f..6338860 100644 --- a/os/utils.c +++ b/os/utils.c -@@ -657,6 +657,17 @@ ProcessCommandLine(int argc, char *argv[]) +@@ -660,6 +660,17 @@ ProcessCommandLine(int argc, char *argv[]) else UseMsg(); } @@ -171,5 +171,5 @@ index afdff0c..6866740 100644 else if ( strcmp( argv[i], "dpms") == 0) /* ignored for compatibility */ ; -- -1.7.3.2 +1.7.4.4 diff --git a/xserver-1.6.0-less-acpi-brokenness.patch b/xserver-1.6.0-less-acpi-brokenness.patch index eb82e19..6c251b8 100644 --- a/xserver-1.6.0-less-acpi-brokenness.patch +++ b/xserver-1.6.0-less-acpi-brokenness.patch @@ -1,7 +1,7 @@ -From 86c8a64b29a97a0562b6725ed163a6beac93fa12 Mon Sep 17 00:00:00 2001 +From 42959f3af32ca14d4c15c37b6005acca324debdb Mon Sep 17 00:00:00 2001 From: Adam Jackson Date: Wed, 11 Mar 2009 14:02:11 -0400 -Subject: [PATCH] Don't build the ACPI code. +Subject: [PATCH 1/9] Don't build the ACPI code. No good can come of this. --- @@ -9,10 +9,10 @@ No good can come of this. 1 files changed, 0 insertions(+), 2 deletions(-) diff --git a/configure.ac b/configure.ac -index bd027cd..9adbdc5 100644 +index 9e04ff0..b1175f5 100644 --- a/configure.ac +++ b/configure.ac -@@ -1623,13 +1623,11 @@ if test "x$XORG" = xyes; then +@@ -1570,13 +1570,11 @@ if test "x$XORG" = xyes; then case $host_cpu in ia64*) linux_ia64=yes @@ -27,5 +27,5 @@ index bd027cd..9adbdc5 100644 *) ;; -- -1.7.3.2 +1.7.4.4 diff --git a/xserver-1.6.1-nouveau.patch b/xserver-1.6.1-nouveau.patch index 938bb7a..cf42403 100644 --- a/xserver-1.6.1-nouveau.patch +++ b/xserver-1.6.1-nouveau.patch @@ -1,81 +1,15 @@ -From 2e79f2eb5a0fbef5f0698b066938d8f1ada44698 Mon Sep 17 00:00:00 2001 +From f5e43a8e1bcbb9eab0ca6fcef6c26b6e83eca483 Mon Sep 17 00:00:00 2001 From: Fedora X Ninjas Date: Tue, 16 Feb 2010 11:38:17 +1000 -Subject: [PATCH] autoconfig: select nouveau by default for NVIDIA GPUs +Subject: [PATCH 2/9] autoconfig: select nouveau by default for NVIDIA GPUs Also, don't treat DRI setup failure as an error for nouveau. --- - glx/glxdri.c | 7 +++++-- - glx/glxdri2.c | 7 +++++-- hw/xfree86/common/xf86pciBus.c | 18 +++++++++++++++++- - 3 files changed, 27 insertions(+), 5 deletions(-) + 1 files changed, 17 insertions(+), 1 deletions(-) -diff --git a/glx/glxdri.c b/glx/glxdri.c -index db3fcd5..82cdb87 100644 ---- a/glx/glxdri.c -+++ b/glx/glxdri.c -@@ -979,6 +979,7 @@ __glXDRIscreenProbe(ScreenPtr pScreen) - const __DRIconfig **driConfigs; - const __DRIextension **extensions; - int i; -+ int from = X_ERROR; - - if (!xf86LoaderCheckSymbol("DRIQueryDirectRenderingCapable") || - !DRIQueryDirectRenderingCapable(pScreen, &isCapable) || -@@ -1058,7 +1059,9 @@ __glXDRIscreenProbe(ScreenPtr pScreen) - - screen->driver = dlopen(filename, RTLD_LAZY | RTLD_LOCAL); - if (screen->driver == NULL) { -- LogMessage(X_ERROR, "AIGLX error: dlopen of %s failed (%s)\n", -+ if (!strcmp(driverName, "nouveau")) -+ from = X_INFO; -+ LogMessage(from, "AIGLX error: dlopen of %s failed (%s)\n", - filename, dlerror()); - goto handle_error; - } -@@ -1194,7 +1197,7 @@ __glXDRIscreenProbe(ScreenPtr pScreen) - - free(screen); - -- LogMessage(X_ERROR, "AIGLX: reverting to software rendering\n"); -+ LogMessage(from, "AIGLX: reverting to software rendering\n"); - - return NULL; - } -diff --git a/glx/glxdri2.c b/glx/glxdri2.c -index 0b69201..1c58023 100644 ---- a/glx/glxdri2.c -+++ b/glx/glxdri2.c -@@ -709,6 +709,7 @@ __glXDRIscreenProbe(ScreenPtr pScreen) - const __DRIextension **extensions; - const __DRIconfig **driConfigs; - int i; -+ int from = X_ERROR; - - screen = calloc(1, sizeof *screen); - if (screen == NULL) -@@ -735,7 +736,9 @@ __glXDRIscreenProbe(ScreenPtr pScreen) - - screen->driver = dlopen(filename, RTLD_LAZY | RTLD_LOCAL); - if (screen->driver == NULL) { -- LogMessage(X_ERROR, "AIGLX error: dlopen of %s failed (%s)\n", -+ if (!strcmp(driverName, "nouveau")) -+ from = X_INFO; -+ LogMessage(from, "AIGLX error: dlopen of %s failed (%s)\n", - filename, dlerror()); - goto handle_error; - } -@@ -827,7 +830,7 @@ __glXDRIscreenProbe(ScreenPtr pScreen) - - free(screen); - -- LogMessage(X_ERROR, "AIGLX: reverting to software rendering\n"); -+ LogMessage(from, "AIGLX: reverting to software rendering\n"); - - return NULL; - } diff --git a/hw/xfree86/common/xf86pciBus.c b/hw/xfree86/common/xf86pciBus.c -index 3e9c455..e34e6d6 100644 +index 447b192..26d6cad 100644 --- a/hw/xfree86/common/xf86pciBus.c +++ b/hw/xfree86/common/xf86pciBus.c @@ -1123,7 +1123,23 @@ videoPtrToDriverList(struct pci_device *dev, @@ -104,5 +38,5 @@ index 3e9c455..e34e6d6 100644 case 0x1b36: driverList[0] = "qxl"; break; case 0x1163: driverList[0] = "rendition"; break; -- -1.7.3.2 +1.7.4.4 diff --git a/xserver-1.6.99-right-of.patch b/xserver-1.6.99-right-of.patch index c437a94..a0c9e7f 100644 --- a/xserver-1.6.99-right-of.patch +++ b/xserver-1.6.99-right-of.patch @@ -1,7 +1,7 @@ -From ebc70eaa0f7a60e7fb88f3173b3e86a78ab9be79 Mon Sep 17 00:00:00 2001 +From 12aa6574fd87ec28186a75256a5111e9703d932e Mon Sep 17 00:00:00 2001 From: Adam Jackson Date: Tue, 28 Jul 2009 11:07:13 -0400 -Subject: [PATCH] RANDR: right-of placement by default +Subject: [PATCH 4/9] RANDR: right-of placement by default [Enhanced to add a new prefer clone option for drivers. This allows for servers like RN50 where two heads are disjoint. - airlied] @@ -48,10 +48,10 @@ index 0493dc5..d66e373 100644 * These can be used when the minor ABI version is incremented. * The NUM_* parameters must be reduced appropriately to keep the diff --git a/hw/xfree86/modes/xf86Crtc.c b/hw/xfree86/modes/xf86Crtc.c -index b5e9dc2..38ce9d0 100644 +index c2814d4..b25876f 100644 --- a/hw/xfree86/modes/xf86Crtc.c +++ b/hw/xfree86/modes/xf86Crtc.c -@@ -1169,6 +1169,15 @@ xf86InitialOutputPositions (ScrnInfoPtr scrn, DisplayModePtr *modes) +@@ -1139,6 +1139,15 @@ xf86InitialOutputPositions (ScrnInfoPtr scrn, DisplayModePtr *modes) int o; int min_x, min_y; @@ -67,7 +67,7 @@ index b5e9dc2..38ce9d0 100644 for (o = 0; o < config->num_output; o++) { xf86OutputPtr output = config->output[o]; -@@ -2052,6 +2061,57 @@ bestModeForAspect(xf86CrtcConfigPtr config, Bool *enabled, float aspect) +@@ -2030,6 +2039,57 @@ bestModeForAspect(xf86CrtcConfigPtr config, Bool *enabled, float aspect) return match; } @@ -125,7 +125,7 @@ index b5e9dc2..38ce9d0 100644 static Bool xf86TargetPreferred(ScrnInfoPtr scrn, xf86CrtcConfigPtr config, DisplayModePtr *modes, Bool *enabled, -@@ -2109,13 +2169,9 @@ xf86TargetPreferred(ScrnInfoPtr scrn, xf86CrtcConfigPtr config, +@@ -2087,13 +2147,9 @@ xf86TargetPreferred(ScrnInfoPtr scrn, xf86CrtcConfigPtr config, * biggest mode for its aspect ratio, assuming one exists. */ if (!ret) do { @@ -140,7 +140,7 @@ index b5e9dc2..38ce9d0 100644 break; p = -1; -@@ -2409,6 +2465,8 @@ xf86InitialConfiguration (ScrnInfoPtr scrn, Bool canGrow) +@@ -2388,6 +2444,8 @@ xf86InitialConfiguration (ScrnInfoPtr scrn, Bool canGrow) } else { if (xf86TargetUserpref(scrn, config, modes, enabled, width, height)) xf86DrvMsg(i, X_INFO, "Using user preference for initial modes\n"); @@ -149,7 +149,7 @@ index b5e9dc2..38ce9d0 100644 else if (xf86TargetPreferred(scrn, config, modes, enabled, width, height)) xf86DrvMsg(i, X_INFO, "Using exact sizes for initial modes\n"); else if (xf86TargetAspect(scrn, config, modes, enabled, width, height)) -@@ -2426,8 +2484,10 @@ xf86InitialConfiguration (ScrnInfoPtr scrn, Bool canGrow) +@@ -2405,8 +2463,10 @@ xf86InitialConfiguration (ScrnInfoPtr scrn, Bool canGrow) config->output[o]->name); else xf86DrvMsg (scrn->scrnIndex, X_INFO, @@ -163,5 +163,5 @@ index b5e9dc2..38ce9d0 100644 /* -- -1.7.4 +1.7.4.4 diff --git a/xserver-1.7.4-reset-sli-pointers.patch b/xserver-1.7.4-reset-sli-pointers.patch deleted file mode 100644 index 41a6c54..0000000 --- a/xserver-1.7.4-reset-sli-pointers.patch +++ /dev/null @@ -1,59 +0,0 @@ -From 11eea736f44a236dde884b52ad51cb5d1271b7a5 Mon Sep 17 00:00:00 2001 -From: Peter Hutterer -Date: Wed, 13 Jan 2010 15:03:45 +1000 -Subject: [PATCH] Xi: reset the sli pointers after copying device classes. (#25640) - -If the indicator flags have the XkbSLI_IsDefault bit set, the indicator map -and names aren't their own bit of memory but rather point into the -device->key->xkbInfo->desc structure. XkbCopySrvLedInfo knows about this and -leaves the pointers alone. - -When copying the classes from the slave to the master, these pointers are -copied and still point to the dev->key class of the slave device. If the -slave device is removed, the memory becomes invalid and a call to modify -this data (e.g. XkbSetIndicators) may cause a deadlock. - -The copying of dev->key relies on dev->kbdfeed to be already set up. Hence -the pointers need to be reset once _both_ kbdfeed and key have been copied -into the master device. - -X.Org Bug 25640 -Fedora Bug 540584 ---- - Xi/exevents.c | 20 ++++++++++++++++++++ - 1 files changed, 20 insertions(+), 0 deletions(-) - -diff --git a/Xi/exevents.c b/Xi/exevents.c -index cb2452b..ee32ba8 100644 ---- a/Xi/exevents.c -+++ b/Xi/exevents.c -@@ -444,6 +444,26 @@ DeepCopyKeyboardClasses(DeviceIntPtr from, DeviceIntPtr to) - to->key = NULL; - } - -+ /* If a SrvLedInfoPtr's flags are XkbSLI_IsDefault, the names and maps -+ * pointer point into the xkbInfo->desc struct. XkbCopySrvLedInfo -+ * didn't update the pointers so we need to do it manually here. -+ */ -+ if (to->kbdfeed) -+ { -+ KbdFeedbackPtr k; -+ -+ for (k = to->kbdfeed; k; k = k->next) -+ { -+ if (!k->xkb_sli) -+ continue; -+ if (k->xkb_sli->flags & XkbSLI_IsDefault) -+ { -+ k->xkb_sli->names = to->key->xkbInfo->desc->names->indicators; -+ k->xkb_sli->maps = to->key->xkbInfo->desc->indicators->maps; -+ } -+ } -+ } -+ - /* We can't just copy over the focus class. When an app sets the focus, - * it'll do so on the master device. Copying the SDs focus means losing - * the focus. --- -1.6.6 - diff --git a/xserver-1.7.6-export-more-dix-functions.patch b/xserver-1.7.6-export-more-dix-functions.patch deleted file mode 100644 index 9592a95..0000000 --- a/xserver-1.7.6-export-more-dix-functions.patch +++ /dev/null @@ -1,26 +0,0 @@ -From 6db7cc3d3f750bbb1c170f8fe538e9fb75bc5b34 Mon Sep 17 00:00:00 2001 -From: Adam Tkac -Date: Wed, 14 Apr 2010 12:16:26 +0200 -Subject: [PATCH] Export XkbCopyDeviceKeymap from Xorg, it is needed by VNC. - -Signed-off-by: Adam Tkac ---- - include/xkbsrv.h | 2 +- - 1 files changed, 1 insertions(+), 1 deletions(-) - -diff --git a/include/xkbsrv.h b/include/xkbsrv.h -index ebc7cdb..dc3142a 100644 ---- a/include/xkbsrv.h -+++ b/include/xkbsrv.h -@@ -936,7 +936,7 @@ extern Bool XkbCopyKeymap( - XkbDescPtr /* dst */, - XkbDescPtr /* src */); - --extern Bool XkbCopyDeviceKeymap( -+extern _X_EXPORT Bool XkbCopyDeviceKeymap( - DeviceIntPtr /* dst */, - DeviceIntPtr /* src */); - --- -1.7.0.1 - diff --git a/xserver-1.8-disable-vboxvideo.patch b/xserver-1.8-disable-vboxvideo.patch index 13dfccc..fe54dd1 100644 --- a/xserver-1.8-disable-vboxvideo.patch +++ b/xserver-1.8-disable-vboxvideo.patch @@ -1,14 +1,14 @@ -From b0ca931d1ecd03bce114964a57da5e33f81dc46d Mon Sep 17 00:00:00 2001 +From 8f5d13bea017198598dcbbcc86d6ada06fc0fdc4 Mon Sep 17 00:00:00 2001 From: Adam Williamson Date: Thu, 25 Feb 2010 10:34:49 -0800 -Subject: [PATCH] disable vboxvideo driver in autodetect code +Subject: [PATCH 5/9] disable vboxvideo driver in autodetect code --- hw/xfree86/common/xf86pciBus.c | 2 +- 1 files changed, 1 insertions(+), 1 deletions(-) diff --git a/hw/xfree86/common/xf86pciBus.c b/hw/xfree86/common/xf86pciBus.c -index e34e6d6..aaacf42 100644 +index 26d6cad..4640ede 100644 --- a/hw/xfree86/common/xf86pciBus.c +++ b/hw/xfree86/common/xf86pciBus.c @@ -1167,7 +1167,7 @@ videoPtrToDriverList(struct pci_device *dev, @@ -21,5 +21,5 @@ index e34e6d6..aaacf42 100644 case 0x18ca: if (dev->device_id == 0x47) -- -1.7.3.2 +1.7.4.4 diff --git a/xserver-1.8.0-no-xorg.patch b/xserver-1.8.0-no-xorg.patch deleted file mode 100644 index 0c1886f..0000000 --- a/xserver-1.8.0-no-xorg.patch +++ /dev/null @@ -1,27 +0,0 @@ -From 24f403a5b3f29016a135c615d6cb87bafcea4583 Mon Sep 17 00:00:00 2001 -From: =?UTF-8?q?Dan=20Hor=C3=A1k?= -Date: Tue, 22 Jun 2010 18:19:38 +0200 -Subject: [PATCH 17/17] XF86CONFIGDIR is undefined when built with --disable-xorg - ---- - config/Makefile.am | 2 ++ - 1 files changed, 2 insertions(+), 0 deletions(-) - -diff --git a/config/Makefile.am b/config/Makefile.am -index e1f1c4e..4a2e873 100644 ---- a/config/Makefile.am -+++ b/config/Makefile.am -@@ -9,8 +9,10 @@ AM_CFLAGS += $(UDEV_CFLAGS) - libconfig_la_SOURCES += udev.c - libconfig_la_LIBADD = $(UDEV_LIBS) - -+if XORG - xorgconfddir = $(datadir)/X11/$(XF86CONFIGDIR) - xorgconfd_DATA = 10-evdev.conf -+endif - - else - --- -1.7.1 - diff --git a/xserver-1.8.0-xorg.conf.d-changes.patch b/xserver-1.8.0-xorg.conf.d-changes.patch deleted file mode 100644 index 836a4b0..0000000 --- a/xserver-1.8.0-xorg.conf.d-changes.patch +++ /dev/null @@ -1,496 +0,0 @@ -From ad6c5e450cacee3777e7c541d4841ee580339a5d Mon Sep 17 00:00:00 2001 -From: Peter Hutterer -Date: Wed, 7 Apr 2010 10:04:38 +1000 -Subject: [PATCH 1/6] config: only match sane devices in 10-evdev.conf - -Having a generic catchall also adds devices like accelerometers. These -devices make X unusable, hence restrict matching to "known sane" devices -like pointers, touchpads, keyboards, tablets and touchscreens. - -Signed-off-by: Peter Hutterer -Acked-by: Julien Cristau -Acked-by: Dan Nicholson -Acked-by: James Cloos -(cherry picked from commit c8a608cb6ce8f9c86258c1ab49084f691fa9cc51) - -Signed-off-by: Peter Hutterer ---- - config/10-evdev.conf | 36 ++++++++++++++++++++++++++++++++++-- - 1 files changed, 34 insertions(+), 2 deletions(-) - -diff --git a/config/10-evdev.conf b/config/10-evdev.conf -index 7406f4e..cc83ab2 100644 ---- a/config/10-evdev.conf -+++ b/config/10-evdev.conf -@@ -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.6.6.1 - -From eb07b8606f9a1349baf8114bb36dc2712e5d3419 Mon Sep 17 00:00:00 2001 -From: Dan Nicholson -Date: Sat, 3 Apr 2010 09:33:47 -0700 -Subject: [PATCH 2/6] xfree86: Allow adding sysconfdir and datadir to config search paths - -We could just use $projectroot/etc and $projectroot/share, but the user -might have other plans for them. - -Signed-off-by: Dan Nicholson -Signed-off-by: Peter Hutterer -(cherry picked from commit 2460e921d18fd264e6f6374be0908f4100442650) - -Signed-off-by: Peter Hutterer ---- - hw/xfree86/parser/Makefile.am | 4 +++- - hw/xfree86/parser/scan.c | 14 ++++++++++++++ - 2 files changed, 17 insertions(+), 1 deletions(-) - -diff --git a/hw/xfree86/parser/Makefile.am b/hw/xfree86/parser/Makefile.am -index 49c191f..caf7079 100644 ---- a/hw/xfree86/parser/Makefile.am -+++ b/hw/xfree86/parser/Makefile.am -@@ -34,7 +34,9 @@ libxf86config_a_SOURCES = \ - $(INTERNAL_SOURCES) - libxf86config_a_CFLAGS = $(AM_CFLAGS) -fPIC -fvisibility=hidden - --AM_CFLAGS = $(DIX_CFLAGS) $(XORG_CFLAGS) -+AM_CFLAGS = $(DIX_CFLAGS) $(XORG_CFLAGS) \ -+ -DSYSCONFDIR=\"$(sysconfdir)\" \ -+ -DDATADIR=\"$(datadir)\" - - EXTRA_DIST = \ - Configint.h \ -diff --git a/hw/xfree86/parser/scan.c b/hw/xfree86/parser/scan.c -index cdca9ca..8aab0cf 100644 ---- a/hw/xfree86/parser/scan.c -+++ b/hw/xfree86/parser/scan.c -@@ -599,6 +599,8 @@ xf86pathIsSafe(const char *path) - * %F config file environment ($XORGCONFIG) as a relative path - * %G config file environment ($XORGCONFIG) as a safe path - * %P projroot -+ * %C sysconfdir -+ * %D datadir - * %M major version number - * %% % - */ -@@ -615,6 +617,12 @@ xf86pathIsSafe(const char *path) - #ifndef PROJECTROOT - #define PROJECTROOT "/usr/X11R6" - #endif -+#ifndef SYSCONFDIR -+#define SYSCONFDIR PROJECTROOT "/etc" -+#endif -+#ifndef DATADIR -+#define DATADIR PROJECTROOT "/share" -+#endif - #ifndef XCONFENV - #define XCONFENV "XORGCONFIG" - #endif -@@ -755,6 +763,12 @@ DoSubstitution(const char *template, const char *cmdline, const char *projroot, - else - BAIL_OUT; - break; -+ case 'C': -+ APPEND_STR(SYSCONFDIR); -+ break; -+ case 'D': -+ APPEND_STR(DATADIR); -+ break; - case 'M': - if (!majorvers[0]) { - if (XF86_VERSION_MAJOR < 0 || XF86_VERSION_MAJOR > 99) { --- -1.6.6.1 - -From a4516965de447332794ee0afb9503c351fff6fe8 Mon Sep 17 00:00:00 2001 -From: Dan Nicholson -Date: Sat, 3 Apr 2010 09:33:48 -0700 -Subject: [PATCH 3/6] xfree86: Document how -configdir affects the xorg.conf.d search path - -Explain the "safe" path dance for -configdir, too. - -Signed-off-by: Dan Nicholson -Signed-off-by: Peter Hutterer -(cherry picked from commit 2ac33888a9a5766aaf88bc92a8bd1d489873524c) - -Signed-off-by: Peter Hutterer ---- - hw/xfree86/doc/man/xorg.conf.man.pre | 36 +++++++++++++++++++++++++++++++++- - 1 files changed, 35 insertions(+), 1 deletions(-) - -diff --git a/hw/xfree86/doc/man/xorg.conf.man.pre b/hw/xfree86/doc/man/xorg.conf.man.pre -index 93c8ac4..9a40ce3 100644 ---- a/hw/xfree86/doc/man/xorg.conf.man.pre -+++ b/hw/xfree86/doc/man/xorg.conf.man.pre -@@ -102,10 +102,12 @@ is the machine's hostname as reported by - .BR gethostname (__libmansuffix__). - .PP - Additional configuration files are searched for in the following --directories: -+directories when the server is started as a normal user: - .PP - .RS 4 - .nf -+.IR /etc/X11/ -+.IR __projectroot__/etc/X11/ - .I /etc/X11/__xconfigdir__\-4 - .I /etc/X11/__xconfigdir__ - .I /etc/__xconfigdir__ -@@ -118,6 +120,38 @@ directories: - .fi - .RE - .PP -+where -+.I -+is a relative path (with no \(lq..\(rq components) specified with the -+.B \-configdir -+command line option. -+.PP -+When the __xservername__ server is started by the \(lqroot\(rq user, the -+config directory search locations are as follows: -+.PP -+.RS 4 -+.nf -+ -+.IR /etc/X11/ -+.IR __projectroot__/etc/X11/ -+.I /etc/X11/__xconfigdir__\-4 -+.I /etc/X11/__xconfigdir__ -+.I /etc/__xconfigdir__ -+.IR __projectroot__/etc/X11/__xconfigdir__. -+.I __projectroot__/etc/X11/__xconfigdir__\-4 -+.I __projectroot__/etc/X11/__xconfigdir__ -+.IR __projectroot__/lib/X11/__xconfigdir__. -+.I __projectroot__/lib/X11/__xconfigdir__\-4 -+.I __projectroot__/lib/X11/__xconfigdir__ -+.fi -+.RE -+.PP -+where -+.I -+is the path specified with the -+.B \-configdir -+command line option (which may be absolute or relative). -+.PP - The - .I __xconfigfile__ - and --- -1.6.6.1 - -From 0c4a358eae0e77f389380bbbf39d4419f2dd6dcd Mon Sep 17 00:00:00 2001 -From: Dan Nicholson -Date: Sat, 3 Apr 2010 09:33:49 -0700 -Subject: [PATCH 4/6] xfree86: Set a saner search path for xorg.conf.d - -There's no reason to carry all the oddities from xorg.conf like appended -hostname to the search path for xorg.conf.d. This changes it to something -very simple: - - /etc/X11/ - $sysconfdir/X11/ - /etc/X11/xorg.conf.d - $sysconfdir/X11/xorg.conf.d - -Signed-off-by: Dan Nicholson -Signed-off-by: Peter Hutterer -(cherry picked from commit a1bae63dc634a5a79861eab128c63506081f7ed9) - -Signed-off-by: Peter Hutterer ---- - cpprules.in | 1 + - hw/xfree86/common/xf86Config.c | 16 ++++------------ - hw/xfree86/doc/man/xorg.conf.man.pre | 22 ++++------------------ - 3 files changed, 9 insertions(+), 30 deletions(-) - -diff --git a/cpprules.in b/cpprules.in -index 301305e..6e43578 100644 ---- a/cpprules.in -+++ b/cpprules.in -@@ -34,6 +34,7 @@ MANDEFS = \ - -D__adminmansuffix__=$(ADMIN_MAN_SUFFIX) \ - -D__mandir__=$(mandir) \ - -D__projectroot__=$(prefix) \ -+ -D__sysconfdir__=$(sysconfdir) \ - -D__datadir__=$(datadir) \ - -D__xconfigfile__=$(__XCONFIGFILE__) \ - -D__xconfigdir__=$(__XCONFIGDIR__) \ -diff --git a/hw/xfree86/common/xf86Config.c b/hw/xfree86/common/xf86Config.c -index 718a078..d02c22a 100644 ---- a/hw/xfree86/common/xf86Config.c -+++ b/hw/xfree86/common/xf86Config.c -@@ -97,20 +97,12 @@ extern DeviceAssocRec mouse_assoc; - #endif - #ifndef ROOT_CONFIGDIRPATH - #define ROOT_CONFIGDIRPATH "%A," "%R," \ -- "/etc/X11/%R," "%P/etc/X11/%R," \ -- "/etc/X11/%X-%M," "/etc/X11/%X," "/etc/%X," \ -- "%P/etc/X11/%X.%H," "%P/etc/X11/%X-%M," \ -- "%P/etc/X11/%X," \ -- "%P/lib/X11/%X.%H," "%P/lib/X11/%X-%M," \ -- "%P/lib/X11/%X" -+ "/etc/X11/%R," "%C/X11/%R," \ -+ "/etc/X11/%X," "%C/X11/%X" - #endif - #ifndef USER_CONFIGDIRPATH --#define USER_CONFIGDIRPATH "/etc/X11/%S," "%P/etc/X11/%S," \ -- "/etc/X11/%X-%M," "/etc/X11/%X," "/etc/%X," \ -- "%P/etc/X11/%X.%H," "%P/etc/X11/%X-%M," \ -- "%P/etc/X11/%X," \ -- "%P/lib/X11/%X.%H," "%P/lib/X11/%X-%M," \ -- "%P/lib/X11/%X" -+#define USER_CONFIGDIRPATH "/etc/X11/%R," "%C/X11/%R," \ -+ "/etc/X11/%X," "%C/X11/%X" - #endif - #ifndef PROJECTROOT - #define PROJECTROOT "/usr/X11R6" -diff --git a/hw/xfree86/doc/man/xorg.conf.man.pre b/hw/xfree86/doc/man/xorg.conf.man.pre -index 9a40ce3..acfa1ca 100644 ---- a/hw/xfree86/doc/man/xorg.conf.man.pre -+++ b/hw/xfree86/doc/man/xorg.conf.man.pre -@@ -107,16 +107,9 @@ directories when the server is started as a normal user: - .RS 4 - .nf - .IR /etc/X11/ --.IR __projectroot__/etc/X11/ --.I /etc/X11/__xconfigdir__\-4 -+.IR __sysconfdir__/X11/ - .I /etc/X11/__xconfigdir__ --.I /etc/__xconfigdir__ --.IR __projectroot__/etc/X11/__xconfigdir__. --.I __projectroot__/etc/X11/__xconfigdir__\-4 --.I __projectroot__/etc/X11/__xconfigdir__ --.IR __projectroot__/lib/X11/__xconfigdir__. --.I __projectroot__/lib/X11/__xconfigdir__\-4 --.I __projectroot__/lib/X11/__xconfigdir__ -+.I __sysconfdir__/X11/__xconfigdir__ - .fi - .RE - .PP -@@ -133,16 +126,9 @@ config directory search locations are as follows: - .nf - - .IR /etc/X11/ --.IR __projectroot__/etc/X11/ --.I /etc/X11/__xconfigdir__\-4 -+.IR __sysconfdir__/X11/ - .I /etc/X11/__xconfigdir__ --.I /etc/__xconfigdir__ --.IR __projectroot__/etc/X11/__xconfigdir__. --.I __projectroot__/etc/X11/__xconfigdir__\-4 --.I __projectroot__/etc/X11/__xconfigdir__ --.IR __projectroot__/lib/X11/__xconfigdir__. --.I __projectroot__/lib/X11/__xconfigdir__\-4 --.I __projectroot__/lib/X11/__xconfigdir__ -+.I __sysconfdir__/X11/__xconfigdir__ - .fi - .RE - .PP --- -1.6.6.1 - -From 59f96734633fce3c2bee62bce860aed33033ce3e Mon Sep 17 00:00:00 2001 -From: Dan Nicholson -Date: Sat, 3 Apr 2010 10:08:25 -0700 -Subject: [PATCH 5/6] xfree86: Search for a system xorg.conf.d - -In addition to the conf files found in /etc/X11 or $sysconfdir/X11 used -for local administration, we also reserve a system directory for vendor -and package usage. The simple search path is: - - /usr/share/X11/xorg.conf.d - $datadir/X11/xorg.conf.d - -Files from these directories will have the lowest config priority. The -directory $datadir/X11/xorg.conf.d is exported from xorg-server.pc in -the variable "sysconfigdir". Packages should install their .conf files -to the directory specified by: - - `pkg-config --variable=sysconfigdir xorg-server` - -Signed-off-by: Dan Nicholson -Signed-off-by: Peter Hutterer -(cherry picked from commit 95f01bdfee8241371675f0089170fa6b2908d815) - -Signed-off-by: Peter Hutterer ---- - configure.ac | 2 ++ - hw/xfree86/common/xf86Config.c | 12 ++++++++++-- - hw/xfree86/doc/man/xorg.conf.man.pre | 12 ++++++++++++ - xorg-server.pc.in | 2 ++ - 4 files changed, 26 insertions(+), 2 deletions(-) - -diff --git a/configure.ac b/configure.ac -index a76eda3..48cb724 100644 ---- a/configure.ac -+++ b/configure.ac -@@ -1792,8 +1792,10 @@ if test "x$XORG" = xyes; then - AC_SUBST([driverdir]) - sdkdir="$includedir/xorg" - extdir="$includedir/X11/extensions" -+ sysconfigdir="$datadir/X11/$XF86CONFIGDIR" - AC_SUBST([sdkdir]) - AC_SUBST([extdir]) -+ AC_SUBST([sysconfigdir]) - AC_SUBST([logdir]) - - # stuff the ABI versions into the pc file too -diff --git a/hw/xfree86/common/xf86Config.c b/hw/xfree86/common/xf86Config.c -index d02c22a..1e9543f 100644 ---- a/hw/xfree86/common/xf86Config.c -+++ b/hw/xfree86/common/xf86Config.c -@@ -104,6 +104,9 @@ extern DeviceAssocRec mouse_assoc; - #define USER_CONFIGDIRPATH "/etc/X11/%R," "%C/X11/%R," \ - "/etc/X11/%X," "%C/X11/%X" - #endif -+#ifndef SYS_CONFIGDIRPATH -+#define SYS_CONFIGDIRPATH "/usr/share/X11/%X," "%D/X11/%X" -+#endif - #ifndef PROJECTROOT - #define PROJECTROOT "/usr/X11R6" - #endif -@@ -2421,7 +2424,7 @@ checkInput(serverLayoutPtr layout, Bool implicit_layout) { - ConfigStatus - xf86HandleConfigFile(Bool autoconfig) - { -- const char *filename, *dirname; -+ const char *filename, *dirname, *sysdirname; - char *filesearch, *dirsearch; - MessageType filefrom = X_DEFAULT; - MessageType dirfrom = X_DEFAULT; -@@ -2444,6 +2447,8 @@ xf86HandleConfigFile(Bool autoconfig) - dirfrom = X_CMDLINE; - - xf86initConfigFiles(); -+ sysdirname = xf86openConfigDirFiles(SYS_CONFIGDIRPATH, NULL, -+ PROJECTROOT); - dirname = xf86openConfigDirFiles(dirsearch, xf86ConfigDir, PROJECTROOT); - filename = xf86openConfigFile(filesearch, xf86ConfigFile, PROJECTROOT); - if (filename) { -@@ -2464,7 +2469,10 @@ xf86HandleConfigFile(Bool autoconfig) - "Unable to locate/open config directory: \"%s\"\n", - xf86ConfigDir); - } -- if (!filename && !dirname) -+ if (sysdirname) -+ xf86MsgVerb(X_DEFAULT, 0, "Using system config directory \"%s\"\n", -+ sysdirname); -+ if (!filename && !dirname && !sysdirname) - return CONFIG_NOFILE; - } - -diff --git a/hw/xfree86/doc/man/xorg.conf.man.pre b/hw/xfree86/doc/man/xorg.conf.man.pre -index acfa1ca..4782d61 100644 ---- a/hw/xfree86/doc/man/xorg.conf.man.pre -+++ b/hw/xfree86/doc/man/xorg.conf.man.pre -@@ -138,6 +138,18 @@ is the path specified with the - .B \-configdir - command line option (which may be absolute or relative). - .PP -+Finally, configuration files will also be searched for in directories -+reserved for system use. These are to separate configuration files from -+the vendor or 3rd party packages from those of local administration. -+These files are found in the following directories: -+.PP -+.RS 4 -+.nf -+.I /usr/share/X11/__xconfigdir__ -+.I __datadir__/X11/__xconfigdir__ -+.fi -+.RE -+.PP - The - .I __xconfigfile__ - and -diff --git a/xorg-server.pc.in b/xorg-server.pc.in -index 3d58dab..376cb93 100644 ---- a/xorg-server.pc.in -+++ b/xorg-server.pc.in -@@ -2,8 +2,10 @@ prefix=@prefix@ - exec_prefix=@exec_prefix@ - libdir=@libdir@ - includedir=@includedir@ -+datarootdir=@datarootdir@ - moduledir=@moduledir@ - sdkdir=@sdkdir@ -+sysconfigdir=@sysconfigdir@ - - abi_ansic=@abi_ansic@ - abi_videodrv=@abi_videodrv@ --- -1.6.6.1 - -From 3e2ab9139b12b1239eebcbb6c6a23e7284dd7b44 Mon Sep 17 00:00:00 2001 -From: Dan Nicholson -Date: Sat, 3 Apr 2010 09:33:51 -0700 -Subject: [PATCH 6/6] Move 10-evdev.conf to system config dir $datadir/X11/xorg.conf.d - -Since the server searches in a vendor specific path now, we can install -the evdev catchall there without disturbing local administration files. - -Signed-off-by: Dan Nicholson -Signed-off-by: Peter Hutterer -(cherry picked from commit d4dd3d0085f8eaca8c989aaeace1a1a24c5ebf49) - -Signed-off-by: Peter Hutterer ---- - config/Makefile.am | 2 +- - 1 files changed, 1 insertions(+), 1 deletions(-) - -diff --git a/config/Makefile.am b/config/Makefile.am -index eed7454..675a3b2 100644 ---- a/config/Makefile.am -+++ b/config/Makefile.am -@@ -9,7 +9,7 @@ AM_CFLAGS += $(UDEV_CFLAGS) - libconfig_la_SOURCES += udev.c - libconfig_la_LIBADD = $(UDEV_LIBS) - --xorgconfddir = $(prefix)/etc/X11/$(XF86CONFIGDIR) -+xorgconfddir = $(datadir)/X11/$(XF86CONFIGDIR) - xorgconfd_DATA = 10-evdev.conf - - else --- -1.6.6.1 - diff --git a/xserver-1.9.0-qxl-fallback.patch b/xserver-1.9.0-qxl-fallback.patch index 538a323..cdb6645 100644 --- a/xserver-1.9.0-qxl-fallback.patch +++ b/xserver-1.9.0-qxl-fallback.patch @@ -1,14 +1,14 @@ -From 18e7738eb03f131598e1613ce8bf0bff4ab1ecdf Mon Sep 17 00:00:00 2001 +From edf5262c75416c2baf199e3d1c95b43f3e0d0cef Mon Sep 17 00:00:00 2001 From: Hans de Goede Date: Wed, 13 Oct 2010 11:16:31 -0400 -Subject: [PATCH] qxl v1 fallback +Subject: [PATCH 6/9] qxl v1 fallback --- hw/xfree86/common/xf86pciBus.c | 7 ++++++- 1 files changed, 6 insertions(+), 1 deletions(-) diff --git a/hw/xfree86/common/xf86pciBus.c b/hw/xfree86/common/xf86pciBus.c -index aaacf42..048a410 100644 +index 4640ede..a7f0617 100644 --- a/hw/xfree86/common/xf86pciBus.c +++ b/hw/xfree86/common/xf86pciBus.c @@ -1141,7 +1141,12 @@ videoPtrToDriverList(struct pci_device *dev, @@ -26,5 +26,5 @@ index aaacf42..048a410 100644 case 0x5333: switch (dev->device_id) -- -1.7.3.2 +1.7.4.4 diff --git a/xserver-1.9.99.1-xfree86-don-t-overwrite-option-list-32115.patch b/xserver-1.9.99.1-xfree86-don-t-overwrite-option-list-32115.patch deleted file mode 100644 index 8bb6a1e..0000000 --- a/xserver-1.9.99.1-xfree86-don-t-overwrite-option-list-32115.patch +++ /dev/null @@ -1,41 +0,0 @@ -From beea2378f142556471c62290e275935af848e137 Mon Sep 17 00:00:00 2001 -From: Peter Hutterer -Date: Mon, 6 Dec 2010 14:33:43 +1000 -Subject: [PATCH] xfree86: don't overwrite option list (#32115) - -Options set in the configuration file were unconditionally overwritten by -the server. Merge the already existing options and the new options together -instead of just overwriting ones. - -Introduced in commit 2199842ed50b3eb40d54146827fc58cae7e873ec -Author: Peter Hutterer -Date: Thu Sep 2 10:52:54 2010 +1000 - - xfree86: remove extraOptions field from IDevRec. - -X.Org Bug 32115 - -Signed-off-by: Peter Hutterer -Reviewed-by: Dan Nicholson -Tested-by: David Ronis ---- - hw/xfree86/common/xf86Config.c | 3 ++- - 1 files changed, 2 insertions(+), 1 deletions(-) - -diff --git a/hw/xfree86/common/xf86Config.c b/hw/xfree86/common/xf86Config.c -index 5800700..c352f3c 100644 ---- a/hw/xfree86/common/xf86Config.c -+++ b/hw/xfree86/common/xf86Config.c -@@ -1465,7 +1465,8 @@ configInputDevices(XF86ConfLayoutPtr layout, serverLayoutPtr servlayoutp) - free(indp); - return FALSE; - } -- indp[count]->options = irp->iref_option_lst; -+ indp[count]->options = xf86OptionListMerge(indp[count]->options, -+ irp->iref_option_lst); - count++; - irp = (XF86ConfInputrefPtr)irp->list.next; - } --- -1.7.4 - diff --git a/xserver-1.9.99.1-xfree86-swap-the-order-to-be-merged-lists-in-xf86Col.patch b/xserver-1.9.99.1-xfree86-swap-the-order-to-be-merged-lists-in-xf86Col.patch deleted file mode 100644 index 8f7788a..0000000 --- a/xserver-1.9.99.1-xfree86-swap-the-order-to-be-merged-lists-in-xf86Col.patch +++ /dev/null @@ -1,38 +0,0 @@ -From 9db9e964f6ca553dcbd3b7b037745d9581eaa065 Mon Sep 17 00:00:00 2001 -From: Peter Hutterer -Date: Fri, 10 Dec 2010 13:23:13 +1000 -Subject: [PATCH] xfree86: swap the order to-be-merged lists in xf86CollectInputOptions. - -Current order causes the user-configured option list to be overwritten with -the default list supplied by the driver. Swap around so we overwrite the -driver's default values instead. - -This only affected options supplied by the driver such as XkbLayout in the -case of evdev. - -Reported-by: Sebastian Glita -Reported-by: Simon Thum -Signed-off-by: Peter Hutterer -Reviewed-by: Simon Thum -Reviewed-by: Dan Nicholson -Tested-by: Sebastian Glita ---- - hw/xfree86/common/xf86Option.c | 2 +- - 1 files changed, 1 insertions(+), 1 deletions(-) - -diff --git a/hw/xfree86/common/xf86Option.c b/hw/xfree86/common/xf86Option.c -index d49aa31..16c27e5 100644 ---- a/hw/xfree86/common/xf86Option.c -+++ b/hw/xfree86/common/xf86Option.c -@@ -130,7 +130,7 @@ xf86CollectInputOptions(InputInfoPtr pInfo, const char **defaultOpts) - if (defaultOpts) { - XF86OptionPtr tmp =xf86optionListCreate(defaultOpts, -1, 0); - if (pInfo->options) -- pInfo->options = xf86optionListMerge(pInfo->options, tmp); -+ pInfo->options = xf86optionListMerge(tmp, pInfo->options); - else - pInfo->options = tmp; - } --- -1.7.4 - diff --git a/xserver-1.9.99.1-xkb-if-the-keymap-failed-to-compile-load-the-default.patch b/xserver-1.9.99.1-xkb-if-the-keymap-failed-to-compile-load-the-default.patch deleted file mode 100644 index eb91cc2..0000000 --- a/xserver-1.9.99.1-xkb-if-the-keymap-failed-to-compile-load-the-default.patch +++ /dev/null @@ -1,69 +0,0 @@ -From d3499556d8d83396fa2585bd00371a81e086be36 Mon Sep 17 00:00:00 2001 -From: Peter Hutterer -Date: Thu, 10 Feb 2011 15:12:14 +1000 -Subject: [PATCH] xkb: if the keymap failed to compile, load the default keymap instead. - -We really need symbols, compat, keynames, vmods and types for a sensible keymap. - -Try this in your xorg.conf.d snippets for all keyboards: - Option "XkbLayout" "us" - Option "XkbVariant" "nodeadkeys" - -us(nodeadkeys) doesn't exist so xkbcomp provides everything but the symbols -map. We say we want everything but don't _need_ anything, the server happily -gives us a keymap with every key mapped to NoSymbol. This in turn isn't what -we want after all. - -So instead, require symbols, compat, keynames, vmods and types from the -keymap and if that fails, load the default keymap instead. If that fails -too, all bets are off. - -Signed-off-by: Peter Hutterer -Reviewed-by: Dan Nicholson ---- - xkb/ddxLoad.c | 23 ++++++++++++++++++++++- - 1 files changed, 22 insertions(+), 1 deletions(-) - -diff --git a/xkb/ddxLoad.c b/xkb/ddxLoad.c -index b968c43..ac587fc 100644 ---- a/xkb/ddxLoad.c -+++ b/xkb/ddxLoad.c -@@ -470,13 +470,34 @@ XkbDescPtr - XkbCompileKeymap(DeviceIntPtr dev, XkbRMLVOSet *rmlvo) - { - XkbDescPtr xkb; -+ unsigned int need; - - if (!dev || !rmlvo) { - LogMessage(X_ERROR, "XKB: No device or RMLVO specified\n"); - return NULL; - } - -- xkb = XkbCompileKeymapForDevice(dev, rmlvo, 0); -+ /* These are the components we really really need */ -+ need = XkmSymbolsMask | XkmCompatMapMask | XkmTypesMask | -+ XkmKeyNamesMask | XkmVirtualModsMask; -+ -+ -+ xkb = XkbCompileKeymapForDevice(dev, rmlvo, need); -+ -+ if (!xkb) { -+ XkbRMLVOSet dflts; -+ -+ /* we didn't get what we really needed. And that will likely leave -+ * us with a keyboard that doesn't work. Use the defaults instead */ -+ LogMessage(X_ERROR, "XKB: Failed to load keymap. Loading default " -+ "keymap instead.\n"); -+ -+ XkbGetRulesDflts(&dflts); -+ -+ xkb = XkbCompileKeymapForDevice(dev, &dflts, 0); -+ -+ XkbFreeRMLVOSet(&dflts, FALSE); -+ } - - return xkb; - } --- -1.7.4 - diff --git a/xserver-1.9.99.1-xkb-split-out-keymap-compilation.patch b/xserver-1.9.99.1-xkb-split-out-keymap-compilation.patch deleted file mode 100644 index 44c7f58..0000000 --- a/xserver-1.9.99.1-xkb-split-out-keymap-compilation.patch +++ /dev/null @@ -1,95 +0,0 @@ -From 47d1d2fed656c3a3b2600491078da90962c46934 Mon Sep 17 00:00:00 2001 -From: Peter Hutterer -Date: Thu, 10 Feb 2011 15:11:34 +1000 -Subject: [PATCH] xkb: split out keymap compilation. - -Refactoring for simpler double-use in the next patch. No functional changes. - -Signed-off-by: Peter Hutterer -Reviewed-by: Dan Nicholson ---- - xkb/ddxLoad.c | 55 +++++++++++++++++++++++++++++++++++++++---------------- - 1 files changed, 39 insertions(+), 16 deletions(-) - -diff --git a/xkb/ddxLoad.c b/xkb/ddxLoad.c -index 51b5777..b968c43 100644 ---- a/xkb/ddxLoad.c -+++ b/xkb/ddxLoad.c -@@ -425,35 +425,58 @@ XkbRF_RulesPtr rules; - return complete; - } - --XkbDescPtr --XkbCompileKeymap(DeviceIntPtr dev, XkbRMLVOSet *rmlvo) -+static Bool -+XkbRMLVOtoKcCGST(DeviceIntPtr dev, XkbRMLVOSet *rmlvo, XkbComponentNamesPtr kccgst) - { -- XkbComponentNamesRec kccgst; - XkbRF_VarDefsRec mlvo; -- XkbDescPtr xkb; -- char name[PATH_MAX]; -- -- if (!dev || !rmlvo) { -- LogMessage(X_ERROR, "XKB: No device or RMLVO specified\n"); -- return NULL; -- } - - mlvo.model = rmlvo->model; - mlvo.layout = rmlvo->layout; - mlvo.variant = rmlvo->variant; - mlvo.options = rmlvo->options; - -- /* XDNFR already logs for us. */ -- if (!XkbDDXNamesFromRules(dev, rmlvo->rules, &mlvo, &kccgst)) -+ return XkbDDXNamesFromRules(dev, rmlvo->rules, &mlvo, kccgst); -+} -+ -+/** -+ * Compile the given RMLVO keymap and return it. Returns the XkbDescPtr on -+ * success or NULL on failure. If the components compiled are not a superset -+ * or equal to need, the compiliation is treated as failure. -+ */ -+static XkbDescPtr -+XkbCompileKeymapForDevice(DeviceIntPtr dev, XkbRMLVOSet *rmlvo, int need) -+{ -+ XkbDescPtr xkb; -+ unsigned int provided; -+ XkbComponentNamesRec kccgst; -+ char name[PATH_MAX]; -+ -+ if (!XkbRMLVOtoKcCGST(dev, rmlvo, &kccgst)) - return NULL; - -- /* XDLKBN too, but it might return 0 as well as allocating. */ -- if (!XkbDDXLoadKeymapByNames(dev, &kccgst, XkmAllIndicesMask, 0, &xkb, name, -- PATH_MAX)) { -- if (xkb) -+ provided = XkbDDXLoadKeymapByNames(dev, &kccgst, XkmAllIndicesMask, need, -+ &xkb, name, PATH_MAX); -+ if ((need & provided) != need) { -+ if (xkb) { - XkbFreeKeyboard(xkb, 0, TRUE); -+ xkb = NULL; -+ } -+ } -+ -+ return xkb; -+} -+ -+XkbDescPtr -+XkbCompileKeymap(DeviceIntPtr dev, XkbRMLVOSet *rmlvo) -+{ -+ XkbDescPtr xkb; -+ -+ if (!dev || !rmlvo) { -+ LogMessage(X_ERROR, "XKB: No device or RMLVO specified\n"); - return NULL; - } - -+ xkb = XkbCompileKeymapForDevice(dev, rmlvo, 0); -+ - return xkb; - } --- -1.7.4 - diff --git a/xserver-1.9.99.901-xkb-repeat-issues.patch b/xserver-1.9.99.901-xkb-repeat-issues.patch deleted file mode 100644 index ca1579f..0000000 --- a/xserver-1.9.99.901-xkb-repeat-issues.patch +++ /dev/null @@ -1,79 +0,0 @@ -From 4993bd3187f9e5398014ead5c845d2353cc3de6c Mon Sep 17 00:00:00 2001 -From: Peter Hutterer -Date: Thu, 13 Jan 2011 12:20:38 +1000 -Subject: [PATCH] xkb: after making changes to the xkb ctrls, copy them back into kbdfeed. - -enabled_ctrls_changes nowhere near the usual event or config paths. So this -condition always evaluated to false and the memcpy would thus never been -hit. As a result, any modification to the XKB struct during -XkbUpdateDescActions was not reflected in the kbdfeed ctrls. -The flag that is set by XkbUpdateDescActions() if ctrls were changed are in -enabled_ctrls. - -This mainly affected keyboard repeat control as XKB uses the kbdfeed ctrls, -not XKB's per_key_repeats, to determine if a key needs to be repeated. Thus, -adding a "repeat= False" to the XKB map of any action did not have any -effect. - -Test case: -assign Mode_switch to any key that by default repeats, e.g. the menu key. - - key { [ Mode_switch ] }; - -Then modify the Mode_switch action to not repeat the key. - - interpret Mode_switch+AnyOfOrNone(all) { - virtualModifier= AltGr; - useModMapMods=level1; - action= SetGroup(group=+1); - // Add this line - repeat= False; - }; - -Though the flags are correctly reflected in the description loaded in the -server, the change is not handed back to the kbdfeed struct and XKB will -trigger softrepeats of this key. - -This patch also adds two explanatory comments and an extra check, as this -path may be hit before the CtrlProc for the kbdfeed struct is set. - -Red Hat Bug 537708 - -Also fixes broken auto-repeat of the backspace key in the colemak layout -(mapped to CapsLock). - -X.Org Bug 16318 - -Signed-off-by: Peter Hutterer ---- - xkb/xkbUtils.c | 7 +++++-- - 1 files changed, 5 insertions(+), 2 deletions(-) - -diff --git a/xkb/xkbUtils.c b/xkb/xkbUtils.c -index 14dc784..23fe57e 100644 ---- a/xkb/xkbUtils.c -+++ b/xkb/xkbUtils.c -@@ -342,15 +342,18 @@ CARD8 * repeat; - xkb= xkbi->desc; - repeat= xkb->ctrls->per_key_repeat; - -+ /* before letting XKB do any changes, copy the current core values */ - if (pXDev->kbdfeed) - memcpy(repeat,pXDev->kbdfeed->ctrl.autoRepeats,XkbPerKeyBitArraySize); - - XkbUpdateDescActions(xkb,first,num,changes); - - if ((pXDev->kbdfeed)&& -- (changes->ctrls.enabled_ctrls_changes&XkbPerKeyRepeatMask)) { -+ (changes->ctrls.changed_ctrls&XkbPerKeyRepeatMask)) { -+ /* now copy the modified changes back to core */ - memcpy(pXDev->kbdfeed->ctrl.autoRepeats,repeat, XkbPerKeyBitArraySize); -- (*pXDev->kbdfeed->CtrlProc)(pXDev, &pXDev->kbdfeed->ctrl); -+ if (pXDev->kbdfeed->CtrlProc) -+ (*pXDev->kbdfeed->CtrlProc)(pXDev, &pXDev->kbdfeed->ctrl); - } - return; - } --- -1.7.3.4 -