1
0

Accepting request 114753 from home:dimstar:branches:X11:XOrg

Udpate to Xorg 1.12.1... add 'automatic' ABI provides, which are verified during build to be true to ensure we can't ever publish a package which does not contain correct provides for the ABI

OBS-URL: https://build.opensuse.org/request/show/114753
OBS-URL: https://build.opensuse.org/package/show/X11:XOrg/xorg-x11-server?expand=0&rev=383
This commit is contained in:
Stefan Dirsch 2012-04-20 09:32:05 +00:00 committed by Git OBS Bridge
parent d1ef7933f6
commit ebdc01ee77
37 changed files with 1716 additions and 2266 deletions

View File

@ -10,58 +10,61 @@ redo the check and also check if IO resoures are also enabled,
if this still doesn't turn up a unique result also check for if this still doesn't turn up a unique result also check for
the presence of a BIOS rom. the presence of a BIOS rom.
================================================================================ ================================================================================
--- xorg-server-1.7.99/hw/xfree86/common/xf86pciBus.c Index: xorg-server-1.12.1/hw/xfree86/common/xf86pciBus.c
+++ xorg-server-1.7.99/hw/xfree86/common/xf86pciBus.c ===================================================================
@@ -140,9 +140,49 @@ --- xorg-server-1.12.1.orig/hw/xfree86/common/xf86pciBus.c
primaryBus.type = BUS_PCI; +++ xorg-server-1.12.1/hw/xfree86/common/xf86pciBus.c
primaryBus.id.pci = info; @@ -134,9 +134,50 @@ xf86PciProbe(void)
} else { primaryBus.id.pci = info;
- xf86Msg(X_NOTICE, }
- "More than one possible primary device found\n"); else {
- primaryBus.type ^= (BusType)(-1); - xf86Msg(X_NOTICE,
+ /* - "More than one possible primary device found\n");
+ * Ok, we found more than one possible primary device with this heuristic - primaryBus.type ^= (BusType) (-1);
+ * Now also check if IO is enabled. + /*
+ */ + * Ok, we found more than one possible primary device with this heuristic
+ * Now also check if IO is enabled.
+ */
+ int j; + int j;
+ +
+ primaryBus.type = BUS_NONE; + primaryBus.type = BUS_NONE;
+ for (j = 0; j < num; j++) { + for (j = 0; j < num; j++) {
+ info = xf86PciVideoInfo[j]; + info = xf86PciVideoInfo[j];
+ pci_device_cfg_read_u16(info, & command, 4); + pci_device_cfg_read_u16(info, & command, 4);
+ +
+ if ((command & PCI_CMD_MEM_ENABLE) + if ((command & PCI_CMD_MEM_ENABLE)
+ && (command & PCI_CMD_IO_ENABLE) + && (command & PCI_CMD_IO_ENABLE)
+ && (IS_VGA(info->device_class))) { + && (IS_VGA(info->device_class))) {
+ if (primaryBus.type == BUS_NONE) { + if (primaryBus.type == BUS_NONE) {
+ primaryBus.type = BUS_PCI; + primaryBus.type = BUS_PCI;
+ primaryBus.id.pci = info;
+ } else {
+ primaryBus.type = BUS_NONE;
+ for (j = 0; j < num; j++) {
+ info = xf86PciVideoInfo[j];
+ pci_device_cfg_read_u16(info, & command, 4);
+
+ if ((command & PCI_CMD_MEM_ENABLE)
+ && (command & PCI_CMD_IO_ENABLE)
+ && (IS_VGA(info->device_class))
+ && info->rom_size) {
+ if (primaryBus.type == BUS_NONE) {
+ primaryBus.type = BUS_PCI;
+ primaryBus.id.pci = info; + primaryBus.id.pci = info;
+ } else { + } else {
+ xf86Msg(X_NOTICE, + primaryBus.type = BUS_NONE;
+ "More than one possible primary device found\n"); + for (j = 0; j < num; j++) {
+ primaryBus.type ^= (BusType)(-1); + info = xf86PciVideoInfo[j];
+ pci_device_cfg_read_u16(info, & command, 4);
+
+ if ((command & PCI_CMD_MEM_ENABLE)
+ && (command & PCI_CMD_IO_ENABLE)
+ && (IS_VGA(info->device_class))
+ && info->rom_size) {
+ if (primaryBus.type == BUS_NONE) {
+ primaryBus.type = BUS_PCI;
+ primaryBus.id.pci = info;
+ } else {
+ xf86Msg(X_NOTICE,
+ "More than one possible primary device found\n");
+ primaryBus.type ^= (BusType)(-1);
+ break;
+ }
+ }
+ }
+ break; + break;
+ }
+ } + }
+ }
+ break;
+ } + }
+ }
+ } + }
+ break; + break;
} +
} }
} }
}

View File

@ -1,10 +1,12 @@
--- xorg-server-1.9.0/mi/misprite.c.orig 2010-07-23 21:40:56.000000000 +0200 Index: xorg-server-1.12.1/mi/misprite.c
+++ xorg-server-1.9.0/mi/misprite.c 2010-08-23 15:44:51.000000000 +0200 ===================================================================
@@ -384,6 +384,7 @@ miSpriteCloseScreen (int i, ScreenPtr pS --- xorg-server-1.12.1.orig/mi/misprite.c
+++ xorg-server-1.12.1/mi/misprite.c
@@ -378,6 +378,7 @@ miSpriteCloseScreen(int i, ScreenPtr pSc
pScreen->InstallColormap = pScreenPriv->InstallColormap; pScreen->InstallColormap = pScreenPriv->InstallColormap;
pScreen->StoreColors = pScreenPriv->StoreColors; pScreen->StoreColors = pScreenPriv->StoreColors;
+ miSpriteDisableDamage(pScreen, pScreenPriv); + miSpriteDisableDamage(pScreen, pScreenPriv);
DamageDestroy (pScreenPriv->pDamage); DamageDestroy(pScreenPriv->pDamage);
free(pScreenPriv); free(pScreenPriv);

27
N-VNC-Add-proto.diff Normal file
View File

@ -0,0 +1,27 @@
From: Mike Gorse <mgorse@suse.com>
Date: Wed Apr 18 22:52:23 UTC 2012
Subject: [PATCH] VNC: Add a missing prototype
Patch-Mainline: Currently no upstream project.
---
diff -ur xorg-server-1.12.1.orig/hw/vnc/rfbkeyb.c xorg-server-1.12.1/hw/vnc/rfbkeyb.c
--- xorg-server-1.12.1.orig/hw/vnc/rfbkeyb.c 2012-04-18 17:38:08.302219053 -0500
+++ xorg-server-1.12.1/hw/vnc/rfbkeyb.c 2012-04-18 16:44:12.873667473 -0500
@@ -44,6 +44,7 @@
#endif
#else
#include <dix.h>
+#include <extinit.h>
#include <mipointer.h>
#endif
#include "rfb.h"
diff -ur xorg-server-1.12.1.orig/hw/vnc/rfbmouse.c xorg-server-1.12.1/hw/vnc/rfbmouse.c
--- xorg-server-1.12.1.orig/hw/vnc/rfbmouse.c 2012-04-18 17:38:08.302219053 -0500
+++ xorg-server-1.12.1/hw/vnc/rfbmouse.c 2012-04-18 16:43:28.843217928 -0500
@@ -46,6 +46,7 @@
#else
#include <dix.h>
+#include <extinit.h>
#include <mipointer.h>
#endif
#include "rfb.h"

File diff suppressed because it is too large Load Diff

View File

@ -28,15 +28,12 @@ Changes:
- Add tons of debug output (disabled). - Add tons of debug output (disabled).
Signed-off-by: Egbert Eich <eich@freedesktop.org> Signed-off-by: Egbert Eich <eich@freedesktop.org>
---
hw/vnc/kbdptr.c | 289 +++++++++++++++++++++++++++++++++++++++++------------
hw/vnc/keyboard.h | 1 +
2 files changed, 228 insertions(+), 62 deletions(-)
diff --git a/hw/vnc/kbdptr.c b/hw/vnc/kbdptr.c Rebased to 1.12.1 by Mike Gorse <mgorse@suse.com>
index f306022..b3b0e68 100644 ---
--- a/hw/vnc/kbdptr.c diff -pruN xorg-server-1.12.1.orig/hw/vnc/kbdptr.c xorg-server-1.12.1/hw/vnc/kbdptr.c
+++ b/hw/vnc/kbdptr.c --- xorg-server-1.12.1.orig/hw/vnc/kbdptr.c 2012-04-18 14:14:07.436250934 -0500
+++ xorg-server-1.12.1/hw/vnc/kbdptr.c 2012-04-18 14:15:27.656248047 -0500
@@ -34,6 +34,8 @@ @@ -34,6 +34,8 @@
#include "X11/Xproto.h" #include "X11/Xproto.h"
#include "inputstr.h" #include "inputstr.h"
@ -54,7 +51,7 @@ index f306022..b3b0e68 100644
#if !XFREE86VNC #if !XFREE86VNC
#define MIN_KEY_CODE 8 #define MIN_KEY_CODE 8
@@ -196,21 +199,20 @@ static KeySym map[MAX_KEY_CODE * GLYPHS_PER_KEY] = { @@ -196,21 +199,20 @@ static KeySym map[MAX_KEY_CODE * GLYPHS_
#define N_PREDEFINED_KEYS (sizeof(map) / (sizeof(KeySym) * GLYPHS_PER_KEY)) #define N_PREDEFINED_KEYS (sizeof(map) / (sizeof(KeySym) * GLYPHS_PER_KEY))
#endif #endif
@ -80,8 +77,8 @@ index f306022..b3b0e68 100644
} }
@@ -280,6 +282,29 @@ EnqueueKey(DeviceIntPtr kbdDev, int type, int detail) @@ -263,6 +265,29 @@ EnqueueKey(DeviceIntPtr kbdDev, int type
mieqEnqueue(kbdDev, (InternalEvent*)(events + i)->event); QueueKeyboardEvents(kbdDev, type, detail, NULL);
} }
+/* In-server and highly changed version of XkbKeycodeToKeysym */ +/* In-server and highly changed version of XkbKeycodeToKeysym */
@ -110,7 +107,7 @@ index f306022..b3b0e68 100644
/* /*
* Called when the rfbserver receives a rfbKeyEvent event from a client. * Called when the rfbserver receives a rfbKeyEvent event from a client.
* Put an X keyboard event into the event queue. * Put an X keyboard event into the event queue.
@@ -288,21 +313,35 @@ void @@ -271,21 +296,35 @@ void
KbdAddEvent(Bool down, KeySym keySym, rfbClientPtr cl) KbdAddEvent(Bool down, KeySym keySym, rfbClientPtr cl)
{ {
const int type = down ? KeyPress : KeyRelease; const int type = down ? KeyPress : KeyRelease;
@ -154,7 +151,7 @@ index f306022..b3b0e68 100644
#ifdef CORBA #ifdef CORBA
if (cl) { if (cl) {
@@ -320,6 +359,12 @@ KbdAddEvent(Bool down, KeySym keySym, rfbClientPtr cl) @@ -303,6 +342,12 @@ KbdAddEvent(Bool down, KeySym keySym, rf
* *
* Alan. * Alan.
*/ */
@ -167,7 +164,7 @@ index f306022..b3b0e68 100644
#if !XFREE86VNC #if !XFREE86VNC
/* First check if it's one of our predefined keys. If so then we can make /* First check if it's one of our predefined keys. If so then we can make
some attempt at allowing an xmodmap inside a VNC desktop behave some attempt at allowing an xmodmap inside a VNC desktop behave
@@ -346,107 +391,227 @@ KbdAddEvent(Bool down, KeySym keySym, rfbClientPtr cl) @@ -329,107 +374,227 @@ KbdAddEvent(Bool down, KeySym keySym, rf
} }
} }
#endif #endif
@ -183,16 +180,6 @@ index f306022..b3b0e68 100644
- "less than 2 keysyms per keycode (KeySym 0x%x)\n", (int)keySym); - "less than 2 keysyms per keycode (KeySym 0x%x)\n", (int)keySym);
- return; - return;
- } - }
-
- for (i = 0; i < NO_OF_KEYS * keySyms->mapWidth; i++) {
- if (keySym == keySyms->map[i]) {
- keyCode = MIN_KEY_CODE + i / keySyms->mapWidth;
-
- if (keySyms->map[(i / keySyms->mapWidth)
- * keySyms->mapWidth + 1] != NoSymbol) {
-
- /* this keycode has more than one symbol associated with
- it, so shift state is important */
+ for (keyCode = MIN_KEY_CODE; keyCode < MIN_KEY_CODE + NO_OF_KEYS; keyCode++) { + for (keyCode = MIN_KEY_CODE; keyCode < MIN_KEY_CODE + NO_OF_KEYS; keyCode++) {
+ /* Check all keycodes, but only continue on those where + /* Check all keycodes, but only continue on those where
+ * backconversion results in keySym. + * backconversion results in keySym.
@ -215,6 +202,16 @@ index f306022..b3b0e68 100644
+ ErrorF ("\n"); + ErrorF ("\n");
+#endif +#endif
- for (i = 0; i < NO_OF_KEYS * keySyms->mapWidth; i++) {
- if (keySym == keySyms->map[i]) {
- keyCode = MIN_KEY_CODE + i / keySyms->mapWidth;
-
- if (keySyms->map[(i / keySyms->mapWidth)
- * keySyms->mapWidth + 1] != NoSymbol) {
-
- /* this keycode has more than one symbol associated with
- it, so shift state is important */
-
- if ((i % keySyms->mapWidth) == 0) - if ((i % keySyms->mapWidth) == 0)
- shiftMustBeReleased = TRUE; - shiftMustBeReleased = TRUE;
- else - else
@ -440,7 +437,7 @@ index f306022..b3b0e68 100644
} }
} }
@@ -497,15 +662,15 @@ KbdReleaseAllKeys(void) @@ -480,15 +645,15 @@ KbdReleaseAllKeys(void)
{ {
int i, j; int i, j;
@ -460,15 +457,11 @@ index f306022..b3b0e68 100644
} }
} }
} }
diff --git a/hw/vnc/keyboard.h b/hw/vnc/keyboard.h diff -pruN xorg-server-1.12.1.orig/hw/vnc/keyboard.h xorg-server-1.12.1/hw/vnc/keyboard.h
index d223b6b..beb948a 100644 --- xorg-server-1.12.1.orig/hw/vnc/keyboard.h 2012-04-18 14:14:07.437250922 -0500
--- a/hw/vnc/keyboard.h +++ xorg-server-1.12.1/hw/vnc/keyboard.h 2012-04-18 14:15:27.657248035 -0500
+++ b/hw/vnc/keyboard.h
@@ -32,3 +32,4 @@ @@ -32,3 +32,4 @@
#define META_R_KEY_CODE (MIN_KEY_CODE + 108) #define META_R_KEY_CODE (MIN_KEY_CODE + 108)
#define ALT_L_KEY_CODE (MIN_KEY_CODE + 56) #define ALT_L_KEY_CODE (MIN_KEY_CODE + 56)
#define ALT_R_KEY_CODE (MIN_KEY_CODE + 105) #define ALT_R_KEY_CODE (MIN_KEY_CODE + 105)
+#define ISO_LEVEL3_KEY_CODE ALT_R_KEY_CODE +#define ISO_LEVEL3_KEY_CODE ALT_R_KEY_CODE
--
1.7.3.4

View File

