rebase all patches
xserver-1.10-vbe-malloc.patch: drop, d8caa782009abf4d "git rm" all unused patches
This commit is contained in:
parent
de81d9548c
commit
4c175ee402
@ -30,7 +30,7 @@
|
|||||||
Summary: X.Org X11 X server
|
Summary: X.Org X11 X server
|
||||||
Name: xorg-x11-server
|
Name: xorg-x11-server
|
||||||
Version: 1.10.99.1
|
Version: 1.10.99.1
|
||||||
Release: 1%{?gitdate:.%{gitdate}}%{dist}
|
Release: 2%{?gitdate:.%{gitdate}}%{dist}
|
||||||
URL: http://www.x.org
|
URL: http://www.x.org
|
||||||
License: MIT
|
License: MIT
|
||||||
Group: User Interface/X
|
Group: User Interface/X
|
||||||
@ -85,7 +85,6 @@ Patch6053: xserver-1.8-disable-vboxvideo.patch
|
|||||||
Patch7005: xserver-1.9.0-qxl-fallback.patch
|
Patch7005: xserver-1.9.0-qxl-fallback.patch
|
||||||
|
|
||||||
Patch7006: xserver-1.10-pointer-barriers.patch
|
Patch7006: xserver-1.10-pointer-barriers.patch
|
||||||
Patch7007: xserver-1.10-vbe-malloc.patch
|
|
||||||
# from ajax/xserver-next
|
# from ajax/xserver-next
|
||||||
Patch7008: xserver-1.10-glx-pixmap-crash.patch
|
Patch7008: xserver-1.10-glx-pixmap-crash.patch
|
||||||
Patch7009: xserver-1.10-bg-none-revert.patch
|
Patch7009: xserver-1.10-bg-none-revert.patch
|
||||||
@ -553,6 +552,11 @@ rm -rf $RPM_BUILD_ROOT
|
|||||||
%{xserver_source_dir}
|
%{xserver_source_dir}
|
||||||
|
|
||||||
%changelog
|
%changelog
|
||||||
|
* Tue Apr 19 2011 Peter Hutterer <peter.hutterer@redhat.com> 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 <peter.hutterer@redhat.com> 1.10.99.1-1.20110418
|
* Mon Apr 18 2011 Peter Hutterer <peter.hutterer@redhat.com> 1.10.99.1-1.20110418
|
||||||
- Today's server from git
|
- Today's server from git
|
||||||
|
|
||||||
|
@ -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 <ajax@redhat.com>
|
From: Adam Jackson <ajax@redhat.com>
|
||||||
Date: Tue, 29 Mar 2011 10:09:46 -0400
|
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.
|
This reverts commit 6dd775f57d2f94f0ddaee324aeec33b9b66ed5bc.
|
||||||
|
|
||||||
@ -58,5 +58,5 @@ index e4064f6..7164c0d 100644
|
|||||||
{
|
{
|
||||||
GCPtr pGC = GetScratchGC (pWin->drawable.depth, pScreen);
|
GCPtr pGC = GetScratchGC (pWin->drawable.depth, pScreen);
|
||||||
--
|
--
|
||||||
1.7.4.1
|
1.7.4.4
|
||||||
|
|
||||||
|
@ -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 <ajax@redhat.com>
|
From: Adam Jackson <ajax@redhat.com>
|
||||||
Date: Wed, 30 Mar 2011 16:03:53 -0400
|
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
|
MIME-Version: 1.0
|
||||||
Content-Type: text/plain; charset=UTF-8
|
Content-Type: text/plain; charset=UTF-8
|
||||||
Content-Transfer-Encoding: 8bit
|
Content-Transfer-Encoding: 8bit
|
||||||
@ -20,10 +20,10 @@ Signed-off-by: Adam Jackson <ajax@redhat.com>
|
|||||||
2 files changed, 20 insertions(+), 13 deletions(-)
|
2 files changed, 20 insertions(+), 13 deletions(-)
|
||||||
|
|
||||||
diff --git a/glx/glxcmds.c b/glx/glxcmds.c
|
diff --git a/glx/glxcmds.c b/glx/glxcmds.c
|
||||||
index 9b4bc9e..9d60bdb 100644
|
index 66d4c7e..d5b764f 100644
|
||||||
--- a/glx/glxcmds.c
|
--- a/glx/glxcmds.c
|
||||||
+++ b/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;
|
return BadAlloc;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -39,7 +39,7 @@ index 9b4bc9e..9d60bdb 100644
|
|||||||
!AddResource(pDraw->id, __glXDrawableRes, pGlxDraw)) {
|
!AddResource(pDraw->id, __glXDrawableRes, pGlxDraw)) {
|
||||||
pGlxDraw->destroy (pGlxDraw);
|
pGlxDraw->destroy (pGlxDraw);
|
||||||
return BadAlloc;
|
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,
|
err = DoCreateGLXDrawable(client, pGlxScreen, config, pDraw, drawableId,
|
||||||
glxDrawableId, GLX_DRAWABLE_PIXMAP);
|
glxDrawableId, GLX_DRAWABLE_PIXMAP);
|
||||||
|
|
||||||
@ -49,10 +49,10 @@ index 9b4bc9e..9d60bdb 100644
|
|||||||
}
|
}
|
||||||
|
|
||||||
diff --git a/glx/glxext.c b/glx/glxext.c
|
diff --git a/glx/glxext.c b/glx/glxext.c
|
||||||
index 4bd5d6b..cec3ee5 100644
|
index 3f3dd79..9cfc096 100644
|
||||||
--- a/glx/glxext.c
|
--- a/glx/glxext.c
|
||||||
+++ b/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;
|
__GLXcontext *c, *next;
|
||||||
|
|
||||||
@ -77,8 +77,8 @@ index 4bd5d6b..cec3ee5 100644
|
|||||||
}
|
}
|
||||||
|
|
||||||
for (c = glxAllContexts; c; c = next) {
|
for (c = glxAllContexts; c; c = next) {
|
||||||
@@ -168,6 +168,10 @@ static Bool DrawableGone(__GLXdrawable *glxPriv, XID xid)
|
@@ -143,6 +143,10 @@ static Bool DrawableGone(__GLXdrawable *glxPriv, XID xid)
|
||||||
__glXFreeContext(c);
|
c->readPriv = NULL;
|
||||||
}
|
}
|
||||||
|
|
||||||
+ /* drop our reference to any backing pixmap */
|
+ /* drop our reference to any backing pixmap */
|
||||||
@ -89,5 +89,5 @@ index 4bd5d6b..cec3ee5 100644
|
|||||||
|
|
||||||
return True;
|
return True;
|
||||||
--
|
--
|
||||||
1.7.4.1
|
1.7.4.4
|
||||||
|
|
||||||
|
@ -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 <ajax@redhat.com>
|
From: Adam Jackson <ajax@redhat.com>
|
||||||
Date: Thu, 17 Mar 2011 13:56:17 -0400
|
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 +-
|
include/protocol-versions.h | 2 +-
|
||||||
mi/mipointer.c | 16 ++-
|
test/Makefile.am | 3 +-
|
||||||
mi/mipointer.h | 6 +
|
|
||||||
randr/randr.c | 2 +
|
|
||||||
randr/randrstr.h | 4 +
|
|
||||||
randr/rrcrtc.c | 155 ++++++++++++++++
|
|
||||||
test/Makefile.am | 4 +-
|
|
||||||
xfixes/cursor.c | 408 ++++++++++++++++++++++++++++++++++++++++++-
|
xfixes/cursor.c | 408 ++++++++++++++++++++++++++++++++++++++++++-
|
||||||
xfixes/xfixes.c | 24 ++-
|
xfixes/xfixes.c | 24 ++-
|
||||||
xfixes/xfixes.h | 17 ++
|
xfixes/xfixes.h | 17 ++
|
||||||
xfixes/xfixesint.h | 16 ++
|
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
|
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
|
--- a/include/protocol-versions.h
|
||||||
+++ b/include/protocol-versions.h
|
+++ b/include/protocol-versions.h
|
||||||
@@ -126,7 +126,7 @@
|
@@ -122,7 +122,7 @@
|
||||||
#define SERVER_XF86VIDMODE_MINOR_VERSION 2
|
#define SERVER_XF86VIDMODE_MINOR_VERSION 2
|
||||||
|
|
||||||
/* Fixes */
|
/* Fixes */
|
||||||
@ -108,327 +25,23 @@ index 1d33bdd..1dc66ad 100644
|
|||||||
#define SERVER_XFIXES_MINOR_VERSION 0
|
#define SERVER_XFIXES_MINOR_VERSION 0
|
||||||
|
|
||||||
/* X Input */
|
/* 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
|
diff --git a/test/Makefile.am b/test/Makefile.am
|
||||||
index 456221e..ccdb859 100644
|
index f3265b7..b60d319 100644
|
||||||
--- a/test/Makefile.am
|
--- a/test/Makefile.am
|
||||||
+++ b/test/Makefile.am
|
+++ b/test/Makefile.am
|
||||||
@@ -1,6 +1,6 @@
|
@@ -2,7 +2,7 @@ if ENABLE_UNIT_TESTS
|
||||||
if UNITTESTS
|
if HAVE_GLIB
|
||||||
|
if HAVE_LD_WRAP
|
||||||
SUBDIRS= . xi2
|
SUBDIRS= . xi2
|
||||||
-check_PROGRAMS = xkb input xtest
|
-noinst_PROGRAMS = xkb input xtest list
|
||||||
+check_PROGRAMS = xkb input xtest list fixes
|
+noinst_PROGRAMS = xkb input xtest list fixes
|
||||||
check_LTLIBRARIES = libxservertest.la
|
check_LTLIBRARIES = libxservertest.la
|
||||||
|
|
||||||
TESTS=$(check_PROGRAMS)
|
TESTS=$(noinst_PROGRAMS)
|
||||||
@@ -16,6 +16,8 @@ endif
|
@@ -19,6 +19,7 @@ xkb_LDADD=$(TEST_LDADD)
|
||||||
xkb_LDADD=$(TEST_LDADD)
|
|
||||||
input_LDADD=$(TEST_LDADD)
|
input_LDADD=$(TEST_LDADD)
|
||||||
xtest_LDADD=$(TEST_LDADD)
|
xtest_LDADD=$(TEST_LDADD)
|
||||||
+list_LDADD=$(TEST_LDADD)
|
list_LDADD=$(TEST_LDADD)
|
||||||
+fixes_LDADD=$(TEST_LDADD)
|
+fixes_LDADD=$(TEST_LDADD)
|
||||||
|
|
||||||
libxservertest_la_LIBADD = \
|
libxservertest_la_LIBADD = \
|
||||||
@ -914,7 +527,7 @@ index fb608f6..5c55c95 100644
|
|||||||
}
|
}
|
||||||
|
|
||||||
diff --git a/xfixes/xfixes.c b/xfixes/xfixes.c
|
diff --git a/xfixes/xfixes.c b/xfixes/xfixes.c
|
||||||
index e8c7bf1..a57884b 100644
|
index e8c7bf1..de0e4db 100644
|
||||||
--- a/xfixes/xfixes.c
|
--- a/xfixes/xfixes.c
|
||||||
+++ b/xfixes/xfixes.c
|
+++ b/xfixes/xfixes.c
|
||||||
@@ -1,5 +1,6 @@
|
@@ -1,5 +1,6 @@
|
||||||
@ -1050,5 +663,5 @@ index d005369..6ba276e 100644
|
|||||||
void PanoramiXFixesInit (void);
|
void PanoramiXFixesInit (void);
|
||||||
void PanoramiXFixesReset (void);
|
void PanoramiXFixesReset (void);
|
||||||
--
|
--
|
||||||
1.7.4
|
1.7.4.4
|
||||||
|
|
||||||
|
@ -1,43 +0,0 @@
|
|||||||
From 0ab680f08208afe51ad6ddc1018b7d6f8b851840 Mon Sep 17 00:00:00 2001
|
|
||||||
From: Adam Jackson <ajax@redhat.com>
|
|
||||||
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 <kettenis@openbsd.org>
|
|
||||||
Reviewed-by: Alan Coopersmith <alan.coopersmith@oracle.com>
|
|
||||||
Signed-off-by: Adam Jackson <ajax@redhat.com>
|
|
||||||
(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
|
|
||||||
|
|
@ -1,26 +0,0 @@
|
|||||||
From c799dd4390e5ea301c8f4f81784ac590b97f7a07 Mon Sep 17 00:00:00 2001
|
|
||||||
From: Adam Jackson <ajax@redhat.com>
|
|
||||||
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
|
|
||||||
|
|
@ -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 <ajax@redhat.com>
|
From: Adam Jackson <ajax@redhat.com>
|
||||||
Date: Thu, 18 Jun 2009 16:56:41 +1000
|
Date: Thu, 18 Jun 2009 16:56:41 +1000
|
||||||
Subject: [PATCH] displayfd hack
|
Subject: [PATCH 3/9] displayfd hack
|
||||||
|
|
||||||
---
|
---
|
||||||
dix/globals.c | 1 +
|
dix/globals.c | 1 +
|
||||||
@ -35,7 +35,7 @@ index 5c70717..f23203f 100644
|
|||||||
extern _X_EXPORT int defaultBackingStore;
|
extern _X_EXPORT int defaultBackingStore;
|
||||||
extern _X_EXPORT Bool disableBackingStore;
|
extern _X_EXPORT Bool disableBackingStore;
|
||||||
diff --git a/os/connection.c b/os/connection.c
|
diff --git a/os/connection.c b/os/connection.c
|
||||||
index 5452ae1..9c20ef1 100644
|
index 0c580ab..1acdb7f 100644
|
||||||
--- a/os/connection.c
|
--- a/os/connection.c
|
||||||
+++ b/os/connection.c
|
+++ b/os/connection.c
|
||||||
@@ -145,6 +145,7 @@ Bool AnyClientsWriteBlocked; /* true if some client blocked on write */
|
@@ -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
|
diff --git a/os/utils.c b/os/utils.c
|
||||||
index afdff0c..6866740 100644
|
index 36cb46f..6338860 100644
|
||||||
--- a/os/utils.c
|
--- a/os/utils.c
|
||||||
+++ b/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
|
else
|
||||||
UseMsg();
|
UseMsg();
|
||||||
}
|
}
|
||||||
@ -171,5 +171,5 @@ index afdff0c..6866740 100644
|
|||||||
else if ( strcmp( argv[i], "dpms") == 0)
|
else if ( strcmp( argv[i], "dpms") == 0)
|
||||||
/* ignored for compatibility */ ;
|
/* ignored for compatibility */ ;
|
||||||
--
|
--
|
||||||
1.7.3.2
|
1.7.4.4
|
||||||
|
|
||||||
|
@ -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 <ajax@redhat.com>
|
From: Adam Jackson <ajax@redhat.com>
|
||||||
Date: Wed, 11 Mar 2009 14:02:11 -0400
|
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.
|
No good can come of this.
|
||||||
---
|
---
|
||||||
@ -9,10 +9,10 @@ No good can come of this.
|
|||||||
1 files changed, 0 insertions(+), 2 deletions(-)
|
1 files changed, 0 insertions(+), 2 deletions(-)
|
||||||
|
|
||||||
diff --git a/configure.ac b/configure.ac
|
diff --git a/configure.ac b/configure.ac
|
||||||
index bd027cd..9adbdc5 100644
|
index 9e04ff0..b1175f5 100644
|
||||||
--- a/configure.ac
|
--- a/configure.ac
|
||||||
+++ b/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
|
case $host_cpu in
|
||||||
ia64*)
|
ia64*)
|
||||||
linux_ia64=yes
|
linux_ia64=yes
|
||||||
@ -27,5 +27,5 @@ index bd027cd..9adbdc5 100644
|
|||||||
*)
|
*)
|
||||||
;;
|
;;
|
||||||
--
|
--
|
||||||
1.7.3.2
|
1.7.4.4
|
||||||
|
|
||||||
|
@ -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 <x@fedoraproject.org>
|
From: Fedora X Ninjas <x@fedoraproject.org>
|
||||||
Date: Tue, 16 Feb 2010 11:38:17 +1000
|
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.
|
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 +++++++++++++++++-
|
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
|
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
|
--- a/hw/xfree86/common/xf86pciBus.c
|
||||||
+++ b/hw/xfree86/common/xf86pciBus.c
|
+++ b/hw/xfree86/common/xf86pciBus.c
|
||||||
@@ -1123,7 +1123,23 @@ videoPtrToDriverList(struct pci_device *dev,
|
@@ -1123,7 +1123,23 @@ videoPtrToDriverList(struct pci_device *dev,
|
||||||
@ -104,5 +38,5 @@ index 3e9c455..e34e6d6 100644
|
|||||||
case 0x1b36: driverList[0] = "qxl"; break;
|
case 0x1b36: driverList[0] = "qxl"; break;
|
||||||
case 0x1163: driverList[0] = "rendition"; break;
|
case 0x1163: driverList[0] = "rendition"; break;
|
||||||
--
|
--
|
||||||
1.7.3.2
|
1.7.4.4
|
||||||
|
|
||||||
|
@ -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 <ajax@redhat.com>
|
From: Adam Jackson <ajax@redhat.com>
|
||||||
Date: Tue, 28 Jul 2009 11:07:13 -0400
|
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
|
[Enhanced to add a new prefer clone option for drivers. This
|
||||||
allows for servers like RN50 where two heads are disjoint. - airlied]
|
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.
|
* These can be used when the minor ABI version is incremented.
|
||||||
* The NUM_* parameters must be reduced appropriately to keep the
|
* The NUM_* parameters must be reduced appropriately to keep the
|
||||||
diff --git a/hw/xfree86/modes/xf86Crtc.c b/hw/xfree86/modes/xf86Crtc.c
|
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
|
--- a/hw/xfree86/modes/xf86Crtc.c
|
||||||
+++ b/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 o;
|
||||||
int min_x, min_y;
|
int min_x, min_y;
|
||||||
|
|
||||||
@ -67,7 +67,7 @@ index b5e9dc2..38ce9d0 100644
|
|||||||
for (o = 0; o < config->num_output; o++)
|
for (o = 0; o < config->num_output; o++)
|
||||||
{
|
{
|
||||||
xf86OutputPtr output = config->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;
|
return match;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -125,7 +125,7 @@ index b5e9dc2..38ce9d0 100644
|
|||||||
static Bool
|
static Bool
|
||||||
xf86TargetPreferred(ScrnInfoPtr scrn, xf86CrtcConfigPtr config,
|
xf86TargetPreferred(ScrnInfoPtr scrn, xf86CrtcConfigPtr config,
|
||||||
DisplayModePtr *modes, Bool *enabled,
|
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.
|
* biggest mode for its aspect ratio, assuming one exists.
|
||||||
*/
|
*/
|
||||||
if (!ret) do {
|
if (!ret) do {
|
||||||
@ -140,7 +140,7 @@ index b5e9dc2..38ce9d0 100644
|
|||||||
break;
|
break;
|
||||||
|
|
||||||
p = -1;
|
p = -1;
|
||||||
@@ -2409,6 +2465,8 @@ xf86InitialConfiguration (ScrnInfoPtr scrn, Bool canGrow)
|
@@ -2388,6 +2444,8 @@ xf86InitialConfiguration (ScrnInfoPtr scrn, Bool canGrow)
|
||||||
} else {
|
} else {
|
||||||
if (xf86TargetUserpref(scrn, config, modes, enabled, width, height))
|
if (xf86TargetUserpref(scrn, config, modes, enabled, width, height))
|
||||||
xf86DrvMsg(i, X_INFO, "Using user preference for initial modes\n");
|
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))
|
else if (xf86TargetPreferred(scrn, config, modes, enabled, width, height))
|
||||||
xf86DrvMsg(i, X_INFO, "Using exact sizes for initial modes\n");
|
xf86DrvMsg(i, X_INFO, "Using exact sizes for initial modes\n");
|
||||||
else if (xf86TargetAspect(scrn, config, modes, enabled, width, height))
|
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);
|
config->output[o]->name);
|
||||||
else
|
else
|
||||||
xf86DrvMsg (scrn->scrnIndex, X_INFO,
|
xf86DrvMsg (scrn->scrnIndex, X_INFO,
|
||||||
@ -163,5 +163,5 @@ index b5e9dc2..38ce9d0 100644
|
|||||||
|
|
||||||
/*
|
/*
|
||||||
--
|
--
|
||||||
1.7.4
|
1.7.4.4
|
||||||
|
|
||||||
|
@ -1,59 +0,0 @@
|
|||||||
From 11eea736f44a236dde884b52ad51cb5d1271b7a5 Mon Sep 17 00:00:00 2001
|
|
||||||
From: Peter Hutterer <peter.hutterer@who-t.net>
|
|
||||||
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 <http://bugs.freedesktop.org/show_bug.cgi?id=25640>
|
|
||||||
Fedora Bug 540584 <https://bugzilla.redhat.com/show_bug.cgi?id=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
|
|
||||||
|
|
@ -1,26 +0,0 @@
|
|||||||
From 6db7cc3d3f750bbb1c170f8fe538e9fb75bc5b34 Mon Sep 17 00:00:00 2001
|
|
||||||
From: Adam Tkac <atkac@redhat.com>
|
|
||||||
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 <atkac@redhat.com>
|
|
||||||
---
|
|
||||||
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
|
|
||||||
|
|
@ -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 <adamwill@shaw.ca>
|
From: Adam Williamson <adamwill@shaw.ca>
|
||||||
Date: Thu, 25 Feb 2010 10:34:49 -0800
|
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 +-
|
hw/xfree86/common/xf86pciBus.c | 2 +-
|
||||||
1 files changed, 1 insertions(+), 1 deletions(-)
|
1 files changed, 1 insertions(+), 1 deletions(-)
|
||||||
|
|
||||||
diff --git a/hw/xfree86/common/xf86pciBus.c b/hw/xfree86/common/xf86pciBus.c
|
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
|
--- a/hw/xfree86/common/xf86pciBus.c
|
||||||
+++ b/hw/xfree86/common/xf86pciBus.c
|
+++ b/hw/xfree86/common/xf86pciBus.c
|
||||||
@@ -1167,7 +1167,7 @@ videoPtrToDriverList(struct pci_device *dev,
|
@@ -1167,7 +1167,7 @@ videoPtrToDriverList(struct pci_device *dev,
|
||||||
@ -21,5 +21,5 @@ index e34e6d6..aaacf42 100644
|
|||||||
case 0x18ca:
|
case 0x18ca:
|
||||||
if (dev->device_id == 0x47)
|
if (dev->device_id == 0x47)
|
||||||
--
|
--
|
||||||
1.7.3.2
|
1.7.4.4
|
||||||
|
|
||||||
|
@ -1,27 +0,0 @@
|
|||||||
From 24f403a5b3f29016a135c615d6cb87bafcea4583 Mon Sep 17 00:00:00 2001
|
|
||||||
From: =?UTF-8?q?Dan=20Hor=C3=A1k?= <dan@danny.cz>
|
|
||||||
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
|
|
||||||
|
|
@ -1,496 +0,0 @@
|
|||||||
From ad6c5e450cacee3777e7c541d4841ee580339a5d Mon Sep 17 00:00:00 2001
|
|
||||||
From: Peter Hutterer <peter.hutterer@who-t.net>
|
|
||||||
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 <peter.hutterer@who-t.net>
|
|
||||||
Acked-by: Julien Cristau <jcristau@debian.org>
|
|
||||||
Acked-by: Dan Nicholson <dbn.lists@gmail.com>
|
|
||||||
Acked-by: James Cloos <cloos@jhcloos.com>
|
|
||||||
(cherry picked from commit c8a608cb6ce8f9c86258c1ab49084f691fa9cc51)
|
|
||||||
|
|
||||||
Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
|
|
||||||
---
|
|
||||||
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 <dbn.lists@gmail.com>
|
|
||||||
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 <dbn.lists@gmail.com>
|
|
||||||
Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
|
|
||||||
(cherry picked from commit 2460e921d18fd264e6f6374be0908f4100442650)
|
|
||||||
|
|
||||||
Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
|
|
||||||
---
|
|
||||||
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 <dbn.lists@gmail.com>
|
|
||||||
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 <dbn.lists@gmail.com>
|
|
||||||
Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
|
|
||||||
(cherry picked from commit 2ac33888a9a5766aaf88bc92a8bd1d489873524c)
|
|
||||||
|
|
||||||
Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
|
|
||||||
---
|
|
||||||
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/ <cmdline>
|
|
||||||
+.IR __projectroot__/etc/X11/ <cmdline>
|
|
||||||
.I /etc/X11/__xconfigdir__\-4
|
|
||||||
.I /etc/X11/__xconfigdir__
|
|
||||||
.I /etc/__xconfigdir__
|
|
||||||
@@ -118,6 +120,38 @@ directories:
|
|
||||||
.fi
|
|
||||||
.RE
|
|
||||||
.PP
|
|
||||||
+where
|
|
||||||
+.I <cmdline>
|
|
||||||
+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
|
|
||||||
+<cmdline>
|
|
||||||
+.IR /etc/X11/ <cmdline>
|
|
||||||
+.IR __projectroot__/etc/X11/ <cmdline>
|
|
||||||
+.I /etc/X11/__xconfigdir__\-4
|
|
||||||
+.I /etc/X11/__xconfigdir__
|
|
||||||
+.I /etc/__xconfigdir__
|
|
||||||
+.IR __projectroot__/etc/X11/__xconfigdir__. <hostname>
|
|
||||||
+.I __projectroot__/etc/X11/__xconfigdir__\-4
|
|
||||||
+.I __projectroot__/etc/X11/__xconfigdir__
|
|
||||||
+.IR __projectroot__/lib/X11/__xconfigdir__. <hostname>
|
|
||||||
+.I __projectroot__/lib/X11/__xconfigdir__\-4
|
|
||||||
+.I __projectroot__/lib/X11/__xconfigdir__
|
|
||||||
+.fi
|
|
||||||
+.RE
|
|
||||||
+.PP
|
|
||||||
+where
|
|
||||||
+.I <cmdline>
|
|
||||||
+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 <dbn.lists@gmail.com>
|
|
||||||
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/<cmdline>
|
|
||||||
$sysconfdir/X11/<cmdline>
|
|
||||||
/etc/X11/xorg.conf.d
|
|
||||||
$sysconfdir/X11/xorg.conf.d
|
|
||||||
|
|
||||||
Signed-off-by: Dan Nicholson <dbn.lists@gmail.com>
|
|
||||||
Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
|
|
||||||
(cherry picked from commit a1bae63dc634a5a79861eab128c63506081f7ed9)
|
|
||||||
|
|
||||||
Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
|
|
||||||
---
|
|
||||||
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/ <cmdline>
|
|
||||||
-.IR __projectroot__/etc/X11/ <cmdline>
|
|
||||||
-.I /etc/X11/__xconfigdir__\-4
|
|
||||||
+.IR __sysconfdir__/X11/ <cmdline>
|
|
||||||
.I /etc/X11/__xconfigdir__
|
|
||||||
-.I /etc/__xconfigdir__
|
|
||||||
-.IR __projectroot__/etc/X11/__xconfigdir__. <hostname>
|
|
||||||
-.I __projectroot__/etc/X11/__xconfigdir__\-4
|
|
||||||
-.I __projectroot__/etc/X11/__xconfigdir__
|
|
||||||
-.IR __projectroot__/lib/X11/__xconfigdir__. <hostname>
|
|
||||||
-.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
|
|
||||||
<cmdline>
|
|
||||||
.IR /etc/X11/ <cmdline>
|
|
||||||
-.IR __projectroot__/etc/X11/ <cmdline>
|
|
||||||
-.I /etc/X11/__xconfigdir__\-4
|
|
||||||
+.IR __sysconfdir__/X11/ <cmdline>
|
|
||||||
.I /etc/X11/__xconfigdir__
|
|
||||||
-.I /etc/__xconfigdir__
|
|
||||||
-.IR __projectroot__/etc/X11/__xconfigdir__. <hostname>
|
|
||||||
-.I __projectroot__/etc/X11/__xconfigdir__\-4
|
|
||||||
-.I __projectroot__/etc/X11/__xconfigdir__
|
|
||||||
-.IR __projectroot__/lib/X11/__xconfigdir__. <hostname>
|
|
||||||
-.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 <dbn.lists@gmail.com>
|
|
||||||
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 <dbn.lists@gmail.com>
|
|
||||||
Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
|
|
||||||
(cherry picked from commit 95f01bdfee8241371675f0089170fa6b2908d815)
|
|
||||||
|
|
||||||
Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
|
|
||||||
---
|
|
||||||
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 <dbn.lists@gmail.com>
|
|
||||||
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 <dbn.lists@gmail.com>
|
|
||||||
Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
|
|
||||||
(cherry picked from commit d4dd3d0085f8eaca8c989aaeace1a1a24c5ebf49)
|
|
||||||
|
|
||||||
Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
|
|
||||||
---
|
|
||||||
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
|
|
||||||
|
|
@ -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 <hdegoede@redhat.com>
|
From: Hans de Goede <hdegoede@redhat.com>
|
||||||
Date: Wed, 13 Oct 2010 11:16:31 -0400
|
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 ++++++-
|
hw/xfree86/common/xf86pciBus.c | 7 ++++++-
|
||||||
1 files changed, 6 insertions(+), 1 deletions(-)
|
1 files changed, 6 insertions(+), 1 deletions(-)
|
||||||
|
|
||||||
diff --git a/hw/xfree86/common/xf86pciBus.c b/hw/xfree86/common/xf86pciBus.c
|
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
|
--- a/hw/xfree86/common/xf86pciBus.c
|
||||||
+++ b/hw/xfree86/common/xf86pciBus.c
|
+++ b/hw/xfree86/common/xf86pciBus.c
|
||||||
@@ -1141,7 +1141,12 @@ videoPtrToDriverList(struct pci_device *dev,
|
@@ -1141,7 +1141,12 @@ videoPtrToDriverList(struct pci_device *dev,
|
||||||
@ -26,5 +26,5 @@ index aaacf42..048a410 100644
|
|||||||
case 0x5333:
|
case 0x5333:
|
||||||
switch (dev->device_id)
|
switch (dev->device_id)
|
||||||
--
|
--
|
||||||
1.7.3.2
|
1.7.4.4
|
||||||
|
|
||||||
|
@ -1,41 +0,0 @@
|
|||||||
From beea2378f142556471c62290e275935af848e137 Mon Sep 17 00:00:00 2001
|
|
||||||
From: Peter Hutterer <peter.hutterer@who-t.net>
|
|
||||||
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 <peter.hutterer@who-t.net>
|
|
||||||
Date: Thu Sep 2 10:52:54 2010 +1000
|
|
||||||
|
|
||||||
xfree86: remove extraOptions field from IDevRec.
|
|
||||||
|
|
||||||
X.Org Bug 32115 <http://bugs.freedesktop.org/show_bug.cgi?id=32115>
|
|
||||||
|
|
||||||
Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
|
|
||||||
Reviewed-by: Dan Nicholson <dbn.lists@gmail.com>
|
|
||||||
Tested-by: David Ronis <ronis@ronispc.chem.mcgill.ca>
|
|
||||||
---
|
|
||||||
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
|
|
||||||
|
|
@ -1,38 +0,0 @@
|
|||||||
From 9db9e964f6ca553dcbd3b7b037745d9581eaa065 Mon Sep 17 00:00:00 2001
|
|
||||||
From: Peter Hutterer <peter.hutterer@who-t.net>
|
|
||||||
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 <glseba@yahoo.com>
|
|
||||||
Reported-by: Simon Thum <simon.thum@gmx.de>
|
|
||||||
Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
|
|
||||||
Reviewed-by: Simon Thum <simon.thum@gmx.de>
|
|
||||||
Reviewed-by: Dan Nicholson <dbn.lists@gmail.com>
|
|
||||||
Tested-by: Sebastian Glita <glseba@yahoo.com>
|
|
||||||
---
|
|
||||||
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
|
|
||||||
|
|
@ -1,69 +0,0 @@
|
|||||||
From d3499556d8d83396fa2585bd00371a81e086be36 Mon Sep 17 00:00:00 2001
|
|
||||||
From: Peter Hutterer <peter.hutterer@who-t.net>
|
|
||||||
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 <peter.hutterer@who-t.net>
|
|
||||||
Reviewed-by: Dan Nicholson <dbn.lists@gmail.com>
|
|
||||||
---
|
|
||||||
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
|
|
||||||
|
|
@ -1,95 +0,0 @@
|
|||||||
From 47d1d2fed656c3a3b2600491078da90962c46934 Mon Sep 17 00:00:00 2001
|
|
||||||
From: Peter Hutterer <peter.hutterer@who-t.net>
|
|
||||||
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 <peter.hutterer@who-t.net>
|
|
||||||
Reviewed-by: Dan Nicholson <dbn.lists@gmail.com>
|
|
||||||
---
|
|
||||||
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
|
|
||||||
|
|
@ -1,79 +0,0 @@
|
|||||||
From 4993bd3187f9e5398014ead5c845d2353cc3de6c Mon Sep 17 00:00:00 2001
|
|
||||||
From: Peter Hutterer <peter.hutterer@who-t.net>
|
|
||||||
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 <COMP> { [ 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 <https://bugzilla.redhat.com/show_bug.cgi?id=537708>
|
|
||||||
|
|
||||||
Also fixes broken auto-repeat of the backspace key in the colemak layout
|
|
||||||
(mapped to CapsLock).
|
|
||||||
|
|
||||||
X.Org Bug 16318 <http://bugs.freedesktop.org/show_bug.cgi?id=16318>
|
|
||||||
|
|
||||||
Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
|
|
||||||
---
|
|
||||||
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
|
|
||||||
|
|
Loading…
Reference in New Issue
Block a user