forked from pool/xorg-x11-server
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:
parent
d1ef7933f6
commit
ebdc01ee77
@ -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;
|
||||||
}
|
+
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
@ -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
27
N-VNC-Add-proto.diff
Normal 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
@ -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
|
|
||||||
|
|
||||||
|
@ -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,
|
|
@ -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
|
|
||||||
|
|
@ -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
|
|
||||||
|
|
@ -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 */
|
||||||
|
@ -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);
|
||||||
|
|
||||||
|
@ -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);
|
||||||
|
@ -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
|
||||||
|
@ -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++) {
|
||||||
|
@ -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";
|
||||||
|
42
fbdevhw.diff
42
fbdevhw.diff
@ -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;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -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;
|
||||||
|
@ -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);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -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;
|
||||||
|
@ -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
57
pre_checkin.sh
Normal 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
|
||||||
|
|
@ -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--) {
|
||||||
|
@ -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;
|
||||||
|
@ -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)) ||
|
||||||
|
@ -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
|
|
||||||
|
|
@ -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...
|
|
@ -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;
|
||||||
|
|
||||||
|
@ -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:
|
||||||
|
@ -1,3 +0,0 @@
|
|||||||
version https://git-lfs.github.com/spec/v1
|
|
||||||
oid sha256:f6b21bc486ab10fdf2bf1dfdf08f0aba22a4b87542165eeb395d0a6202f19d32
|
|
||||||
size 345028
|
|
@ -1,3 +0,0 @@
|
|||||||
version https://git-lfs.github.com/spec/v1
|
|
||||||
oid sha256:fafc16b97b9a61b62dfaa74e8d336baa0cea752ce9ed8103c4d212baa8031ca5
|
|
||||||
size 5386174
|
|
3
xorg-server-1.12.1.tar.bz2
Normal file
3
xorg-server-1.12.1.tar.bz2
Normal file
@ -0,0 +1,3 @@
|
|||||||
|
version https://git-lfs.github.com/spec/v1
|
||||||
|
oid sha256:d21dc1dac767975cf9872984c78dd0bff928a74420fbcb415267c6bdbd41b45a
|
||||||
|
size 5349351
|
4
xorg-server-provides
Normal file
4
xorg-server-provides
Normal 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
|
@ -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)
|
||||||
|
10
xorg-x11-server-rpmmacros.patch
Normal file
10
xorg-x11-server-rpmmacros.patch
Normal 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
|
||||||
|
])
|
@ -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
15
xorg-x11-server.macros.in
Normal 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@
|
||||||
|
|
@ -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
|
||||||
|
@ -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
|
|
||||||
|
Loading…
Reference in New Issue
Block a user