@ -1,51 +0,0 @@
From: Egbert Eich <eich@suse.de>
Date: Tue Oct 18 20:22:38 2011 +0200
Subject: [PATCH] Don't call deleted Bloxk/WakeupHandler()
Patch-Mainline: Upstream/2ee85d95
Git-commit: b93eda251f0b6d0a1601511a55b060604919cc81
References: bnc #723777
Signed-off-by: Egbert Eich <eich@suse.de>
When Block/WakeupHandlers are unregistered from within a handler the
list of handlers is not corrected right away but they are marked as
deleted.
If a deleted handler in the handler list is located after the handler
that calls the unregister function it was still called, as the list was
only corrected after all handlers were processed. This could cause a
crash if the handler got passed a pointer to a data structure which was
no longer existing.
A check for the deleted flag solves this problem.
Signed-off-by: Egbert Eich <eich@suse.de>
---
xorg-server-1.10.4/dix/dixutils.c | 10 ++++++----
1 files changed, 6 insertions(+), 4 deletions(-)
diff --git a/xorg-server-1.10.4/dix/dixutils.c b/xorg-server-1.10.4/dix/dixutils.c
index 104363b..dd1c318 100644
--- a/xorg-server-1.10.4/dix/dixutils.c
+++ b/xorg-server-1.10.4/dix/dixutils.c
@@ -386,8 +386,9 @@ BlockHandler(pointer pTimeout, pointer pReadmask)
screenInfo.screens[i]->blockData,
pTimeout, pReadmask);
for (i = 0; i < numHandlers; i++)
- (*handlers[i].BlockHandler) (handlers[i].blockData,
- pTimeout, pReadmask);
+ if (!handlers[i].deleted)
+ (*handlers[i].BlockHandler) (handlers[i].blockData,
+ pTimeout, pReadmask);
if (handlerDeleted)
{
for (i = 0; i < numHandlers;)
@@ -416,8 +417,9 @@ WakeupHandler(int result, pointer pReadmask)
++inHandler;
for (i = numHandlers - 1; i >= 0; i--)
- (*handlers[i].WakeupHandler) (handlers[i].blockData,
- result, pReadmask);
+ if (!handlers[i].deleted)
+ (*handlers[i].WakeupHandler) (handlers[i].blockData,
+ result, pReadmask);
for (i = 0; i < screenInfo.numScreens; i++)
(* screenInfo.screens[i]->WakeupHandler)(i,
screenInfo.screens[i]->wakeupData,

View File

@ -1,32 +0,0 @@
From 3ce102c362cadcd7087bdcf48440d9498eaf77d0 Mon Sep 17 00:00:00 2001
From: Peter Hutterer <peter.hutterer@who-t.net>
Date: Thu, 5 Jan 2012 07:08:01 -0500
Subject: [PATCH] dix: on PointerRootWin send a FocusIn to the sprite window
too
XTS XSetDeviceFocus-7
Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
Reviewed-by: Chase Douglas <chase.douglas@canonical.com>
---
dix/enterleave.c | 3 +++
1 files changed, 3 insertions(+), 0 deletions(-)
diff --git a/dix/enterleave.c b/dix/enterleave.c
index 2b8c7c5..89a82ab 100644
--- a/dix/enterleave.c
+++ b/dix/enterleave.c
@@ -1299,7 +1299,10 @@ DeviceFocusEvents(DeviceIntPtr dev,
for (i = 0; i < nscreens; i++)
DeviceFocusEvent(dev, XI_FocusIn, mode, in, screenInfo.screens[i]->root);
if (to == PointerRootWin)
+ {
DeviceFocusInEvents(dev, GetCurrentRootWindow(dev), sprite->win, mode, NotifyPointer);
+ DeviceFocusEvent(dev, XI_FocusIn, mode, NotifyPointer, sprite->win);
+ }
}
else
{
--
1.7.7

View File

@ -1,52 +0,0 @@
From a125aabda3a5cf27aa98cb61f16e49280b66f451 Mon Sep 17 00:00:00 2001
From: Peter Hutterer <peter.hutterer@who-t.net>
Date: Thu, 5 Jan 2012 07:02:51 -0500
Subject: [PATCH] dix: send focus events to the immediate parent (#44079)
For a transition from windows A to B, A->parent did not receive an event.
DeviceFocusOutEvents sends to windows ]from, to[, so start with the actual
window, not it's parent.
X.Org Bug 44079 <http://bugs.freedesktop.org/show_bug.cgi?id=44079>
Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
Reviewed-by: Chase Douglas <chase.douglas@canonical.com>
Reviewed-by: Keith Packard <keithp@keithp.com>
---
dix/enterleave.c | 6 +++---
1 files changed, 3 insertions(+), 3 deletions(-)
diff --git a/dix/enterleave.c b/dix/enterleave.c
index a39e640..2b8c7c5 100644
--- a/dix/enterleave.c
+++ b/dix/enterleave.c
@@ -1292,7 +1292,7 @@ DeviceFocusEvents(DeviceIntPtr dev,
NotifyPointer);
DeviceFocusEvent(dev, XI_FocusOut, mode, NotifyNonlinear, from);
/* next call catches the root too, if the screen changed */
- DeviceFocusOutEvents(dev, from->parent, NullWindow, mode,
+ DeviceFocusOutEvents(dev, from, NullWindow, mode,
NotifyNonlinearVirtual);
}
/* Notify all the roots */
@@ -1321,7 +1321,7 @@ DeviceFocusEvents(DeviceIntPtr dev,
if (IsParent(to, from))
{
DeviceFocusEvent(dev, XI_FocusOut, mode, NotifyAncestor, from);
- DeviceFocusOutEvents(dev, from->parent, to, mode,
+ DeviceFocusOutEvents(dev, from, to, mode,
NotifyVirtual);
DeviceFocusEvent(dev, XI_FocusIn, mode, NotifyInferior, to);
if ((IsParent(to, sprite->win)) &&
@@ -1353,7 +1353,7 @@ DeviceFocusEvents(DeviceIntPtr dev,
NotifyPointer);
DeviceFocusEvent(dev, XI_FocusOut, mode, NotifyNonlinear, from);
if (from->parent != NullWindow)
- DeviceFocusOutEvents(dev, from->parent, common, mode,
+ DeviceFocusOutEvents(dev, from, common, mode,
NotifyNonlinearVirtual);
if (to->parent != NullWindow)
DeviceFocusInEvents(dev, common, to, mode, NotifyNonlinearVirtual);
--
1.7.7

View File

@ -1,22 +1,22 @@
Index: hw/xfree86/common/xf86AutoConfig.c Index: hw/xfree86/common/xf86AutoConfig.c
================================================================================ ===================================================================
--- hw/xfree86/common/xf86AutoConfig.c --- hw/xfree86/common/xf86AutoConfig.c.orig
+++ hw/xfree86/common/xf86AutoConfig.c +++ hw/xfree86/common/xf86AutoConfig.c
@@ -506,7 +506,7 @@ @@ -264,7 +264,7 @@ listPossibleVideoDrivers(char *matches[]
/* Fallback to platform default hardware */ /* Fallback to platform default hardware */
if (i < (nmatches - 1)) { if (i < (nmatches - 1)) {
#if defined(__i386__) || defined(__amd64__) || defined(__hurd__) #if defined(__i386__) || defined(__amd64__) || defined(__hurd__)
- matches[i++] = xnfstrdup("vesa"); - matches[i++] = xnfstrdup("vesa");
+ matches[i++] = xnfstrdup("fbdev"); + matches[i++] = xnfstrdup("fbdev");
#elif defined(__sparc__) && !defined(sun) #elif defined(__sparc__) && !defined(sun)
matches[i++] = xnfstrdup("sunffb"); matches[i++] = xnfstrdup("sunffb");
#endif #endif
@@ -517,7 +517,7 @@ @@ -276,7 +276,7 @@ listPossibleVideoDrivers(char *matches[]
#if !defined(__linux__) && defined(__sparc__) #if !defined(__linux__) && defined(__sparc__)
matches[i++] = xnfstrdup("wsfb"); matches[i++] = xnfstrdup("wsfb");
#else #else
- matches[i++] = xnfstrdup("fbdev"); - matches[i++] = xnfstrdup("fbdev");
+ matches[i++] = xnfstrdup("vesa"); + matches[i++] = xnfstrdup("vesa");
#endif #endif
} }
} #endif /* !sun */

View File

@ -1,61 +1,62 @@
Index: hw/xfree86/common/xf86Events.c Index: hw/xfree86/common/xf86Events.c
================================================================================ ===================================================================
--- hw/xfree86/common/xf86Events.c --- hw/xfree86/common/xf86Events.c.orig
+++ hw/xfree86/common/xf86Events.c +++ hw/xfree86/common/xf86Events.c
@@ -115,6 +115,7 @@ @@ -115,6 +115,7 @@ typedef struct x_IHRec {
InputHandlerProc ihproc; InputHandlerProc ihproc;
pointer data; pointer data;
Bool enabled; Bool enabled;
+ Bool is_input; + Bool is_input;
struct x_IHRec * next; struct x_IHRec *next;
} IHRec, *IHPtr; } IHRec, *IHPtr;
@@ -449,8 +450,12 @@ @@ -445,9 +446,13 @@ xf86VTSwitch(void)
* Keep the order: Disable Device > LeaveVT * Keep the order: Disable Device > LeaveVT
* EnterVT > EnableDevice * EnterVT > EnableDevice
*/ */
- for (ih = InputHandlers; ih; ih = ih->next) - for (ih = InputHandlers; ih; ih = ih->next)
- xf86DisableInputHandler(ih); + for (ih = InputHandlers; ih; ih = ih->next) {
+ for (ih = InputHandlers; ih; ih = ih->next) { + if (ih->is_input)
+ if (ih->is_input) xf86DisableInputHandler(ih);
+ xf86DisableInputHandler(ih); - for (pInfo = xf86InputDevs; pInfo; pInfo = pInfo->next) {
+ else + else
+ xf86DisableGeneralHandler(ih); + xf86DisableGeneralHandler(ih);
+ } + }
for (pInfo = xf86InputDevs; pInfo; pInfo = pInfo->next) { + for (pInfo = xf86InputDevs; pInfo; pInfo = pInfo->next) {
if (pInfo->dev) { if (pInfo->dev) {
xf86ReleaseKeys(pInfo->dev); xf86ReleaseKeys(pInfo->dev);
@@ -492,8 +497,12 @@ ProcessInputEvents();
EnableDevice(pInfo->dev, TRUE); @@ -486,8 +491,12 @@ xf86VTSwitch(void)
pInfo = pInfo->next; EnableDevice(pInfo->dev, TRUE);
} pInfo = pInfo->next;
- for (ih = InputHandlers; ih; ih = ih->next) }
- xf86EnableInputHandler(ih); - for (ih = InputHandlers; ih; ih = ih->next)
+ for (ih = InputHandlers; ih; ih = ih->next) { - xf86EnableInputHandler(ih);
+ if (ih->is_input) + for (ih = InputHandlers; ih; ih = ih->next) {
+ xf86EnableInputHandler(ih); + if (ih->is_input)
+ else + xf86EnableInputHandler(ih);
+ xf86EnableGeneralHandler(ih); + else
+ } + xf86EnableGeneralHandler(ih);
+ }
xf86UnblockSIGIO(prevSIGIO); xf86UnblockSIGIO(prevSIGIO);
@@ -549,8 +558,12 @@ @@ -542,8 +551,12 @@ xf86VTSwitch(void)
pInfo = pInfo->next; pInfo = pInfo->next;
}
- for (ih = InputHandlers; ih; ih = ih->next)
- xf86EnableInputHandler(ih);
+ for (ih = InputHandlers; ih; ih = ih->next) {
+ if (ih->is_input)
+ xf86EnableInputHandler(ih);
+ else
+ xf86EnableGeneralHandler(ih);
+ }
xf86UnblockSIGIO(prevSIGIO);
} }
@@ -579,8 +592,10 @@ xf86AddInputHandler(int fd, InputHandler
- for (ih = InputHandlers; ih; ih = ih->next)
- xf86EnableInputHandler(ih);
+ for (ih = InputHandlers; ih; ih = ih->next) {
+ if (ih->is_input)
+ xf86EnableInputHandler(ih);
+ else
+ xf86EnableGeneralHandler(ih);
+ }
xf86UnblockSIGIO(prevSIGIO);
}
@@ -587,8 +600,10 @@
{ {
IHPtr ih = addInputHandler(fd, proc, data); IHPtr ih = addInputHandler(fd, proc, data);

View File

@ -1,11 +1,13 @@
Index: xorg-server-1.6.3.901/hw/xfree86/loader/dlloader.c Index: xorg-server-1.12.1/hw/xfree86/loader/loader.c
================================================================================ ===================================================================
--- xorg-server-1.7.99/hw/xfree86/loader/loader.c --- xorg-server-1.12.1.orig/hw/xfree86/loader/loader.c
+++ xorg-server-1.7.99/hw/xfree86/loader/loader.c +++ xorg-server-1.12.1/hw/xfree86/loader/loader.c
@@ -120,5 +120,5 @@ @@ -152,7 +152,7 @@ LoaderSymbol(const char *name)
return p;
if (!global_scope) if (!global_scope)
- global_scope = dlopen(NULL, DLOPEN_LAZY | DLOPEN_GLOBAL); - global_scope = dlopen(NULL, DLOPEN_LAZY | DLOPEN_GLOBAL);
+ global_scope = dlopen(NULL, DLOPEN_LAZY | DLOPEN_GLOBAL | RTLD_DEEPBIND); + global_scope = dlopen(NULL, DLOPEN_LAZY | DLOPEN_GLOBAL | RTLD_DEEPBIND);
if (global_scope) if (global_scope)
return dlsym(global_scope, name);

View File

@ -1,108 +1,100 @@
Index: dix/events.c --- dix/events.c.orig 2012-04-17 11:34:39.714915372 -0500
================================================================================ +++ dix/events.c 2012-04-17 11:26:54.735728478 -0500
--- dix/events.c @@ -671,32 +671,77 @@
+++ dix/events.c
@@ -661,37 +661,80 @@
{ {
BoxRec box; BoxRec box;
int x = *px, y = *py; int x = *px, y = *py;
- int incx = 1, incy = 1; - int incx = 1, incy = 1;
SpritePtr pSprite;
+ int nbox; + int nbox;
+ BoxPtr pbox; + BoxPtr pbox;
+ int d, min = (~0U >> 1), dx2, dy2, x_r, y_r; + int d, min = (~0U >> 1), dx2, dy2, x_r, y_r;
pSprite = pDev->spriteInfo->sprite;
if (RegionContainsPoint(shape, x, y, &box)) if (RegionContainsPoint(shape, x, y, &box))
return; return;
- box = *RegionExtents(shape); - box = *RegionExtents(shape);
- /* this is rather crude */ - /* this is rather crude */
- do { - do {
- x += incx; - x += incx;
- if (x >= box.x2) - if (x >= box.x2) {
- { - incx = -1;
- incx = -1; - x = *px - 1;
- x = *px - 1;
+ +
+ for (nbox = REGION_NUM_RECTS (shape), + for (nbox = REGION_NUM_RECTS (shape),
+ pbox = REGION_RECTS(shape); + pbox = REGION_RECTS(shape);
+ nbox--; + nbox--;
+ pbox++) + pbox++)
+ { + {
+ if (pbox->x1 < x && pbox->x2 > x) { + if (pbox->x1 < x && pbox->x2 > x) {
+ d = pbox->y1 - y; + d = pbox->y1 - y;
+ if (d >= 0) { + if (d >= 0) {
+ d *= d; + d *= d;
+ if (d < min) { + if (d < min) {
+ *px = x; + *px = x;
+ *py = pbox->y1 + 1; + *py = pbox->y1 + 1;
+ min = d; + min = d;
+ } + }
+ } else { + } else {
+ d = pbox->y2 - y; d *= d; + d = pbox->y2 - y; d *= d;
+ if (d < min) { + if (d < min) {
+ *px = x; + *px = x;
+ *py = pbox->y2 - 1; + *py = pbox->y2 - 1;
+ min = d; + min = d;
+ } + }
+ } + }
} }
- else if (x < box.x1) - else if (x < box.x1) {
- { - incx = 1;
- incx = 1; - x = *px;
- x = *px; - y += incy;
- y += incy; - if (y >= box.y2) {
- if (y >= box.y2) - incy = -1;
- { - y = *py - 1;
- incy = -1; + else if (pbox->y1 < y && pbox->y2 > y) {
- y = *py - 1; + d = pbox->x1 - x;
+ else if (pbox->y1 < y && pbox->y2 > y) { + if (d >= 0) {
+ d = pbox->x1 - x; + d *= d;
+ if (d >= 0) { + if (d < min) {
+ d *= d; + *px = pbox->x1 + 1;
+ if (d < min) { + *py = y;
+ *px = pbox->x1 + 1; + min = d;
+ *py = y; + }
+ min = d; + } else {
+ } + d = pbox->x2 - x; d *= d;
+ } else { + if (d < min) {
+ d = pbox->x2 - x; d *= d; + *px = pbox->x2 - 1;
+ if (d < min) { + *py = y;
+ *px = pbox->x2 - 1; + min = d;
+ *py = y; + }
+ min = d; + }
+ } + } else {
+ } + dx2 = pbox->x1 - x;
+ + if (dx2 >= 0) {
+ } else { + dx2 *= dx2;
+ dx2 = pbox->x1 - x; + x_r = pbox->x1 + 1;
+ if (dx2 >= 0) { + } else {
+ dx2 *= dx2; + dx2 = pbox->x2 - x; dx2 *= dx2;
+ x_r = pbox->x1 + 1; + x_r = pbox->x2 - 1;
+ } else { + }
+ dx2 = pbox->x2 - x; dx2 *= dx2; + dy2 = pbox->y1 - y;
+ x_r = pbox->x2 - 1; + if (dy2 >= 0) {
+ } + dy2 *= dy2;
+ dy2 = pbox->y1 - y; + y_r = pbox->y1 + 1;
+ if (dy2 >= 0) { + } else {
+ dy2 *= dy2; + dy2 = pbox->y2 - y; dy2 *= dy2;
+ y_r = pbox->y1 + 1; + y_r = pbox->y2 - 1;
+ } else { + }
+ dy2 = pbox->y2 - y; dy2 *= dy2; + if ((d = dx2 + dy2) < min) {
+ y_r = pbox->y2 - 1; + *px = x_r;
+ } + *py = y_r;
+ if ((d = dx2 + dy2) < min) { + min = d;
+ *px = x_r; }
+ *py = y_r; - else if (y < box.y1)
+ min = d; - return; /* should never get here! */
} }
- else if (y < box.y1)
- return; /* should never get here! */
}
- } while (!RegionContainsPoint(shape, x, y, &box)); - } while (!RegionContainsPoint(shape, x, y, &box));
- *px = x; - *px = x;
- *py = y; - *py = y;
+ } + }
} }
static void static void

View File

@ -1,14 +1,14 @@
Index: xorg-server-1.6.3.901/hw/xfree86/common/xf86DPMS.c Index: xorg-server-1.12.1/hw/xfree86/common/xf86DPMS.c
================================================================================ ===================================================================
--- xorg-server-1.7.99/hw/xfree86/common/xf86DPMS.c --- xorg-server-1.12.1.orig/hw/xfree86/common/xf86DPMS.c
+++ xorg-server-1.7.99/hw/xfree86/common/xf86DPMS.c +++ xorg-server-1.12.1/hw/xfree86/common/xf86DPMS.c
@@ -156,7 +156,8 @@ @@ -151,7 +151,8 @@ DPMSSet(ClientPtr client, int level)
rc = dixSaveScreens(client, SCREEN_SAVER_FORCER, ScreenSaverActive); rc = dixSaveScreens(client, SCREEN_SAVER_FORCER, ScreenSaverActive);
if (rc != Success) if (rc != Success)
return rc; return rc;
- } - }
+ } else + } else
+ dixSaveScreens(client, SCREEN_SAVER_FORCER, ScreenSaverReset); + dixSaveScreens(client, SCREEN_SAVER_FORCER, ScreenSaverReset);
/* For each screen, set the DPMS level */ /* For each screen, set the DPMS level */
for (i = 0; i < xf86NumScreens; i++) { for (i = 0; i < xf86NumScreens; i++) {

View File

@ -1,38 +1,40 @@
--- hw/xfree86/common/xf86pciBus.c Index: hw/xfree86/common/xf86pciBus.c
===================================================================
--- hw/xfree86/common/xf86pciBus.c.orig
+++ hw/xfree86/common/xf86pciBus.c +++ hw/xfree86/common/xf86pciBus.c
@@ -176,7 +176,11 @@ @@ -1107,7 +1107,9 @@ videoPtrToDriverList(struct pci_device *
case 0x1142: driverList[0] = "apm"; break; driverList[0] = "ast";
case 0xedd8: driverList[0] = "ark"; break; break;
case 0x1a03: driverList[0] = "ast"; break; case 0x1002:
- case 0x1002: driverList[0] = "ati"; break; - driverList[0] = "ati";
+ case 0x1002: + driverList[0] = "fglrx";
+ driverList[0] = "fglrx"; + driverList[1] = "radeonhd";
+ driverList[1] = "radeonhd"; + driverList[2] = "ati";
+ driverList[2] = "ati"; break;
+ break; case 0x102c:
case 0x102c: driverList[0] = "chips"; break; driverList[0] = "chips";
case 0x1013: driverList[0] = "cirrus"; break; @@ -1139,6 +1141,13 @@ videoPtrToDriverList(struct pci_device *
case 0x3d3d: driverList[0] = "glint"; break; driverList[0] = "neomagic";
@@ -192,8 +196,20 @@ break;
break; case 0x10de:
case 0x102b: driverList[0] = "mga"; break; + driverList[0] = "nvidia";
case 0x10c8: driverList[0] = "neomagic"; break; + driverList[1] = "nouveau";
- case 0x10de: case 0x12d2: driverList[0] = "nv"; break; + /* GeForce 6150SE support broken (bnc #465190/544674) */
- case 0x1106: driverList[0] = "openchrome"; break; + if (dev->device_id != 0x03D0) {
+ case 0x12d2: driverList[0] = "nv"; break; + driverList[2] = "nv";
+ case 0x10de: + }
+ driverList[0] = "nvidia"; + break;
+ driverList[1] = "nouveau"; case 0x12d2:
+ /* GeForce 6150SE support broken (bnc #465190/544674) */ {
+ if (dev->device_id != 0x03D0) { int idx = 0;
+ driverList[2] = "nv"; @@ -1150,7 +1159,9 @@ videoPtrToDriverList(struct pci_device *
+ } break;
+ break; }
+ case 0x1106: case 0x1106:
+ driverList[0] = "via"; - driverList[0] = "openchrome";
+ driverList[1] = "openchrome"; + driverList[0] = "via";
+ driverList[2] = "unichrome"; + driverList[1] = "openchrome";
+ break; + driverList[2] = "unichrome";
case 0x1b36: driverList[0] = "qxl"; break; break;
case 0x1163: driverList[0] = "rendition"; break; case 0x1b36:
case 0x5333: driverList[0] = "qxl";

View File

@ -1,30 +1,30 @@
Index: hw/xfree86/fbdevhw/fbdevhw.c Index: hw/xfree86/fbdevhw/fbdevhw.c
================================================================================ ===================================================================
--- hw/xfree86/fbdevhw/fbdevhw.c --- hw/xfree86/fbdevhw/fbdevhw.c.orig
+++ hw/xfree86/fbdevhw/fbdevhw.c +++ hw/xfree86/fbdevhw/fbdevhw.c
@@ -957,9 +957,10 @@ @@ -858,9 +858,10 @@ fbdevHWDPMSSet(ScrnInfoPtr pScrn, int mo
return; return;
} }
+ /* Novell Bug #146462 */ + /* Novell Bug #146462 */
if (-1 == ioctl(fPtr->fd, FBIOBLANK, (void *)fbmode)) if (-1 == ioctl(fPtr->fd, FBIOBLANK, (void *) fbmode))
- xf86DrvMsg(pScrn->scrnIndex, X_ERROR, - xf86DrvMsg(pScrn->scrnIndex, X_ERROR,
- "FBIOBLANK: %s\n", strerror(errno)); - "FBIOBLANK: %s\n", strerror(errno));
+ xf86DrvMsg(pScrn->scrnIndex, X_INFO, + xf86DrvMsg(pScrn->scrnIndex, X_INFO,
+ "FBIOBLANK: %s (Screen blanking not supported by vesafb of Linux Kernel)\n", strerror(errno)); + "FBIOBLANK: %s (Screen blanking not supported by vesafb of Linux Kernel)\n", strerror(errno));
} }
Bool Bool
@@ -975,9 +976,10 @@ @@ -875,9 +876,10 @@ fbdevHWSaveScreen(ScreenPtr pScreen, int
unblank = xf86IsUnblank(mode); unblank = xf86IsUnblank(mode);
+ /* Novell Bug #146462 */ + /* Novell Bug #146462 */
if (-1 == ioctl(fPtr->fd, FBIOBLANK, (void *)(1-unblank))) { if (-1 == ioctl(fPtr->fd, FBIOBLANK, (void *) (1 - unblank))) {
- xf86DrvMsg(pScrn->scrnIndex, X_ERROR, - xf86DrvMsg(pScrn->scrnIndex, X_ERROR,
- "FBIOBLANK: %s\n", strerror(errno)); - "FBIOBLANK: %s\n", strerror(errno));
+ xf86DrvMsg(pScrn->scrnIndex, X_INFO, + xf86DrvMsg(pScrn->scrnIndex, X_INFO,
+ "FBIOBLANK: %s (Screen blanking not supported by vesafb of Linux Kernel)\n", strerror(errno)); + "FBIOBLANK: %s (Screen blanking not supported by vesafb of Linux Kernel)\n", strerror(errno));
return FALSE; return FALSE;
} }

View File

@ -1,58 +1,58 @@
Index: hw/xfree86/common/xf86Helper.c Index: hw/xfree86/common/xf86Helper.c
================================================================================ ===================================================================
--- hw/xfree86/common/xf86Helper.c --- hw/xfree86/common/xf86Helper.c.orig
+++ hw/xfree86/common/xf86Helper.c +++ hw/xfree86/common/xf86Helper.c
@@ -974,12 +974,22 @@ @@ -922,12 +922,22 @@ xf86SetDpi(ScrnInfoPtr pScrn, int x, int
} else if (pScrn->widthmm > 0 || pScrn->heightmm > 0) { else if (pScrn->widthmm > 0 || pScrn->heightmm > 0) {
from = X_CONFIG; from = X_CONFIG;
if (pScrn->widthmm > 0) { if (pScrn->widthmm > 0) {
- pScrn->xDpi = - pScrn->xDpi =
- (int)((double)pScrn->virtualX * MMPERINCH / pScrn->widthmm); - (int) ((double) pScrn->virtualX * MMPERINCH / pScrn->widthmm);
+ if (pScrn->modes && pScrn->modes->HDisplay > 0) {
+ pScrn->xDpi =
+ (int)((double) pScrn->modes->HDisplay * MMPERINCH / pScrn->widthmm);
+ } else {
+ pScrn->xDpi =
+ (int)((double)pScrn->virtualX * MMPERINCH / pScrn->widthmm);
+ }
}
if (pScrn->heightmm > 0) {
- pScrn->yDpi =
- (int)((double)pScrn->virtualY * MMPERINCH / pScrn->heightmm);
+ if (pScrn->modes && pScrn->modes->VDisplay > 0) {
+ pScrn->yDpi =
+ (int)((double)pScrn->modes->VDisplay * MMPERINCH / pScrn->heightmm);
+ } else {
+ pScrn->yDpi =
+ (int)((double)pScrn->virtualY * MMPERINCH / pScrn->heightmm);
+ }
}
if (pScrn->xDpi > 0 && pScrn->yDpi <= 0)
pScrn->yDpi = pScrn->xDpi;
@@ -1014,12 +1024,22 @@
pScrn->widthmm = ddcWidthmm;
pScrn->heightmm = ddcHeightmm;
if (pScrn->widthmm > 0) {
- pScrn->xDpi =
- (int)((double)pScrn->virtualX * MMPERINCH / pScrn->widthmm);
+ if (pScrn->modes && pScrn->modes->HDisplay > 0) { + if (pScrn->modes && pScrn->modes->HDisplay > 0) {
+ pScrn->xDpi = + pScrn->xDpi =
+ (int)((double) pScrn->modes->HDisplay * MMPERINCH / pScrn->widthmm); + (int)((double) pScrn->modes->HDisplay * MMPERINCH / pScrn->widthmm);
+ } else { + } else {
+ pScrn->xDpi = + pScrn->xDpi =
+ (int)((double)pScrn->virtualX * MMPERINCH / pScrn->widthmm); + (int)((double)pScrn->virtualX * MMPERINCH / pScrn->widthmm);
+ } + }
} }
if (pScrn->heightmm > 0) { if (pScrn->heightmm > 0) {
- pScrn->yDpi = - pScrn->yDpi =
- (int)((double)pScrn->virtualY * MMPERINCH / pScrn->heightmm); - (int) ((double) pScrn->virtualY * MMPERINCH / pScrn->heightmm);
+ if (pScrn->modes && pScrn->modes->VDisplay > 0) { + if (pScrn->modes && pScrn->modes->VDisplay > 0) {
+ pScrn->yDpi = + pScrn->yDpi =
+ (int)((double)pScrn->modes->VDisplay * MMPERINCH / pScrn->heightmm); + (int)((double)pScrn->modes->VDisplay * MMPERINCH / pScrn->heightmm);
+ } else { + } else {
+ pScrn->yDpi = + pScrn->yDpi =
+ (int)((double)pScrn->virtualY * MMPERINCH / pScrn->heightmm); + (int)((double)pScrn->virtualY * MMPERINCH / pScrn->heightmm);
+ } + }
} }
if (pScrn->xDpi > 0 && pScrn->yDpi <= 0) if (pScrn->xDpi > 0 && pScrn->yDpi <= 0)
pScrn->yDpi = pScrn->xDpi; pScrn->yDpi = pScrn->xDpi;
@@ -966,12 +976,22 @@ xf86SetDpi(ScrnInfoPtr pScrn, int x, int
pScrn->widthmm = ddcWidthmm;
pScrn->heightmm = ddcHeightmm;
if (pScrn->widthmm > 0) {
- pScrn->xDpi =
- (int) ((double) pScrn->virtualX * MMPERINCH / pScrn->widthmm);
+ if (pScrn->modes && pScrn->modes->HDisplay > 0) {
+ pScrn->xDpi =
+ (int)((double) pScrn->modes->HDisplay * MMPERINCH / pScrn->widthmm);
+ } else {
+ pScrn->xDpi =
+ (int)((double)pScrn->virtualX * MMPERINCH / pScrn->widthmm);
+ }
}
if (pScrn->heightmm > 0) {
- pScrn->yDpi =
- (int) ((double) pScrn->virtualY * MMPERINCH / pScrn->heightmm);
+ if (pScrn->modes && pScrn->modes->VDisplay > 0) {
+ pScrn->yDpi =
+ (int)((double)pScrn->modes->VDisplay * MMPERINCH / pScrn->heightmm);
+ } else {
+ pScrn->yDpi =
+ (int)((double)pScrn->virtualY * MMPERINCH / pScrn->heightmm);
+ }
}
if (pScrn->xDpi > 0 && pScrn->yDpi <= 0)
pScrn->yDpi = pScrn->xDpi;

View File

@ -1,5 +1,7 @@
--- hw/xfree86/common/xf86AutoConfig.c.orig 2010-03-23 19:36:35.242114919 +0100 Index: hw/xfree86/common/xf86AutoConfig.c
+++ hw/xfree86/common/xf86AutoConfig.c 2010-03-23 19:46:34.037124633 +0100 ===================================================================
--- hw/xfree86/common/xf86AutoConfig.c.orig
+++ hw/xfree86/common/xf86AutoConfig.c
@@ -75,6 +75,13 @@ @@ -75,6 +75,13 @@
"\tDevice\t" BUILTIN_DEVICE_NAME "\n" \ "\tDevice\t" BUILTIN_DEVICE_NAME "\n" \
"EndSection\n\n" "EndSection\n\n"
@ -14,15 +16,15 @@
#define BUILTIN_LAYOUT_SECTION_PRE \ #define BUILTIN_LAYOUT_SECTION_PRE \
"Section \"ServerLayout\"\n" \ "Section \"ServerLayout\"\n" \
"\tIdentifier\t\"Builtin Default Layout\"\n" "\tIdentifier\t\"Builtin Default Layout\"\n"
@@ -259,7 +266,10 @@ xf86AutoConfig(void) @@ -153,7 +160,10 @@ xf86AutoConfig(void)
for (p = deviceList; *p; p++) { for (p = deviceList; *p; p++) {
snprintf(buf, sizeof(buf), BUILTIN_DEVICE_SECTION, *p, 0, *p); snprintf(buf, sizeof(buf), BUILTIN_DEVICE_SECTION, *p, 0, *p);
AppendToConfig(buf); AppendToConfig(buf);
- snprintf(buf, sizeof(buf), BUILTIN_SCREEN_SECTION, *p, 0, *p, 0); - snprintf(buf, sizeof(buf), BUILTIN_SCREEN_SECTION, *p, 0, *p, 0);
+ if( strcmp(*p, "fglrx") == 0 ) + if( strcmp(*p, "fglrx") == 0 )
+ snprintf(buf, sizeof(buf), BUILTIN_SCREEN_SECTION_FOR_FGLRX, *p, 0, *p, 0); + snprintf(buf, sizeof(buf), BUILTIN_SCREEN_SECTION_FOR_FGLRX, *p, 0, *p, 0);
+ else + else
+ snprintf(buf, sizeof(buf), BUILTIN_SCREEN_SECTION, *p, 0, *p, 0); + snprintf(buf, sizeof(buf), BUILTIN_SCREEN_SECTION, *p, 0, *p, 0);
AppendToConfig(buf); AppendToConfig(buf);
} }

View File

@ -1,9 +1,9 @@
Index: hw/xfree86/common/xf86Globals.c Index: hw/xfree86/common/xf86Globals.c
================================================================================ ===================================================================
--- hw/xfree86/common/xf86Globals.c --- hw/xfree86/common/xf86Globals.c.orig
+++ hw/xfree86/common/xf86Globals.c +++ hw/xfree86/common/xf86Globals.c
@@ -144,7 +144,7 @@ @@ -135,7 +135,7 @@ xf86InfoRec xf86Info = {
};
const char *xf86ConfigFile = NULL; const char *xf86ConfigFile = NULL;
const char *xf86ConfigDir = NULL; const char *xf86ConfigDir = NULL;
-const char *xf86ModulePath = DEFAULT_MODULE_PATH; -const char *xf86ModulePath = DEFAULT_MODULE_PATH;

View File

@ -1,9 +1,9 @@
Index: build-GucBkyZ/xorg-server-1.6.3.901/hw/xnest/GCOps.c Index: xorg-server-1.12.1/hw/xnest/GCOps.c
================================================================================ ===================================================================
--- BUILD/xorg-server-1.7.99/hw/xnest/GCOps.c --- xorg-server-1.12.1.orig/hw/xnest/GCOps.c
+++ BUILD/xorg-server-1.7.99/hw/xnest/GCOps.c +++ xorg-server-1.12.1/hw/xnest/GCOps.c
@@ -94,6 +94,13 @@ @@ -94,15 +94,26 @@ xnestPutImage(DrawablePtr pDrawable, GCP
} }
} }
+static int +static int
@ -15,18 +15,17 @@ Index: build-GucBkyZ/xorg-server-1.6.3.901/hw/xnest/GCOps.c
+ +
void void
xnestGetImage(DrawablePtr pDrawable, int x, int y, int w, int h, xnestGetImage(DrawablePtr pDrawable, int x, int y, int w, int h,
unsigned int format, unsigned long planeMask, unsigned int format, unsigned long planeMask, char *pImage)
@@ -101,9 +108,13 @@
{ {
XImage *ximage; XImage *ximage;
int length; int length;
+ int (*old_handler)(Display*, XErrorEvent*); + int (*old_handler)(Display*, XErrorEvent*);
+ /* we may get BadMatch error when xnest window is minimized */ + /* we may get BadMatch error when xnest window is minimized */
+ old_handler = XSetErrorHandler (xnestIgnoreErrorHandler); + old_handler = XSetErrorHandler (xnestIgnoreErrorHandler);
ximage = XGetImage(xnestDisplay, xnestDrawable(pDrawable), ximage = XGetImage(xnestDisplay, xnestDrawable(pDrawable),
x, y, w, h, planeMask, format); x, y, w, h, planeMask, format);
+ XSetErrorHandler (old_handler); + XSetErrorHandler (old_handler);
if (ximage) { if (ximage) {
length = ximage->bytes_per_line * ximage->height; length = ximage->bytes_per_line * ximage->height;

57
pre_checkin.sh Normal file
View File

@ -0,0 +1,57 @@
#!/bin/sh
# pre_checking.sh
# Licensed under the same condition as the xorg-server.
# This script updates the .spec file (based on .spec.in) and inject versioned ABI Symbols from the X-Server,
# stored in a template file xorg-server-provides. The content of this file is verified during build, as the
# same script runs then again, extracting ABI versions from the source to be built. This ensures we can't
# publish a package with wrong ABI Versions being provided as part of the RPM Metadata.
# Driver-, Input and extension-packages are supposed to use the provided macros to ensure correct Requires.
# extract ABI Versions... this function is copied from configure.ac
extract_abi() {
grep ^.define.*${1}_VERSION ${xorg_src}/hw/xfree86/common/xf86Module.h | tr '(),' ' .' | awk '{ print $4$5 }'
}
if [ "$1" == "--tar" ]; then
tmpdir=$(mktemp -d)
tar xf "$2" -C ${tmpdir}
xorg_src=${tmpdir}/*
elif [ "$1" == "--verify" ]; then
xorg_src="$2"
prv_ext=".build"
else
echo "Wrong usage of this script"
echo "$0 can be started in two ways:"
echo "1: $0 --tar {xorg-server-xxxx.tar.bz2}"
echo "2: $0 --verify {source-folder}"
echo "Variant 1 creates the file xorg-server-provides to be included in the src rpm"
echo "Variant 2 is being called during build to ensure the ABI provides match the expectations."
echo ""
echo ""
echo "Trying to guess the right tarball"
sh $0 --tar xorg-server-*.tar.bz2
echo "... Please verify if the result makes sense"
exit 2
fi
abi_ansic=`extract_abi ANSIC`
abi_videodrv=`extract_abi VIDEODRV`
abi_xinput=`extract_abi XINPUT`
abi_extension=`extract_abi EXTENSION`
A="Provides: X11_ABI_XINPUT = ${abi_xinput}\nProvides: X11_ABI_VIDEODRV = ${abi_videodrv}\nProvides: X11_ABI_ANSIC = ${abi_ansic}\nProvides: X11_ABI_EXTENSION = ${abi_extension}"
echo -e $A > xorg-server-provides${prv_ext}
if [ "$1" == "--tar" ]; then
if [ -d ${tmpdir} ]; then
rm -rf ${tmpdir}
fi
elif [ "$1" == "--verify" ]; then
diff "$3" xorg-server-provides${prv_ext}
if [ $? -gt 0 ]; then
echo "The ABI verification failed... please run $0 before checking in"
exit 1
fi
fi

View File

@ -1,21 +1,22 @@
Index: hw/xfree86/xaa/xaaImage.c Index: hw/xfree86/xaa/xaaImage.c
================================================================================ ===================================================================
--- hw/xfree86/xaa/xaaImage.c --- hw/xfree86/xaa/xaaImage.c.orig
+++ hw/xfree86/xaa/xaaImage.c +++ hw/xfree86/xaa/xaaImage.c
@@ -238,12 +238,16 @@ @@ -240,6 +240,7 @@ XAAWritePixmap(ScrnInfoPtr pScrn, int x,
(*infoRec->SetupForImageWrite)(pScrn, rop, planemask, trans, bpp, depth); (*infoRec->SetupForImageWrite) (pScrn, rop, planemask, trans, bpp, depth);
(*infoRec->SubsequentImageWriteRect)(pScrn, x, y, w, h, skipleft); (*infoRec->SubsequentImageWriteRect) (pScrn, x, y, w, h, skipleft);
+#if 0 +#if 0
if(beCareful) { if (beCareful) {
/* in cases with bad alignment we have to be careful not /* in cases with bad alignment we have to be careful not
to read beyond the end of the source */ to read beyond the end of the source */
if(((x * Bpp) + (dwords << 2)) > srcwidth) h--; @@ -248,6 +249,9 @@ XAAWritePixmap(ScrnInfoPtr pScrn, int x,
else beCareful = FALSE; else
beCareful = FALSE;
} }
+#endif +#endif
+ if (beCareful) + if (beCareful)
+ h--; + h--;
if(dwords > infoRec->ImageWriteRange) { if (dwords > infoRec->ImageWriteRange) {
while(h--) { while (h--) {

View File

@ -1,14 +1,14 @@
Index: xorg-server-1.6.3.901/hw/xfree86/common/xf86RandR.c Index: xorg-server-1.12.1/hw/xfree86/common/xf86RandR.c
================================================================================ ===================================================================
--- xorg-server-1.7.99/hw/xfree86/common/xf86RandR.c --- xorg-server-1.12.1.orig/hw/xfree86/common/xf86RandR.c
+++ xorg-server-1.7.99/hw/xfree86/common/xf86RandR.c +++ xorg-server-1.12.1/hw/xfree86/common/xf86RandR.c
@@ -247,6 +247,9 @@ @@ -237,6 +237,9 @@ xf86RandRSetConfig(ScreenPtr pScreen,
Bool useVirtual = FALSE; DeviceIntPtr dev;
Rotation oldRotation = randrp->rotation; Bool view_adjusted = FALSE;
+ if (!scrp->vtSema) + if (!scrp->vtSema)
+ return FALSE; + return FALSE;
+ +
miPointerGetPosition(inputInfo.pointer, &px, &py); for (dev = inputInfo.devices; dev; dev = dev->next) {
for (mode = scrp->modes; ; mode = mode->next) if (!IsMaster(dev) && !IsFloating(dev))
{ continue;

View File

@ -1,8 +1,10 @@
--- xorg-server-1.9.1/Xext/sync.c 2010-11-16 23:11:56.751124639 -0500 Index: xorg-server-1.12.1/Xext/sync.c
+++ xorg-server-1.9.1/Xext/sync.c 2010-11-16 23:13:16.327862535 -0500 ===================================================================
@@ -2264,8 +2264,44 @@ --- xorg-server-1.12.1.orig/Xext/sync.c
+++ xorg-server-1.12.1/Xext/sync.c
@@ -2615,9 +2615,43 @@ static XSyncValue *pIdleTimeValueGreater
static void static void
IdleTimeQueryValue (pointer pCounter, CARD64 *pValue_return) IdleTimeQueryValue(pointer pCounter, CARD64 * pValue_return)
{ {
- CARD32 idle = GetTimeInMillis() - lastDeviceEventTime.milliseconds; - CARD32 idle = GetTimeInMillis() - lastDeviceEventTime.milliseconds;
+ static CARD32 previousLastDeviceEventTimeMilliseconds = 0; + static CARD32 previousLastDeviceEventTimeMilliseconds = 0;
@ -10,9 +12,8 @@
+ CARD32 idle = now - lastDeviceEventTime.milliseconds; + CARD32 idle = now - lastDeviceEventTime.milliseconds;
+ CARD32 previousIdle = now - previousLastDeviceEventTimeMilliseconds; + CARD32 previousIdle = now - previousLastDeviceEventTimeMilliseconds;
+ SyncCounter *pIdleTimeCounter = (SyncCounter*)pCounter; + SyncCounter *pIdleTimeCounter = (SyncCounter*)pCounter;
+
XSyncIntsToValue (pValue_return, idle, 0); XSyncIntsToValue(pValue_return, idle, 0);
+
+ if (pCounter == NULL) + if (pCounter == NULL)
+ { + {
+ return; + return;
@ -29,7 +30,7 @@
+ /* no new user event, no need to change idle counter. */ + /* no new user event, no need to change idle counter. */
+ return; + return;
+ } + }
+ previousLastDeviceEventTimeMilliseconds = lastDeviceEventTime.milliseconds; + previousLastDeviceEventTimeMilliseconds = lastDeviceEventTime.milliseconds;
+ +
+ /* + /*
+ * Some user event occured; now update idle counter with previous + * Some user event occured; now update idle counter with previous
@ -46,12 +47,12 @@
} }
static void static void
@@ -2342,7 +2378,7 @@ @@ -2700,7 +2734,7 @@ IdleTimeWakeupHandler(pointer env, int r
if (!pIdleTimeValueLess && !pIdleTimeValueGreater) if (!pIdleTimeValueLess && !pIdleTimeValueGreater)
return; return;
- IdleTimeQueryValue (NULL, &idle); - IdleTimeQueryValue(NULL, &idle);
+ IdleTimeQueryValue (IdleTimeCounter, &idle); + IdleTimeQueryValue(IdleTimeCounter, &idle);
if ((pIdleTimeValueGreater && if ((pIdleTimeValueGreater &&
XSyncValueGreaterOrEqual (idle, *pIdleTimeValueGreater)) || XSyncValueGreaterOrEqual(idle, *pIdleTimeValueGreater)) ||

View File

@ -1,290 +0,0 @@
From 142ba992065dd9c37a9d06dc6e96cfc9adfb6be0 Mon Sep 17 00:00:00 2001
From: Egbert Eich <eich@suse.de>
Date: Tue, 5 Jul 2011 06:56:43 +0200
Subject: [PATCH] OS/acpi: Reconnect to acpid when it gets restarted.
Patch-mainline: To be upstreamed
On Linux the Xserver connects to the ACPI daemon to
receive power management events. If this daemon isn't
started when the server starts or goes down the connection
is lost.
When this happens we add a timer which periodically
tries to reconnect.
Signed-off-by: Egbert Eich <eich@suse.de>
---
hw/xfree86/os-support/linux/lnx_acpi.c | 68 ++++++++++++++++++++++++++-----
hw/xfree86/os-support/linux/lnx_apm.c | 9 ++++
2 files changed, 66 insertions(+), 11 deletions(-)
diff --git a/hw/xfree86/os-support/linux/lnx_acpi.c b/hw/xfree86/os-support/linux/lnx_acpi.c
index 5fad194..8dd6881 100644
--- a/hw/xfree86/os-support/linux/lnx_acpi.c
+++ b/hw/xfree86/os-support/linux/lnx_acpi.c
@@ -32,9 +32,12 @@
#define ACPI_VIDEO_HEAD_INVALID (~0u - 1)
#define ACPI_VIDEO_HEAD_END (~0u)
+static PMClose doLnxACPIOpen(void);
static void lnxCloseACPI(void);
static pointer ACPIihPtr = NULL;
+static OsTimerPtr acpiTimer = NULL;
PMClose lnxACPIOpen(void);
+PMClose lnxACPIPoll(void);
/* in milliseconds */
#define ACPI_REOPEN_DELAY 1000
@@ -52,6 +55,22 @@ lnxACPIReopen(OsTimerPtr timer, CARD32 time, pointer arg)
#define LINE_LENGTH 80
+static CARD32
+lnxACPICheckTimer(OsTimerPtr timer, CARD32 now, pointer arg)
+{
+#if DEBUG
+ ErrorF("ACPI: trying to reopen\n");
+#endif
+ if (doLnxACPIOpen()) {
+#if DEBUG
+ ErrorF("ACPI: successfully reopened\n");
+#endif
+ acpiTimer = NULL;
+ return 0;
+ }
+ return 10000;
+}
+
static int
lnxACPIGetEventFromOs(int fd, pmEvent *events, int num)
{
@@ -127,33 +146,35 @@ lnxACPIConfirmEventToOs(int fd, pmEvent event)
}
}
-PMClose
-lnxACPIOpen(void)
+static PMClose
+doLnxACPIOpen(void)
{
- int fd;
+ int fd = -1;
struct sockaddr_un addr;
int r = -1;
static int warned = 0;
- DebugF("ACPI: OSPMOpen called\n");
if (ACPIihPtr || !xf86Info.pmFlag)
return NULL;
DebugF("ACPI: Opening device\n");
- if ((fd = socket(AF_UNIX, SOCK_STREAM, 0)) > -1) {
+ fd = socket(AF_UNIX, SOCK_STREAM, 0);
+ if (fd > -1) {
memset(&addr, 0, sizeof(addr));
addr.sun_family = AF_UNIX;
strcpy(addr.sun_path, ACPI_SOCKET);
- if ((r = connect(fd, (struct sockaddr*)&addr, sizeof(addr))) == -1) {
- if (!warned)
+ r = connect(fd, (struct sockaddr*)&addr, sizeof(addr));
+ if (r == -1) {
+ if (errno != warned)
xf86MsgVerb(X_WARNING,3,"Open ACPI failed (%s) (%s)\n",
ACPI_SOCKET, strerror(errno));
- warned = 1;
- shutdown(fd, 2);
+ warned = errno;
+ shutdown(fd, SHUT_RDWR);
close(fd);
return NULL;
}
- }
+ } else
+ return NULL;
xf86PMGetEventFromOs = lnxACPIGetEventFromOs;
xf86PMConfirmEventToOs = lnxACPIConfirmEventToOs;
@@ -164,6 +185,25 @@ lnxACPIOpen(void)
return lnxCloseACPI;
}
+PMClose
+lnxACPIPoll(void)
+{
+ TimerSet(NULL, 0, 10000, lnxACPICheckTimer, NULL);
+ return lnxCloseACPI;
+}
+
+PMClose
+lnxACPIOpen(void)
+{
+ PMClose ret;
+#ifdef DEBUG
+ ErrorF("ACPI: OSPMOpen called\n");
+#endif
+ ret = doLnxACPIOpen();
+
+ return ret;
+}
+
static void
lnxCloseACPI(void)
{
@@ -172,8 +212,14 @@ lnxCloseACPI(void)
DebugF("ACPI: Closing device\n");
if (ACPIihPtr) {
fd = xf86RemoveGeneralHandler(ACPIihPtr);
- shutdown(fd, 2);
+ shutdown(fd, SHUT_RDWR);
close(fd);
ACPIihPtr = NULL;
+ xf86PMGetEventFromOs = NULL;
+ xf86PMConfirmEventToOs = NULL;
+ if (acpiTimer) {
+ TimerCancel(acpiTimer);
+ acpiTimer = NULL;
+ }
}
}
diff --git a/hw/xfree86/os-support/linux/lnx_apm.c b/hw/xfree86/os-support/linux/lnx_apm.c
index 54c6989..c8b254f 100644
--- a/hw/xfree86/os-support/linux/lnx_apm.c
+++ b/hw/xfree86/os-support/linux/lnx_apm.c
@@ -12,6 +12,7 @@
#ifdef HAVE_ACPI
extern PMClose lnxACPIOpen(void);
+extern PMClose lnxACPIPoll(void);
#endif
#ifdef HAVE_APM
@@ -149,6 +150,14 @@ xf86OSPMOpen(void)
ret = lnxAPMOpen();
#endif
+#ifdef HAVE_ACPI
+ /* if we can neither open ACPI nor APM poll for an ACPI service to
+ become available */
+
+ if (!ret && !xf86acpiDisableFlag)
+ ret = lnxACPIPoll();
+#endif
+
return ret;
}
--
1.6.0.2
From 3f35d15f7c7eb202de36e2d1040f27ef7b38c1d2 Mon Sep 17 00:00:00 2001
From: Egbert Eich <eich@freedesktop.org>
Date: Thu, 7 Jul 2011 09:01:35 +0200
Subject: [PATCH] OS/ACPI: Make socket to read from acpid non-blocking.
If acpid for some reason does not service a connect() this
function may hang forever stalling the Xserver. To prevent
this make the socket non-blocking. If connect returns
EINPROGRESS use select() and getsockopt() to check for
completion of the connect request.
select() gets a different timeout depending if it is called
during startup or to do a reconnect.
Signed-off-by: Egbert Eich <eich@freedesktop.org>
---
hw/xfree86/os-support/linux/lnx_acpi.c | 34 +++++++++++++++++++++++++++----
1 files changed, 29 insertions(+), 5 deletions(-)
diff --git a/hw/xfree86/os-support/linux/lnx_acpi.c b/hw/xfree86/os-support/linux/lnx_acpi.c
index 8dd6881..f0e6eb4 100644
--- a/hw/xfree86/os-support/linux/lnx_acpi.c
+++ b/hw/xfree86/os-support/linux/lnx_acpi.c
@@ -32,7 +32,7 @@
#define ACPI_VIDEO_HEAD_INVALID (~0u - 1)
#define ACPI_VIDEO_HEAD_END (~0u)
-static PMClose doLnxACPIOpen(void);
+static PMClose doLnxACPIOpen(struct timeval *);
static void lnxCloseACPI(void);
static pointer ACPIihPtr = NULL;
static OsTimerPtr acpiTimer = NULL;
@@ -58,10 +58,11 @@ lnxACPIReopen(OsTimerPtr timer, CARD32 time, pointer arg)
static CARD32
lnxACPICheckTimer(OsTimerPtr timer, CARD32 now, pointer arg)
{
+ struct timeval timeval = { 0, 0 };
#if DEBUG
ErrorF("ACPI: trying to reopen\n");
#endif
- if (doLnxACPIOpen()) {
+ if (doLnxACPIOpen(&timeval)) {
#if DEBUG
ErrorF("ACPI: successfully reopened\n");
#endif
@@ -147,7 +148,7 @@ lnxACPIConfirmEventToOs(int fd, pmEvent event)
}
static PMClose
-doLnxACPIOpen(void)
+doLnxACPIOpen(struct timeval *tv_p)
{
int fd = -1;
struct sockaddr_un addr;
@@ -158,13 +159,34 @@ doLnxACPIOpen(void)
return NULL;
DebugF("ACPI: Opening device\n");
- fd = socket(AF_UNIX, SOCK_STREAM, 0);
+ fd = socket(AF_UNIX, SOCK_STREAM | SOCK_NONBLOCK, 0);
if (fd > -1) {
memset(&addr, 0, sizeof(addr));
addr.sun_family = AF_UNIX;
strcpy(addr.sun_path, ACPI_SOCKET);
r = connect(fd, (struct sockaddr*)&addr, sizeof(addr));
if (r == -1) {
+ int sock_errno = errno;
+ if (sock_errno == EINPROGRESS) {
+ fd_set fds;
+ int result;
+ do {
+ FD_ZERO(&fds);
+ FD_SET(fd, &fds);
+ result = select(fd + 1, NULL, &fds, NULL, tv_p);
+ } while (result < 0 && errno == EINTR);
+ if (result < 0)
+ sock_errno = errno;
+ else if (result > 0) {
+ int sock_errno;
+ socklen_t size = sizeof(sock_errno);
+ if (0 > getsockopt(fd, SOL_SOCKET, SO_ERROR, &sock_errno,
+ &size))
+ sock_errno = errno;
+ if (!sock_errno)
+ goto success;
+ }
+ }
if (errno != warned)
xf86MsgVerb(X_WARNING,3,"Open ACPI failed (%s) (%s)\n",
ACPI_SOCKET, strerror(errno));
@@ -176,6 +198,7 @@ doLnxACPIOpen(void)
} else
return NULL;
+ success:
xf86PMGetEventFromOs = lnxACPIGetEventFromOs;
xf86PMConfirmEventToOs = lnxACPIConfirmEventToOs;
ACPIihPtr = xf86AddGeneralHandler(fd,xf86HandlePMEvents,NULL);
@@ -196,10 +219,11 @@ PMClose
lnxACPIOpen(void)
{
PMClose ret;
+ struct timeval timeval = { 0, 30000 };
#ifdef DEBUG
ErrorF("ACPI: OSPMOpen called\n");
#endif
- ret = doLnxACPIOpen();
+ ret = doLnxACPIOpen(&timeval);
return ret;
}
--
1.7.3.4

View File

@ -1,36 +0,0 @@
Date: Mon, 07 Nov 2011 22:09:34 -0800
From: Keith Packard <keithp@keithp.com>
Subject: Re: X server SIGSEGV?
If you aren't using the Record extension (and you aren't), you can work
around the bug by moving the code which accesses the (non-existant)
request buffer inside the loop looking at the recording contexts (of
which there should be none):
diff --git a/record/record.c b/record/record.c
index 68311ac..9e36103 100644
--- a/record/record.c
+++ b/record/record.c
@@ -603,12 +603,10 @@ RecordAReply(CallbackListPtr *pcbl, pointer nulldata, pointer calldata)
RecordContextPtr pContext;
RecordClientsAndProtocolPtr pRCAP;
int eci;
- int majorop;
ReplyInfoRec *pri = (ReplyInfoRec *)calldata;
ClientPtr client = pri->client;
REQUEST(xReq);
- majorop = stuff->reqType;
for (eci = 0; eci < numEnabledContexts; eci++)
{
pContext = ppAllContexts[eci];
@@ -616,6 +614,7 @@ RecordAReply(CallbackListPtr *pcbl, pointer nulldata, pointer calldata)
NULL);
if (pRCAP)
{
+ int majorop = stuff->reqType;
if (pContext->continuedReply)
{
RecordAProtocolElement(pContext, client, XRecordFromServer,
I'll see if I can't get someone to fix this for real...

View File

@ -1,13 +1,13 @@
Index: hw/xfree86/common/xf86VidMode.c Index: hw/xfree86/common/xf86VidMode.c
================================================================================ ===================================================================
--- hw/xfree86/common/xf86VidMode.c --- hw/xfree86/common/xf86VidMode.c.orig
+++ hw/xfree86/common/xf86VidMode.c +++ hw/xfree86/common/xf86VidMode.c
@@ -220,6 +220,8 @@ @@ -224,6 +224,8 @@ VidModeGetFirstModeline(int scrnIndex, p
return FALSE;
pScrn = xf86Screens[scrnIndex];
pVidMode = VMPTR(pScrn->pScreen); pVidMode = VMPTR(pScrn->pScreen);
+ if (!pScrn->modes) + if (!pScrn->modes)
+ return FALSE; + return FALSE;
pVidMode->First = pScrn->modes; pVidMode->First = pScrn->modes;
pVidMode->Next = pVidMode->First->next; pVidMode->Next = pVidMode->First->next;

View File

@ -1,25 +1,34 @@
Index: xorg-server-1.6.3.901/hw/xfree86/common/xf86pciBus.c Index: xorg-server-1.12.1/hw/xfree86/common/xf86pciBus.c
=============================================================================== ===================================================================
--- xorg-server-1.7.99/hw/xfree86/common/xf86pciBus.c --- xorg-server-1.12.1.orig/hw/xfree86/common/xf86pciBus.c
+++ xorg-server-1.7.99/hw/xfree86/common/xf86pciBus.c +++ xorg-server-1.12.1/hw/xfree86/common/xf86pciBus.c
@@ -186,12 +186,14 @@ @@ -1124,14 +1124,21 @@ videoPtrToDriverList(struct pci_device *
case 0x3d3d: driverList[0] = "glint"; break; driverList[0] = "i128";
case 0x105d: driverList[0] = "i128"; break; break;
case 0x8086: case 0x8086:
- if ((dev->device_id == 0x00d1) || (dev->device_id == 0x7800)) { - if ((dev->device_id == 0x00d1) || (dev->device_id == 0x7800)) {
- driverList[0] = "i740"; - driverList[0] = "i740";
- } else if (dev->device_id == 0x8108) { - }
- break; /* "hooray" for poulsbo */ - else if (dev->device_id == 0x8108) {
- } else { - break; /* "hooray" for poulsbo */
- driverList[0] = "intel"; - }
+ switch (dev->device_id) - else {
+ { - driverList[0] = "intel";
+ case 0x00d1: case 0x7800: + switch (dev->device_id)
+ driverList[0] = "i740"; break; + {
+ case 0x8109: case 0x8108: case 0x4102: + case 0x00d1:
+ driverList[0] = "psb"; driverList[1] = "psb_drv"; break; + case 0x7800:
+ driverList[0] = "i740";
+ break;
+ case 0x8109:
+ case 0x8108:
+ case 0x4102:
+ driverList[0] = "psb";
+ driverList[1] = "psb_drv";
+ break;
+ default: + default:
+ driverList[0] = "intel"; break; + driverList[0] = "intel";
} + break;
break; }
case 0x102b: driverList[0] = "mga"; break; break;
case 0x102b:

View File

@ -1,3 +0,0 @@
version https://git-lfs.github.com/spec/v1
oid sha256:f6b21bc486ab10fdf2bf1dfdf08f0aba22a4b87542165eeb395d0a6202f19d32
size 345028

View File

@ -1,3 +0,0 @@
version https://git-lfs.github.com/spec/v1
oid sha256:fafc16b97b9a61b62dfaa74e8d336baa0cea752ce9ed8103c4d212baa8031ca5
size 5386174

View File

@ -0,0 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:d21dc1dac767975cf9872984c78dd0bff928a74420fbcb415267c6bdbd41b45a
size 5349351

4
xorg-server-provides Normal file
View File

@ -0,0 +1,4 @@
Provides: X11_ABI_XINPUT = 16.0
Provides: X11_ABI_VIDEODRV = 12.0
Provides: X11_ABI_ANSIC = 0.4
Provides: X11_ABI_EXTENSION = 6.0

View File

@ -1,28 +1,30 @@
--- xorg-server-1.6.5/os/access.c Index: xorg-server-1.12.1/os/access.c
+++ xorg-server-1.6.5/os/access.c ===================================================================
@@ -781,7 +781,9 @@ --- xorg-server-1.12.1.orig/os/access.c
+++ xorg-server-1.12.1/os/access.c
@@ -714,7 +714,9 @@ DefineSelf(int fd)
/* /*
* ignore 'localhost' entries as they're not useful * ignore 'localhost' entries as they're not useful
- * on the other end of the wire - * on the other end of the wire
+ * on the other end of the wire and because on hosts + * on the other end of the wire and because on hosts
+ * with shared home dirs they'll result in conflic + * with shared home dirs they'll result in conflicting
+ * entries in ~/.Xauthority + * entries in ~/.Xauthority
*/ */
if (ifr->ifa_flags & IFF_LOOPBACK) if (ifr->ifa_flags & IFF_LOOPBACK)
continue; continue;
@@ -804,6 +806,14 @@ @@ -735,6 +737,14 @@ DefineSelf(int fd)
else if (family == FamilyInternet6 && else if (family == FamilyInternet6 &&
IN6_IS_ADDR_LOOPBACK((struct in6_addr *)addr)) IN6_IS_ADDR_LOOPBACK((struct in6_addr *) addr))
continue; continue;
+ +
+ /* Ignore IPv6 link local addresses (fe80::/10), because + /* Ignore IPv6 link local addresses (fe80::/10), because
+ * they need a scope identifier, which we have no way + * they need a scope identifier, which we have no way
+ * of telling to the other end. + * of telling to the other end.
+ */ + */
+ if (family == FamilyInternet6 && + if (family == FamilyInternet6 &&
+ IN6_IS_ADDR_LINKLOCAL((struct in6_addr *)addr)) + IN6_IS_ADDR_LINKLOCAL((struct in6_addr *)addr))
+ continue; + continue;
#endif #endif
XdmcpRegisterConnection(family, (char *)addr, len); XdmcpRegisterConnection(family, (char *) addr, len);
#if defined(IPv6) && defined(AF_INET6) #if defined(IPv6) && defined(AF_INET6)

View File

@ -0,0 +1,10 @@
Index: xorg-server-1.12.1/configure.ac
===================================================================
--- xorg-server-1.12.1.orig/configure.ac
+++ xorg-server-1.12.1/configure.ac
@@ -2232,4 +2232,5 @@ test/Makefile
test/xi2/Makefile
xserver.ent
xorg-server.pc
+xorg-x11-server.macros
])

View File

@ -1,3 +1,49 @@
-------------------------------------------------------------------
Wed Apr 18 22:52:23 UTC 2012 - mgorse@suse.com
- Rebase VNC patches
Rebase confine_to_shape.diff
-------------------------------------------------------------------
Sun Apr 15 12:35:03 UTC 2012 - dimstar@opensuse.org
- Update to version 1.12.1
- Drop xorg-docs-1.6.tar.bz2: the docs are provided in a sep.
package.
- Add ABI Provides verification:
+ pre_checkin.sh to be launched with --tar before checkin (no
parameter given will try to do the right thing).
+ pre_checkin.sh is used during build to verify that the ABI
values match the expectations, to ensure we provide by rpm what
the binaries do.
- Add rpm macro file, allowing driver and input packages to specify
%x11_abi_videodrv_req, %x11_abi_xinput_req.
- Rebased patches to apply on 1.12.1 code base:
+ 0001-Check-harder-for-primary-PCI-device.patch
+ 0001-Fix-segfault-when-killing-X-with-ctrl-alt-backspace.patch
+ autoconfig_fallback_fbdev_first.diff
+ bug534768-prefer_local_symbols.patch
+ dpms_screensaver.diff
+ driver-autoconfig.diff
+ fbdevhw.diff
+ fix-dpi-values.diff
+ fix_fglrx_screendepth_issue.patch
+ p_default-module-path.diff
+ pu_fixes.diff
+ p_xnest-ignore-getimage-errors.diff
+ randr1_1-sig11.diff
+ vidmode-sig11.diff
+ xorg-detect-psb.patch
+ xorg-server-xdmcp.patch
+ zap_warning_xserver.diff
+ sync-fix.patch
- Drop upstream fixed patches:
+ U_dix-on-PointerRootWin-send-a-FocusIn-to-the-sprite-w.patch
+ U_dix-send-focus-events-to-the-immediate-parent-44079.patch
+ U_Don-t-call-deleted-Block-WakeupHandler.patch
+ u_OS-acpi-Reconnect-to-acpid-when-it-gets-restarted.patch
+ u_record-fix-sig11.patch
------------------------------------------------------------------- -------------------------------------------------------------------
Thu Mar 22 00:25:39 UTC 2012 - jengelh@medozas.de Thu Mar 22 00:25:39 UTC 2012 - jengelh@medozas.de

15
xorg-x11-server.macros.in Normal file
View File

@ -0,0 +1,15 @@
# RPM macros for XOrg ABI Definitions
# Add a Requires for the correct VIDEO Driver ABI
%x11_abi_videodrv_req \
Requires: X11_ABI_VIDEODRV = @abi_videodrv@
%x11_abi_xinput_req \
Requires: X11_ABI_XINPUT = @abi_xinput@
%x11_abi_ansic_req \
Requires: X11_ABI_ANSIC = @abi_ansic@
%x11_abi_extension_req \
Requires: X11_ABI_EXTENSION = @abi_extension@

View File

@ -18,8 +18,30 @@
Name: xorg-x11-server Name: xorg-x11-server
%define dirsuffix 1.10.4 %define dirsuffix 1.12.1
%define vnc 1 %define vnc 1
License: GPL-2.0+ ; MIT
Summary: X
Group: System/X11/Servers/XF86_4
Source0: xorg-server-%{dirsuffix}.tar.bz2
Source1: sysconfig.displaymanager.template
Source3: README.updates
Source4: xorgcfg.tar.bz2
Source5: modprobe.nvidia
Source8: xorg-backtrace
# RPM Macros to be installed. The ABI Versions will be injected by configure.
Source96: xorg-x11-server.macros.in
# Source98 and Source99 are used to ensure proper ABI provides.
Source98: xorg-server-provides
Source99: pre_checkin.sh
# PATCH-FEATURE-OPENSUSE xorg-x11-server-rpmmacros.patch dimstar@opensuse.org -- Provide RPM macros to require correct ABI Versions.
Patch0: xorg-x11-server-rpmmacros.patch
# PATCH-MISSING-TAG -- See http://wiki.opensuse.org/openSUSE:Packaging_Patches_guidelines
Patch2: p_default-module-path.diff
# PATCH-MISSING-TAG -- See http://wiki.opensuse.org/openSUSE:Packaging_Patches_guidelines
Patch6: pu_fixes.diff
# PATCH-MISSING-TAG -- See http://wiki.opensuse.org/openSUSE:Packaging_Patches_guidelines
Patch16: p_xnest-ignore-getimage-errors.diff
BuildRequires: Mesa-devel BuildRequires: Mesa-devel
BuildRequires: bison BuildRequires: bison
BuildRequires: flex BuildRequires: flex
@ -70,129 +92,158 @@ BuildRequires: pkgconfig(xtrans) >= 1.2.2
BuildRequires: pkgconfig(xtst) >= 1.0.99.2 BuildRequires: pkgconfig(xtst) >= 1.0.99.2
BuildRequires: pkgconfig(xv) BuildRequires: pkgconfig(xv)
### udev support (broken on openSUSE 11.2, see also bnc #589997) ### udev support (broken on openSUSE 11.2, see also bnc #589997)
%if %suse_version >= 1130 %if 0%{?suse_version} >= 1130
BuildRequires: pkgconfig(libudev) >= 143 BuildRequires: pkgconfig(libudev) >= 143
%endif %endif
%if %vnc %if %vnc
BuildRequires: libjpeg-devel BuildRequires: libjpeg-devel
BuildRequires: pkgconfig(vncproto) BuildRequires: pkgconfig(vncproto)
%endif %endif
Url: http://xorg.freedesktop.org/
Version: 7.6_%{dirsuffix} Version: 7.6_%{dirsuffix}
Release: 0 Release: 0
Url: http://xorg.freedesktop.org/
BuildRoot: %{_tmppath}/%{name}-%{version}-build BuildRoot: %{_tmppath}/%{name}-%{version}-build
%ifnarch s390 s390x %ifnarch s390 s390x
PreReq: %fillup_prereq Requires(pre): %fillup_prereq
%endif %endif
Requires: pkgconfig xorg-x11-fonts-core xorg-x11 Requires: pkgconfig
Requires: xorg-x11
Requires: xorg-x11-fonts-core
%ifnarch s390 s390x %ifnarch s390 s390x
Provides: VIDEO_ABI_VERSION = 10
Provides: INPUT_ABI_VERSION = 12
Requires: libpixman-1-0 >= 0.15.2 Requires: libpixman-1-0 >= 0.15.2
%(cat %{SOURCE98})
%endif %endif
Provides: xorg-x11-server-glx xorg-x11-Xvfb Provides: xorg-x11-Xvfb
Obsoletes: xorg-x11-server-glx xorg-x11-Xvfb Provides: xorg-x11-server-glx
Summary: X.Org Server Obsoletes: xorg-x11-Xvfb
License: GPL-2.0+ ; MIT Obsoletes: xorg-x11-server-glx
Group: System/X11/Servers/XF86_4
Source: xorg-server-%{dirsuffix}.tar.bz2
Source1: sysconfig.displaymanager.template
Source3: README.updates
Source4: xorgcfg.tar.bz2
Source5: modprobe.nvidia
Source7: xorg-docs-1.6.tar.bz2
Source8: xorg-backtrace
Patch2: p_default-module-path.diff
Patch6: pu_fixes.diff
Patch13: u_OS-acpi-Reconnect-to-acpid-when-it-gets-restarted.patch
Patch16: p_xnest-ignore-getimage-errors.diff
%if %vnc %if %vnc
# PATCH-MISSING-TAG -- See http://wiki.opensuse.org/openSUSE:Packaging_Patches_guidelines
Patch17: N-VNC-Add-support-for-VNC.patch Patch17: N-VNC-Add-support-for-VNC.patch
# PATCH-MISSING-TAG -- See http://wiki.opensuse.org/openSUSE:Packaging_Patches_guidelines
Patch18: N-VNC-Readd-timeout-when-vnc-viewer-connection-breaks.patch Patch18: N-VNC-Readd-timeout-when-vnc-viewer-connection-breaks.patch
# PATCH-MISSING-TAG -- See http://wiki.opensuse.org/openSUSE:Packaging_Patches_guidelines
Patch19: N-VNC-Fix-crash-when-no-depth-translation-is-required.patch Patch19: N-VNC-Fix-crash-when-no-depth-translation-is-required.patch
# PATCH-MISSING-TAG -- See http://wiki.opensuse.org/openSUSE:Packaging_Patches_guidelines
Patch20: N-VNC-Don-t-let-VNC-access-the-framebuffer-directly-an.patch Patch20: N-VNC-Don-t-let-VNC-access-the-framebuffer-directly-an.patch
# PATCH-MISSING-TAG -- See http://wiki.opensuse.org/openSUSE:Packaging_Patches_guidelines
Patch21: N-VNC-Enable-use-of-all-keyboard-layouts-independent-o.patch Patch21: N-VNC-Enable-use-of-all-keyboard-layouts-independent-o.patch
# PATCH-MISSING-TAG -- See http://wiki.opensuse.org/openSUSE:Packaging_Patches_guidelines
Patch22: N-VNC-Fix-crash-due-to-unset-input-device-names.patch Patch22: N-VNC-Fix-crash-due-to-unset-input-device-names.patch
# PATCH-MISSING-TAG -- See http://wiki.opensuse.org/openSUSE:Packaging_Patches_guidelines
Patch23: Xvnc-pthread.diff Patch23: Xvnc-pthread.diff
Patch24: N-VNC-Add-proto.diff
%endif %endif
# PATCH-MISSING-TAG -- See http://wiki.opensuse.org/openSUSE:Packaging_Patches_guidelines
Patch45: bug-197858_dpms.diff Patch45: bug-197858_dpms.diff
# PATCH-MISSING-TAG -- See http://wiki.opensuse.org/openSUSE:Packaging_Patches_guidelines
Patch77: fbdevhw.diff Patch77: fbdevhw.diff
# PATCH-MISSING-TAG -- See http://wiki.opensuse.org/openSUSE:Packaging_Patches_guidelines
Patch79: edid_data_sanity_check.diff Patch79: edid_data_sanity_check.diff
# PATCH-MISSING-TAG -- See http://wiki.opensuse.org/openSUSE:Packaging_Patches_guidelines
Patch101: zap_warning_xserver.diff Patch101: zap_warning_xserver.diff
# PATCH-NEEDS-REBASE
Patch103: confine_to_shape.diff Patch103: confine_to_shape.diff
# PATCH-MISSING-TAG -- See http://wiki.opensuse.org/openSUSE:Packaging_Patches_guidelines
Patch106: randr1_1-sig11.diff Patch106: randr1_1-sig11.diff
# PATCH-MISSING-TAG -- See http://wiki.opensuse.org/openSUSE:Packaging_Patches_guidelines
Patch112: fix-dpi-values.diff Patch112: fix-dpi-values.diff
# PATCH-MISSING-TAG -- See http://wiki.opensuse.org/openSUSE:Packaging_Patches_guidelines
Patch123: vidmode-sig11.diff Patch123: vidmode-sig11.diff
# PATCH-MISSING-TAG -- See http://wiki.opensuse.org/openSUSE:Packaging_Patches_guidelines
Patch125: 0001-Xinput-Catch-missing-configlayout-when-deleting-dev.patch Patch125: 0001-Xinput-Catch-missing-configlayout-when-deleting-dev.patch
# PATCH-MISSING-TAG -- See http://wiki.opensuse.org/openSUSE:Packaging_Patches_guidelines
Patch127: dpms_screensaver.diff Patch127: dpms_screensaver.diff
# PATCH-NEEDS-REBASE (might not be applicable at all anymore)
Patch128: pci-legacy-mem-fallback.diff Patch128: pci-legacy-mem-fallback.diff
# PATCH-NEEDS-REBASE (might not be applicable at all anymore)
Patch129: bug474071-fix1.diff Patch129: bug474071-fix1.diff
# PATCH-MISSING-TAG -- See http://wiki.opensuse.org/openSUSE:Packaging_Patches_guidelines
Patch143: autoconfig_fallback_fbdev_first.diff Patch143: autoconfig_fallback_fbdev_first.diff
# PATCH-MISSING-TAG -- See http://wiki.opensuse.org/openSUSE:Packaging_Patches_guidelines
Patch145: driver-autoconfig.diff Patch145: driver-autoconfig.diff
# PATCH-MISSING-TAG -- See http://wiki.opensuse.org/openSUSE:Packaging_Patches_guidelines
Patch162: cache-xkbcomp-output-for-fast-start-up.patch Patch162: cache-xkbcomp-output-for-fast-start-up.patch
# PATCH-MISSING-TAG -- See http://wiki.opensuse.org/openSUSE:Packaging_Patches_guidelines
Patch163: xserver-bg-none-root.patch Patch163: xserver-bg-none-root.patch
# PATCH-MISSING-TAG -- See http://wiki.opensuse.org/openSUSE:Packaging_Patches_guidelines
Patch164: xorg-detect-psb.patch Patch164: xorg-detect-psb.patch
# PATCH-MISSING-TAG -- See http://wiki.opensuse.org/openSUSE:Packaging_Patches_guidelines
Patch200: bug534768-prefer_local_symbols.patch Patch200: bug534768-prefer_local_symbols.patch
# PATCH-MISSING-TAG -- See http://wiki.opensuse.org/openSUSE:Packaging_Patches_guidelines
Patch202: 0001-Check-harder-for-primary-PCI-device.patch Patch202: 0001-Check-harder-for-primary-PCI-device.patch
# PATCH-MISSING-TAG -- See http://wiki.opensuse.org/openSUSE:Packaging_Patches_guidelines
Patch203: 0001-Fix-segfault-when-killing-X-with-ctrl-alt-backspace.patch Patch203: 0001-Fix-segfault-when-killing-X-with-ctrl-alt-backspace.patch
# PATCH-MISSING-TAG -- See http://wiki.opensuse.org/openSUSE:Packaging_Patches_guidelines
Patch206: fix_fglrx_screendepth_issue.patch Patch206: fix_fglrx_screendepth_issue.patch
# PATCH-NEEDS-REBASE (might not be applicable at all anymore)
Patch210: pio_ia64.diff Patch210: pio_ia64.diff
# PATCH-MISSING-TAG -- See http://wiki.opensuse.org/openSUSE:Packaging_Patches_guidelines
Patch211: 0001-Prevent-XSync-Alarms-from-senslessly-calling-CheckTr.patch Patch211: 0001-Prevent-XSync-Alarms-from-senslessly-calling-CheckTr.patch
# PATCH-MISSING-TAG -- See http://wiki.opensuse.org/openSUSE:Packaging_Patches_guidelines
Patch213: xorg-server-xdmcp.patch Patch213: xorg-server-xdmcp.patch
# PATCH-MISSING-TAG -- See http://wiki.opensuse.org/openSUSE:Packaging_Patches_guidelines
Patch220: Use-external-tool-for-creating-backtraces-on-crashes.patch Patch220: Use-external-tool-for-creating-backtraces-on-crashes.patch
# PATCH-MISSING-TAG -- See http://wiki.opensuse.org/openSUSE:Packaging_Patches_guidelines
Patch222: sync-fix.patch Patch222: sync-fix.patch
Patch223: U_Don-t-call-deleted-Block-WakeupHandler.patch
Patch224: u_record-fix-sig11.patch
Patch225: U_dix-send-focus-events-to-the-immediate-parent-44079.patch
Patch226: U_dix-on-PointerRootWin-send-a-FocusIn-to-the-sprite-w.patch
%description %description
This package contains the X.Org Server. This package contains the X.Org Server.
%package extra %package extra
Summary: Additional Xservers (Xdmx, Xephyr, Xnest) Summary: Additional Xservers (Xdmx, Xephyr, Xnest)
Group: System/X11/Servers/XF86_4 Group: System/X11/Servers/XF86_4
Requires: Mesa
Requires: xkeyboard-config
Requires: xorg-x11
Requires: xorg-x11-fonts-core
Provides: xorg-x11-Xnest Provides: xorg-x11-Xnest
Obsoletes: xorg-x11-Xnest Obsoletes: xorg-x11-Xnest
Requires: xorg-x11-fonts-core xorg-x11 Mesa
Requires: xkeyboard-config
%description extra %description extra
This package contains additional Xservers (Xdmx, Xephyr, Xnest). This package contains additional Xservers (Xdmx, Xephyr, Xnest).
%package sdk %package sdk
Summary: X.Org Server SDK Summary: X
Group: System/Libraries Group: System/Libraries
Requires: xorg-x11-proto-devel
Requires: xorg-x11-server
Requires: pkgconfig(fontconfig)
Requires: pkgconfig(fontenc)
Requires: pkgconfig(freetype2)
Requires: pkgconfig(ice)
Requires: pkgconfig(libdrm)
Requires: pkgconfig(sm)
Requires: pkgconfig(x11)
Requires: pkgconfig(xau)
Requires: pkgconfig(xdmcp)
Requires: pkgconfig(xext)
Requires: pkgconfig(xfixes)
Requires: pkgconfig(xkbfile)
Requires: pkgconfig(xmu)
Requires: pkgconfig(xp)
Requires: pkgconfig(xpm)
Requires: pkgconfig(xprintutil)
Requires: pkgconfig(xrender)
Requires: pkgconfig(xt)
Requires: pkgconfig(xtrans)
Requires: pkgconfig(xv)
Provides: xorg-x11-sdk Provides: xorg-x11-sdk
Obsoletes: xorg-x11-sdk Obsoletes: xorg-x11-sdk
Requires: xorg-x11-proto-devel pkgconfig(xtrans)
Requires: pkgconfig(xau) pkgconfig(xdmcp)
Requires: pkgconfig(x11) pkgconfig(xext)
Requires: pkgconfig(xp) pkgconfig(xpm)
Requires: pkgconfig(xrender) pkgconfig(ice)
Requires: pkgconfig(sm) pkgconfig(xt)
Requires: pkgconfig(xmu) pkgconfig(xfixes)
Requires: pkgconfig(xkbfile) pkgconfig(fontenc)
Requires: pkgconfig(xv) pkgconfig(xprintutil)
Requires: pkgconfig(freetype2) pkgconfig(fontconfig)
Requires: pkgconfig(libdrm) xorg-x11-server
%description sdk %description sdk
This package contains the X.Org Server SDK. This package contains the X.Org Server SDK.
%if %vnc %if %vnc
%package -n xorg-x11-Xvnc %package -n xorg-x11-Xvnc
Summary: VNC Server for the X Window System Summary: VNC Server for the X Window System
Group: System/X11/Servers/XF86_4 Group: System/X11/Servers/XF86_4
Requires: xorg-x11-fonts-core xorg-x11 xkeyboard-config Requires: xkeyboard-config
Provides: vnc:/usr/X11R6/bin/Xvnc XFree86-Xvnc Requires: xorg-x11
Requires: xorg-x11-fonts-core
Provides: XFree86-Xvnc
Provides: vnc:/usr/X11R6/bin/Xvnc
Obsoletes: XFree86-Xvnc Obsoletes: XFree86-Xvnc
%ifarch ia64 %ifarch ia64
Provides: vnc-x86 Provides: vnc-x86
@ -202,16 +253,17 @@ Obsoletes: vnc-x86
%description -n xorg-x11-Xvnc %description -n xorg-x11-Xvnc
An X Window System server for Virtual Network Computing (VNC). An X Window System server for Virtual Network Computing (VNC).
%endif %endif
%prep %prep
%setup -q -n xorg-server-%{dirsuffix} -a4 -a7 %setup -q -n xorg-server-%{dirsuffix} -a4
# Early verification if the ABI Defines are correct. Let's not waste build cycles if the Provides are wrong at the end.
sh %{SOURCE99} --verify . %{SOURCE98}
cp %{SOURCE96} .
%patch0 -p1
%patch2 %patch2
%patch6 %patch6
%patch13 -p1 %patch16 -p1
%patch16 -p2
%if %vnc %if %vnc
%patch17 -p1 %patch17 -p1
%patch18 -p1 %patch18 -p1
@ -220,10 +272,9 @@ An X Window System server for Virtual Network Computing (VNC).
%patch21 -p1 %patch21 -p1
%patch22 -p1 %patch22 -p1
%patch23 -p1 %patch23 -p1
%patch24 -p1
%endif %endif
%patch45 -p0 %patch45 -p0
pushd xorg-docs-*
popd
%patch77 %patch77
%patch79 -p1 %patch79 -p1
%patch101 -p1 %patch101 -p1
@ -234,10 +285,10 @@ popd
### disabled for now ### disabled for now
#%patch125 -p1 #%patch125 -p1
%patch127 -p1 %patch127 -p1
%patch128 # NEeds rebase
pushd hw/xfree86/os-support/bus #%patch128
%patch129 -p0 # Needs rebase
popd #%patch129 -p0
%patch143 -p0 %patch143 -p0
%patch145 -p0 %patch145 -p0
### disabled for now ### disabled for now
@ -249,26 +300,18 @@ popd
%patch202 -p1 %patch202 -p1
%patch203 -p1 %patch203 -p1
%patch206 -p0 %patch206 -p0
%patch210 -p1 # Needs Rebase
#%patch210 -p1
### disabled for now ### disabled for now
#%patch211 -p1 #%patch211 -p1
%patch213 -p1 %patch213 -p1
# Disable backtrace generation patch for now ### Disable backtrace generation patch for now
#%patch220 -p1 #%patch220 -p1
%patch222 -p1 %patch222 -p1
%patch223 -p2
%patch224 -p1
%patch225 -p1
%patch226 -p1
%build %build
pushd xorg-docs-*
autoreconf -fi autoreconf -fi
%configure CFLAGS="$RPM_OPT_FLAGS -fno-strict-aliasing" %configure CFLAGS="%{optflags} -fno-strict-aliasing" \
make %{?_smp_mflags}
popd
autoreconf -fi
%configure CFLAGS="$RPM_OPT_FLAGS -fno-strict-aliasing" \
--sysconfdir=/etc \ --sysconfdir=/etc \
--enable-builddocs \ --enable-builddocs \
--enable-install-libxf86config \ --enable-install-libxf86config \
@ -291,7 +334,7 @@ autoreconf -fi
--disable-aiglx \ --disable-aiglx \
%else %else
--enable-xorg \ --enable-xorg \
%if %suse_version > 1120 %if 0%{?suse_version} > 1120
--enable-config-udev \ --enable-config-udev \
%endif %endif
%endif %endif
@ -314,64 +357,64 @@ make %{?_smp_mflags}
make -C hw/kdrive %{?_smp_mflags} make -C hw/kdrive %{?_smp_mflags}
%install %install
make -C xorg-docs-* install DESTDIR=$RPM_BUILD_ROOT %make_install
make install DESTDIR=$RPM_BUILD_ROOT make -C hw/kdrive install DESTDIR=%{buildroot}
make -C hw/kdrive install DESTDIR=$RPM_BUILD_ROOT
%ifnarch s390 s390x %ifnarch s390 s390x
# remove .la files # remove .la files
find $RPM_BUILD_ROOT/usr/%{_lib}/xorg/modules/ -name "*.la" | \ find %{buildroot}%{_libdir}/xorg/modules/ -name "*.la" | \
xargs rm xargs rm
install -m 644 hw/xfree86/parser/{xf86Parser.h,xf86Optrec.h} \ install -m 644 hw/xfree86/parser/{xf86Parser.h,xf86Optrec.h} \
$RPM_BUILD_ROOT/usr/include/xorg %{buildroot}%{_includedir}/xorg
# bnc #632737 # bnc #632737
chmod u-s $RPM_BUILD_ROOT/usr/bin/Xorg chmod u-s %{buildroot}%{_bindir}/Xorg
mkdir -p $RPM_BUILD_ROOT/var/lib/X11 mkdir -p %{buildroot}%{_localstatedir}/lib/X11
ln -snf ../../../usr/bin/Xorg $RPM_BUILD_ROOT/var/lib/X11/X ln -snf ../../../usr/bin/Xorg %{buildroot}%{_localstatedir}/lib/X11/X
ln -snf ../../var/lib/X11/X $RPM_BUILD_ROOT/usr/bin/X ln -snf ../../var/lib/X11/X %{buildroot}%{_bindir}/X
%if %suse_version > 1120 %if 0%{?suse_version} > 1120
%ifnarch s390 s390x %ifnarch s390 s390x
mkdir -p $RPM_BUILD_ROOT/etc/X11/xorg.conf.d mkdir -p %{buildroot}%{_sysconfdir}/X11/xorg.conf.d
cp $RPM_BUILD_ROOT/%{_datadir}/X11/xorg.conf.d/10-evdev.conf $RPM_BUILD_ROOT/etc/X11/xorg.conf.d/ cp %{buildroot}/%{_datadir}/X11/xorg.conf.d/10-evdev.conf %{buildroot}%{_sysconfdir}/X11/xorg.conf.d/
%endif %endif
%endif %endif
mkdir -p $RPM_BUILD_ROOT/usr/%{_lib}/xorg/modules/updates/{fonts,input,linux,drivers,multimedia,extensions} mkdir -p %{buildroot}%{_libdir}/xorg/modules/updates/{fonts,input,linux,drivers,multimedia,extensions}
install -m 644 $RPM_SOURCE_DIR/README.updates $RPM_BUILD_ROOT/usr/%{_lib}/xorg/modules/updates install -m 644 $RPM_SOURCE_DIR/README.updates %{buildroot}%{_libdir}/xorg/modules/updates
mkdir -p $RPM_BUILD_ROOT/etc/modprobe.d mkdir -p %{buildroot}%{_sysconfdir}/modprobe.d
install -m 644 $RPM_SOURCE_DIR/modprobe.nvidia $RPM_BUILD_ROOT/etc/modprobe.d/50-nvidia.conf install -m 644 $RPM_SOURCE_DIR/modprobe.nvidia %{buildroot}%{_sysconfdir}/modprobe.d/50-nvidia.conf
%else %else
rm -f $RPM_BUILD_ROOT/usr/share/aclocal/*.m4 rm -f %{buildroot}%{_datadir}/aclocal/*.m4
%endif %endif
%if %vnc %if %vnc
mkdir -p $RPM_BUILD_ROOT/etc/sysconfig/SuSEfirewall2.d/services mkdir -p %{buildroot}%{_sysconfdir}/sysconfig/SuSEfirewall2.d/services
cat > $RPM_BUILD_ROOT/etc/sysconfig/SuSEfirewall2.d/services/%{name} << EOF cat > %{buildroot}%{_sysconfdir}/sysconfig/SuSEfirewall2.d/services/%{name} << EOF
## Name: VNC Server ## Name: VNC Server
## Description: Opens ports for VNC Server ## Description: Opens ports for VNC Server
TCP="5801 5901" TCP="5801 5901"
EOF EOF
%endif %endif
%ifarch s390 s390x %ifarch s390 s390x
rm -f $RPM_BUILD_ROOT/etc/X11/10-evdev.conf rm -f %{buildroot}%{_sysconfdir}/X11/10-evdev.conf
make -C hw/xfree86/parser make -C hw/xfree86/parser
mkdir -p $RPM_BUILD_ROOT/usr/include/xorg \ mkdir -p %{buildroot}%{_includedir}/xorg \
$RPM_BUILD_ROOT/usr/%{_lib} %{buildroot}%{_libdir}
install -m 644 hw/xfree86/parser/{xf86Parser.h,xf86Optrec.h} \ install -m 644 hw/xfree86/parser/{xf86Parser.h,xf86Optrec.h} \
$RPM_BUILD_ROOT/usr/include/xorg %{buildroot}%{_includedir}/xorg
install -m 644 include/list.h \ install -m 644 include/list.h \
$RPM_BUILD_ROOT/usr/include/xorg %{buildroot}%{_includedir}/xorg
if [ -f hw/xfree86/parser/.libs/libxf86config.a ] ; then if [ -f hw/xfree86/parser/.libs/libxf86config.a ] ; then
install -m 644 hw/xfree86/parser/.libs/libxf86config.a \ install -m 644 hw/xfree86/parser/.libs/libxf86config.a \
$RPM_BUILD_ROOT//usr/%{_lib} %{buildroot}//usr/%{_lib}
else else
install -m 644 hw/xfree86/parser/libxf86config.a \ install -m 644 hw/xfree86/parser/libxf86config.a \
$RPM_BUILD_ROOT//usr/%{_lib} %{buildroot}//usr/%{_lib}
fi fi
%endif %endif
%ifnarch s390 s390x %ifnarch s390 s390x
mkdir -p %buildroot/var/adm/fillup-templates mkdir -p %{buildroot}%{_localstatedir}/adm/fillup-templates
install -m 644 %_sourcedir/sysconfig.displaymanager.template \ install -m 644 %_sourcedir/sysconfig.displaymanager.template \
%buildroot/var/adm/fillup-templates/sysconfig.displaymanager-%name %{buildroot}%{_localstatedir}/adm/fillup-templates/sysconfig.displaymanager-%{name}
%endif %endif
install -m 755 $RPM_SOURCE_DIR/xorg-backtrace $RPM_BUILD_ROOT/usr/bin/xorg-backtrace install -m 755 $RPM_SOURCE_DIR/xorg-backtrace %{buildroot}%{_bindir}/xorg-backtrace
install -D xorg-x11-server.macros %{buildroot}%{_sysconfdir}/rpm/macros.xorg-server
%ifnarch s390 s390x %ifnarch s390 s390x
%verifyscript %verifyscript
@ -406,80 +449,75 @@ exit 0
%files %files
%defattr(-,root,root) %defattr(-,root,root)
%ifnarch s390 s390x %ifnarch s390 s390x
%if %suse_version > 1120 %if 0%{?suse_version} > 1120
%dir /etc/X11/xorg.conf.d %dir %{_sysconfdir}/X11/xorg.conf.d
%config(noreplace) /etc/X11/xorg.conf.d/10-evdev.conf %config(noreplace) %{_sysconfdir}/X11/xorg.conf.d/10-evdev.conf
%dir %{_datadir}/X11/xorg.conf.d %dir %{_datadir}/X11/xorg.conf.d
%{_datadir}/X11/xorg.conf.d/10-evdev.conf %{_datadir}/X11/xorg.conf.d/10-evdev.conf
%endif %endif
%dir /etc/modprobe.d %dir %{_sysconfdir}/modprobe.d
%dir /var/lib/X11 %dir %{_localstatedir}/lib/X11
%endif %endif
%dir /var/lib/xkb %dir %{_localstatedir}/lib/xkb
%dir /var/lib/xkb/compiled %dir %{_localstatedir}/lib/xkb/compiled
%dir /usr/%{_lib}/xorg %dir %{_libdir}/xorg
/usr/%{_lib}/xorg/protocol.txt %{_libdir}/xorg/protocol.txt
%{_mandir}/man1/* %{_mandir}/man1/*
%{_mandir}/man7/*
%doc %{_datadir}/doc/xorg-docs/
%exclude %{_mandir}/man1/Xdmx.1* %exclude %{_mandir}/man1/Xdmx.1*
%exclude %{_mandir}/man1/Xephyr.1* %exclude %{_mandir}/man1/Xephyr.1*
%exclude %{_mandir}/man1/Xnest.1* %exclude %{_mandir}/man1/Xnest.1*
%exclude %{_mandir}/man7/Standards.7* %{_localstatedir}/lib/xkb/compiled/README.compiled
%exclude %{_mandir}/man7/Consortium.7*
%exclude %{_mandir}/man7/XProjectTeam.7*
%exclude %{_mandir}/man7/XOrgFoundation.7*
/var/lib/xkb/compiled/README.compiled
%ifnarch s390 s390x %ifnarch s390 s390x
/etc/modprobe.d/50-nvidia.conf %{_sysconfdir}/modprobe.d/50-nvidia.conf
%verify(not mode) /usr/bin/Xorg %verify(not mode) %{_bindir}/Xorg
/usr/bin/X %{_bindir}/X
/usr/bin/cvt %{_bindir}/cvt
/usr/bin/gtf %{_bindir}/gtf
/usr/%{_lib}/xorg/modules/ %{_libdir}/xorg/modules/
%{_mandir}/man4/* %{_mandir}/man4/*
%{_mandir}/man5/* %{_mandir}/man5/*
/var/adm/fillup-templates/sysconfig.displaymanager-%name %{_localstatedir}/adm/fillup-templates/sysconfig.displaymanager-%{name}
/var/lib/X11/X %{_localstatedir}/lib/X11/X
%endif %endif
/usr/bin/Xvfb %{_bindir}/Xvfb
/usr/bin/xorg-backtrace %{_bindir}/xorg-backtrace
%files extra %files extra
%defattr(-,root,root) %defattr(-,root,root)
/usr/bin/Xephyr %{_bindir}/Xephyr
/usr/bin/Xnest %{_bindir}/Xnest
/usr/bin/Xdmx %{_bindir}/Xdmx
/usr/bin/dmxaddinput %{_bindir}/dmxaddinput
/usr/bin/dmxaddscreen %{_bindir}/dmxaddscreen
/usr/bin/dmxinfo %{_bindir}/dmxinfo
/usr/bin/dmxreconfig %{_bindir}/dmxreconfig
/usr/bin/dmxresize %{_bindir}/dmxresize
/usr/bin/dmxrminput %{_bindir}/dmxrminput
/usr/bin/dmxrmscreen %{_bindir}/dmxrmscreen
/usr/bin/dmxtodmx %{_bindir}/dmxtodmx
/usr/bin/dmxwininfo %{_bindir}/dmxwininfo
/usr/bin/vdltodmx %{_bindir}/vdltodmx
/usr/bin/xdmxconfig %{_bindir}/xdmxconfig
%{_mandir}/man1/Xdmx.1* %{_mandir}/man1/Xdmx.1*
%{_mandir}/man1/Xephyr.1* %{_mandir}/man1/Xephyr.1*
%{_mandir}/man1/Xnest.1* %{_mandir}/man1/Xnest.1*
%files sdk %files sdk
%defattr(-,root,root) %defattr(-,root,root)
/usr/include/xorg/ %{_includedir}/xorg/
/usr/%{_lib}/*.a %{_libdir}/*.a
%ifnarch s390 s390x %ifnarch s390 s390x
%exclude /usr/%{_lib}/libxf86config.la %exclude %{_libdir}/libxf86config.la
/usr/%{_lib}/pkgconfig/*.pc %{_libdir}/pkgconfig/*.pc
/usr/share/aclocal/*.m4 %{_datadir}/aclocal/*.m4
%endif %endif
%{_sysconfdir}/rpm/macros.xorg-server
%if %vnc %if %vnc
%files -n xorg-x11-Xvnc %files -n xorg-x11-Xvnc
%defattr(-, root, root) %defattr(-, root, root)
/etc/sysconfig/SuSEfirewall2.d/services/%{name} %{_sysconfdir}/sysconfig/SuSEfirewall2.d/services/%{name}
/usr/bin/Xvnc %{_bindir}/Xvnc
%endif %endif
%changelog %changelog

View File

@ -1,8 +1,8 @@
Index: xorg-server-1.6.3.901/hw/xfree86/common/xf86Config.c Index: xorg-server-1.12.1/hw/xfree86/common/xf86Config.c
================================================================================ ===================================================================
--- xorg-server-1.7.99/hw/xfree86/common/xf86Config.c --- xorg-server-1.12.1.orig/hw/xfree86/common/xf86Config.c
+++ xorg-server-1.7.99/hw/xfree86/common/xf86Config.c +++ xorg-server-1.12.1/hw/xfree86/common/xf86Config.c
@@ -696,6 +696,7 @@ @@ -685,6 +685,7 @@ typedef enum {
FLAG_NOTRAPSIGNALS, FLAG_NOTRAPSIGNALS,
FLAG_DONTVTSWITCH, FLAG_DONTVTSWITCH,
FLAG_DONTZAP, FLAG_DONTZAP,
@ -10,16 +10,16 @@ Index: xorg-server-1.6.3.901/hw/xfree86/common/xf86Config.c
FLAG_DONTZOOM, FLAG_DONTZOOM,
FLAG_DISABLEVIDMODE, FLAG_DISABLEVIDMODE,
FLAG_ALLOWNONLOCAL, FLAG_ALLOWNONLOCAL,
@@ -734,6 +735,8 @@ @@ -721,6 +722,8 @@ static OptionInfoRec FlagOptions[] = {
{0}, FALSE }, {0}, FALSE},
{ FLAG_DONTZAP, "DontZap", OPTV_BOOLEAN, {FLAG_DONTZAP, "DontZap", OPTV_BOOLEAN,
{0}, FALSE }, {0}, FALSE},
+ { FLAG_ZAPWARNING, "ZapWarning", OPTV_BOOLEAN, + { FLAG_ZAPWARNING, "ZapWarning", OPTV_BOOLEAN,
+ {0}, FALSE }, + {0}, FALSE },
{ FLAG_DONTZOOM, "DontZoom", OPTV_BOOLEAN, {FLAG_DONTZOOM, "DontZoom", OPTV_BOOLEAN,
{0}, FALSE }, {0}, FALSE},
{ FLAG_DISABLEVIDMODE, "DisableVidModeExtension", OPTV_BOOLEAN, {FLAG_DISABLEVIDMODE, "DisableVidModeExtension", OPTV_BOOLEAN,
@@ -840,6 +843,7 @@ @@ -807,6 +810,7 @@ configServerFlags(XF86ConfFlagsPtr flags
xf86GetOptValBool(FlagOptions, FLAG_NOTRAPSIGNALS, &xf86Info.notrapSignals); xf86GetOptValBool(FlagOptions, FLAG_NOTRAPSIGNALS, &xf86Info.notrapSignals);
xf86GetOptValBool(FlagOptions, FLAG_DONTVTSWITCH, &xf86Info.dontVTSwitch); xf86GetOptValBool(FlagOptions, FLAG_DONTVTSWITCH, &xf86Info.dontVTSwitch);
xf86GetOptValBool(FlagOptions, FLAG_DONTZAP, &xf86Info.dontZap); xf86GetOptValBool(FlagOptions, FLAG_DONTZAP, &xf86Info.dontZap);
@ -27,83 +27,61 @@ Index: xorg-server-1.6.3.901/hw/xfree86/common/xf86Config.c
xf86GetOptValBool(FlagOptions, FLAG_DONTZOOM, &xf86Info.dontZoom); xf86GetOptValBool(FlagOptions, FLAG_DONTZOOM, &xf86Info.dontZoom);
xf86GetOptValBool(FlagOptions, FLAG_IGNORE_ABI, &xf86Info.ignoreABI); xf86GetOptValBool(FlagOptions, FLAG_IGNORE_ABI, &xf86Info.ignoreABI);
--- xorg-server-1.7.99/hw/xfree86/common/xf86Events.c Index: xorg-server-1.12.1/hw/xfree86/common/xf86Events.c
+++ xorg-server-1.7.99/hw/xfree86/common/xf86Events.c ===================================================================
@@ -180,12 +180,26 @@ --- xorg-server-1.12.1.orig/hw/xfree86/common/xf86Events.c
+++ xorg-server-1.12.1/hw/xfree86/common/xf86Events.c
@@ -180,12 +180,25 @@ xf86ProcessActionEvent(ActionEvent actio
DebugF("ProcessActionEvent(%d,%x)\n", (int) action, arg); DebugF("ProcessActionEvent(%d,%x)\n", (int) action, arg);
switch (action) { switch (action) {
case ACTION_TERMINATE: case ACTION_TERMINATE:
- if (!xf86Info.dontZap) { - if (!xf86Info.dontZap) {
+ if (xf86Info.dontZap) + if (xf86Info.dontZap)
+ break; + break;
+ +
+ if (xf86Info.ZapWarning) { + if (xf86Info.ZapWarning) {
+ static struct timeval LastZap = { 0, 0}; + static struct timeval LastZap = { 0, 0};
+ struct timeval NewZap; + struct timeval NewZap;
+ +
+ gettimeofday(&NewZap, NULL); + gettimeofday(&NewZap, NULL);
+ +
+ if ((NewZap.tv_sec - LastZap.tv_sec) >= 2) { + if ((NewZap.tv_sec - LastZap.tv_sec) >= 2) {
+ xf86OSRingBell(30, 1000, 50); + xf86OSRingBell(30, 1000, 50);
+ LastZap = NewZap; + LastZap = NewZap;
+ break; + break;
+ } + }
+ } + }
+
#ifdef XFreeXDGA #ifdef XFreeXDGA
- DGAShutdown(); - DGAShutdown();
+ DGAShutdown(); + DGAShutdown();
#endif #endif
- GiveUp(0); - GiveUp(0);
- } - }
+ GiveUp(0); + GiveUp(0);
break; break;
case ACTION_NEXT_MODE: case ACTION_NEXT_MODE:
if (!xf86Info.dontZoom) if (!xf86Info.dontZoom)
--- xorg-server-1.7.99/hw/xfree86/common/xf86Globals.c Index: xorg-server-1.12.1/hw/xfree86/common/xf86Globals.c
+++ xorg-server-1.7.99/hw/xfree86/common/xf86Globals.c ===================================================================
@@ -109,6 +109,7 @@ --- xorg-server-1.12.1.orig/hw/xfree86/common/xf86Globals.c
#endif +++ xorg-server-1.12.1/hw/xfree86/common/xf86Globals.c
.dontVTSwitch = FALSE, @@ -104,6 +104,7 @@ xf86InfoRec xf86Info = {
.dontZap = FALSE, .autoVTSwitch = TRUE,
+ .ZapWarning = TRUE, .ShareVTs = FALSE,
.dontZoom = FALSE, .dontZap = FALSE,
.notrapSignals = FALSE, + .ZapWarning = TRUE,
.caughtSignal = FALSE, .dontZoom = FALSE,
--- xorg-server-1.7.99/hw/xfree86/common/xf86Privstr.h .notrapSignals = FALSE,
+++ xorg-server-1.7.99/hw/xfree86/common/xf86Privstr.h .caughtSignal = FALSE,
@@ -67,6 +67,7 @@ Index: xorg-server-1.12.1/hw/xfree86/common/xf86Privstr.h
#endif ===================================================================
Bool dontVTSwitch; --- xorg-server-1.12.1.orig/hw/xfree86/common/xf86Privstr.h
Bool dontZap; +++ xorg-server-1.12.1/hw/xfree86/common/xf86Privstr.h
+ Bool ZapWarning; @@ -68,6 +68,7 @@ typedef struct {
Bool dontZoom; Bool autoVTSwitch;
Bool notrapSignals; /* don't exit cleanly - die at fault */ Bool ShareVTs;
Bool caughtSignal; Bool dontZap;
--- xorg-server-1.7.99/hw/xfree86/doc/man/Xorg.man + Bool ZapWarning;
+++ xorg-server-1.7.99/hw/xfree86/doc/man/Xorg.man Bool dontZoom;
@@ -438,7 +438,7 @@ Bool notrapSignals; /* don't exit cleanly - die at fault */
.B Ctrl+Alt+Backspace Bool caughtSignal;
Immediately kills the server -- no questions asked. It can be disabled by
setting the
-.B DontZap
+.B DontZap/ZapWarning
__xconfigfile__(__filemansuffix__) file option to a TRUE value.
.PP
.RS 8
--- xorg-server-1.7.99/hw/xfree86/doc/man/xorg.conf.man
+++ xorg-server-1.7.99/hw/xfree86/doc/man/xorg.conf.man
@@ -507,6 +507,13 @@
When this option is enabled, the action has no effect.
Default: off.
.TP 7
+.BI "Option \*qZapWarning\*q \*q" boolean \*q
+This warns the user audibly when the
+.B Ctrl+Alt+Backspace
+sequence is pressed for the first time but still terminates the __xservername__
+server when this key-sequence is pressed again shortly after.
+Default: on.
+.TP 7
.BI "Option \*qDontZoom\*q \*q" boolean \*q
This disallows the use of the
.B Ctrl+Alt+Keypad\-Plus