forked from pool/xorg-x11-server
Accepting request 115487 from X11:XOrg
Pushing X11:XOrg OBS-URL: https://build.opensuse.org/request/show/115487 OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/xorg-x11-server?expand=0&rev=233
This commit is contained in:
commit
1e34b4563b
@ -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
|
||||
the presence of a BIOS rom.
|
||||
================================================================================
|
||||
--- xorg-server-1.7.99/hw/xfree86/common/xf86pciBus.c
|
||||
+++ xorg-server-1.7.99/hw/xfree86/common/xf86pciBus.c
|
||||
@@ -140,9 +140,49 @@
|
||||
primaryBus.type = BUS_PCI;
|
||||
primaryBus.id.pci = info;
|
||||
} else {
|
||||
- xf86Msg(X_NOTICE,
|
||||
- "More than one possible primary device found\n");
|
||||
- primaryBus.type ^= (BusType)(-1);
|
||||
+ /*
|
||||
+ * Ok, we found more than one possible primary device with this heuristic
|
||||
+ * Now also check if IO is enabled.
|
||||
+ */
|
||||
Index: xorg-server-1.12.1/hw/xfree86/common/xf86pciBus.c
|
||||
===================================================================
|
||||
--- xorg-server-1.12.1.orig/hw/xfree86/common/xf86pciBus.c
|
||||
+++ xorg-server-1.12.1/hw/xfree86/common/xf86pciBus.c
|
||||
@@ -134,9 +134,50 @@ xf86PciProbe(void)
|
||||
primaryBus.id.pci = info;
|
||||
}
|
||||
else {
|
||||
- xf86Msg(X_NOTICE,
|
||||
- "More than one possible primary device found\n");
|
||||
- primaryBus.type ^= (BusType) (-1);
|
||||
+ /*
|
||||
+ * Ok, we found more than one possible primary device with this heuristic
|
||||
+ * Now also check if IO is enabled.
|
||||
+ */
|
||||
+ int j;
|
||||
+
|
||||
+ 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))) {
|
||||
+ if (primaryBus.type == BUS_NONE) {
|
||||
+ 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.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))) {
|
||||
+ 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);
|
||||
+ } 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;
|
||||
+ } else {
|
||||
+ xf86Msg(X_NOTICE,
|
||||
+ "More than one possible primary device found\n");
|
||||
+ primaryBus.type ^= (BusType)(-1);
|
||||
+ 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
|
||||
+++ 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
|
||||
Index: xorg-server-1.12.1/mi/misprite.c
|
||||
===================================================================
|
||||
--- 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->StoreColors = pScreenPriv->StoreColors;
|
||||
|
||||
+ miSpriteDisableDamage(pScreen, pScreenPriv);
|
||||
DamageDestroy (pScreenPriv->pDamage);
|
||||
DamageDestroy(pScreenPriv->pDamage);
|
||||
|
||||
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).
|
||||
|
||||
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
|
||||
index f306022..b3b0e68 100644
|
||||
--- a/hw/vnc/kbdptr.c
|
||||
+++ b/hw/vnc/kbdptr.c
|
||||
Rebased to 1.12.1 by Mike Gorse <mgorse@suse.com>
|
||||
---
|
||||
diff -pruN xorg-server-1.12.1.orig/hw/vnc/kbdptr.c xorg-server-1.12.1/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 @@
|
||||
#include "X11/Xproto.h"
|
||||
#include "inputstr.h"
|
||||
@ -54,7 +51,7 @@ index f306022..b3b0e68 100644
|
||||
#if !XFREE86VNC
|
||||
|
||||
#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))
|
||||
|
||||
#endif
|
||||
@ -80,8 +77,8 @@ index f306022..b3b0e68 100644
|
||||
}
|
||||
|
||||
|
||||
@@ -280,6 +282,29 @@ EnqueueKey(DeviceIntPtr kbdDev, int type, int detail)
|
||||
mieqEnqueue(kbdDev, (InternalEvent*)(events + i)->event);
|
||||
@@ -263,6 +265,29 @@ EnqueueKey(DeviceIntPtr kbdDev, int type
|
||||
QueueKeyboardEvents(kbdDev, type, detail, NULL);
|
||||
}
|
||||
|
||||
+/* 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.
|
||||
* 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)
|
||||
{
|
||||
const int type = down ? KeyPress : KeyRelease;
|
||||
@ -154,7 +151,7 @@ index f306022..b3b0e68 100644
|
||||
|
||||
#ifdef CORBA
|
||||
if (cl) {
|
||||
@@ -320,6 +359,12 @@ KbdAddEvent(Bool down, KeySym keySym, rfbClientPtr cl)
|
||||
@@ -303,6 +342,12 @@ KbdAddEvent(Bool down, KeySym keySym, rf
|
||||
*
|
||||
* Alan.
|
||||
*/
|
||||
@ -167,7 +164,7 @@ index f306022..b3b0e68 100644
|
||||
#if !XFREE86VNC
|
||||
/* 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
|
||||
@@ -346,107 +391,227 @@ KbdAddEvent(Bool down, KeySym keySym, rfbClientPtr cl)
|
||||
@@ -329,107 +374,227 @@ KbdAddEvent(Bool down, KeySym keySym, rf
|
||||
}
|
||||
}
|
||||
#endif
|
||||
@ -183,16 +180,6 @@ index f306022..b3b0e68 100644
|
||||
- "less than 2 keysyms per keycode (KeySym 0x%x)\n", (int)keySym);
|
||||
- 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++) {
|
||||
+ /* Check all keycodes, but only continue on those where
|
||||
+ * backconversion results in keySym.
|
||||
@ -215,6 +202,16 @@ index f306022..b3b0e68 100644
|
||||
+ ErrorF ("\n");
|
||||
+#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)
|
||||
- shiftMustBeReleased = TRUE;
|
||||
- else
|
||||
@ -440,7 +437,7 @@ index f306022..b3b0e68 100644
|
||||
}
|
||||
}
|
||||
|
||||
@@ -497,15 +662,15 @@ KbdReleaseAllKeys(void)
|
||||
@@ -480,15 +645,15 @@ KbdReleaseAllKeys(void)
|
||||
{
|
||||
int i, j;
|
||||
|
||||
@ -460,15 +457,11 @@ index f306022..b3b0e68 100644
|
||||
}
|
||||
}
|
||||
}
|
||||
diff --git a/hw/vnc/keyboard.h b/hw/vnc/keyboard.h
|
||||
index d223b6b..beb948a 100644
|
||||
--- 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
|
||||
--- xorg-server-1.12.1.orig/hw/vnc/keyboard.h 2012-04-18 14:14:07.437250922 -0500
|
||||
+++ xorg-server-1.12.1/hw/vnc/keyboard.h 2012-04-18 14:15:27.657248035 -0500
|
||||
@@ -32,3 +32,4 @@
|
||||
#define META_R_KEY_CODE (MIN_KEY_CODE + 108)
|
||||
#define ALT_L_KEY_CODE (MIN_KEY_CODE + 56)
|
||||
#define ALT_R_KEY_CODE (MIN_KEY_CODE + 105)
|
||||
+#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
|
||||
================================================================================
|
||||
--- hw/xfree86/common/xf86AutoConfig.c
|
||||
===================================================================
|
||||
--- hw/xfree86/common/xf86AutoConfig.c.orig
|
||||
+++ hw/xfree86/common/xf86AutoConfig.c
|
||||
@@ -506,7 +506,7 @@
|
||||
@@ -264,7 +264,7 @@ listPossibleVideoDrivers(char *matches[]
|
||||
/* Fallback to platform default hardware */
|
||||
if (i < (nmatches - 1)) {
|
||||
#if defined(__i386__) || defined(__amd64__) || defined(__hurd__)
|
||||
- matches[i++] = xnfstrdup("vesa");
|
||||
+ matches[i++] = xnfstrdup("fbdev");
|
||||
- matches[i++] = xnfstrdup("vesa");
|
||||
+ matches[i++] = xnfstrdup("fbdev");
|
||||
#elif defined(__sparc__) && !defined(sun)
|
||||
matches[i++] = xnfstrdup("sunffb");
|
||||
matches[i++] = xnfstrdup("sunffb");
|
||||
#endif
|
||||
@@ -517,7 +517,7 @@
|
||||
@@ -276,7 +276,7 @@ listPossibleVideoDrivers(char *matches[]
|
||||
#if !defined(__linux__) && defined(__sparc__)
|
||||
matches[i++] = xnfstrdup("wsfb");
|
||||
matches[i++] = xnfstrdup("wsfb");
|
||||
#else
|
||||
- matches[i++] = xnfstrdup("fbdev");
|
||||
+ matches[i++] = xnfstrdup("vesa");
|
||||
- matches[i++] = xnfstrdup("fbdev");
|
||||
+ matches[i++] = xnfstrdup("vesa");
|
||||
#endif
|
||||
}
|
||||
}
|
||||
#endif /* !sun */
|
||||
|
@ -1,61 +1,62 @@
|
||||
Index: hw/xfree86/common/xf86Events.c
|
||||
================================================================================
|
||||
--- hw/xfree86/common/xf86Events.c
|
||||
===================================================================
|
||||
--- hw/xfree86/common/xf86Events.c.orig
|
||||
+++ hw/xfree86/common/xf86Events.c
|
||||
@@ -115,6 +115,7 @@
|
||||
InputHandlerProc ihproc;
|
||||
pointer data;
|
||||
Bool enabled;
|
||||
+ Bool is_input;
|
||||
struct x_IHRec * next;
|
||||
@@ -115,6 +115,7 @@ typedef struct x_IHRec {
|
||||
InputHandlerProc ihproc;
|
||||
pointer data;
|
||||
Bool enabled;
|
||||
+ Bool is_input;
|
||||
struct x_IHRec *next;
|
||||
} IHRec, *IHPtr;
|
||||
|
||||
@@ -449,8 +450,12 @@
|
||||
* Keep the order: Disable Device > LeaveVT
|
||||
* EnterVT > EnableDevice
|
||||
*/
|
||||
- for (ih = InputHandlers; ih; ih = ih->next)
|
||||
- xf86DisableInputHandler(ih);
|
||||
+ for (ih = InputHandlers; ih; ih = ih->next) {
|
||||
+ if (ih->is_input)
|
||||
+ xf86DisableInputHandler(ih);
|
||||
+ else
|
||||
+ xf86DisableGeneralHandler(ih);
|
||||
+ }
|
||||
for (pInfo = xf86InputDevs; pInfo; pInfo = pInfo->next) {
|
||||
if (pInfo->dev) {
|
||||
xf86ReleaseKeys(pInfo->dev);
|
||||
@@ -492,8 +497,12 @@
|
||||
EnableDevice(pInfo->dev, TRUE);
|
||||
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);
|
||||
+ }
|
||||
@@ -445,9 +446,13 @@ xf86VTSwitch(void)
|
||||
* Keep the order: Disable Device > LeaveVT
|
||||
* EnterVT > EnableDevice
|
||||
*/
|
||||
- for (ih = InputHandlers; ih; ih = ih->next)
|
||||
+ for (ih = InputHandlers; ih; ih = ih->next) {
|
||||
+ if (ih->is_input)
|
||||
xf86DisableInputHandler(ih);
|
||||
- for (pInfo = xf86InputDevs; pInfo; pInfo = pInfo->next) {
|
||||
+ else
|
||||
+ xf86DisableGeneralHandler(ih);
|
||||
+ }
|
||||
+ for (pInfo = xf86InputDevs; pInfo; pInfo = pInfo->next) {
|
||||
if (pInfo->dev) {
|
||||
xf86ReleaseKeys(pInfo->dev);
|
||||
ProcessInputEvents();
|
||||
@@ -486,8 +491,12 @@ xf86VTSwitch(void)
|
||||
EnableDevice(pInfo->dev, TRUE);
|
||||
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);
|
||||
xf86UnblockSIGIO(prevSIGIO);
|
||||
|
||||
@@ -549,8 +558,12 @@
|
||||
pInfo = pInfo->next;
|
||||
@@ -542,8 +551,12 @@ xf86VTSwitch(void)
|
||||
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);
|
||||
}
|
||||
|
||||
- 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 @@
|
||||
@@ -579,8 +592,10 @@ xf86AddInputHandler(int fd, InputHandler
|
||||
{
|
||||
IHPtr ih = addInputHandler(fd, proc, data);
|
||||
|
||||
|
@ -1,11 +1,13 @@
|
||||
Index: xorg-server-1.6.3.901/hw/xfree86/loader/dlloader.c
|
||||
================================================================================
|
||||
--- xorg-server-1.7.99/hw/xfree86/loader/loader.c
|
||||
+++ xorg-server-1.7.99/hw/xfree86/loader/loader.c
|
||||
@@ -120,5 +120,5 @@
|
||||
Index: xorg-server-1.12.1/hw/xfree86/loader/loader.c
|
||||
===================================================================
|
||||
--- xorg-server-1.12.1.orig/hw/xfree86/loader/loader.c
|
||||
+++ xorg-server-1.12.1/hw/xfree86/loader/loader.c
|
||||
@@ -152,7 +152,7 @@ LoaderSymbol(const char *name)
|
||||
return p;
|
||||
|
||||
if (!global_scope)
|
||||
- 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);
|
||||
+ global_scope = dlopen(NULL, DLOPEN_LAZY | DLOPEN_GLOBAL | RTLD_DEEPBIND);
|
||||
|
||||
if (global_scope)
|
||||
return dlsym(global_scope, name);
|
||||
|
@ -1,108 +1,100 @@
|
||||
Index: dix/events.c
|
||||
================================================================================
|
||||
--- dix/events.c
|
||||
+++ dix/events.c
|
||||
@@ -661,37 +661,80 @@
|
||||
--- dix/events.c.orig 2012-04-17 11:34:39.714915372 -0500
|
||||
+++ dix/events.c 2012-04-17 11:26:54.735728478 -0500
|
||||
@@ -671,32 +671,77 @@
|
||||
{
|
||||
BoxRec box;
|
||||
int x = *px, y = *py;
|
||||
- int incx = 1, incy = 1;
|
||||
SpritePtr pSprite;
|
||||
+ int nbox;
|
||||
+ BoxPtr pbox;
|
||||
+ int d, min = (~0U >> 1), dx2, dy2, x_r, y_r;
|
||||
|
||||
pSprite = pDev->spriteInfo->sprite;
|
||||
if (RegionContainsPoint(shape, x, y, &box))
|
||||
return;
|
||||
return;
|
||||
- box = *RegionExtents(shape);
|
||||
- /* this is rather crude */
|
||||
- do {
|
||||
- x += incx;
|
||||
- if (x >= box.x2)
|
||||
- {
|
||||
- incx = -1;
|
||||
- x = *px - 1;
|
||||
- x += incx;
|
||||
- if (x >= box.x2) {
|
||||
- incx = -1;
|
||||
- x = *px - 1;
|
||||
+
|
||||
+ for (nbox = REGION_NUM_RECTS (shape),
|
||||
+ pbox = REGION_RECTS(shape);
|
||||
+ nbox--;
|
||||
+ pbox++)
|
||||
+ {
|
||||
+ if (pbox->x1 < x && pbox->x2 > x) {
|
||||
+ d = pbox->y1 - y;
|
||||
+ if (d >= 0) {
|
||||
+ d *= d;
|
||||
+ if (d < min) {
|
||||
+ *px = x;
|
||||
+ *py = pbox->y1 + 1;
|
||||
+ min = d;
|
||||
+ }
|
||||
+ } else {
|
||||
+ d = pbox->y2 - y; d *= d;
|
||||
+ if (d < min) {
|
||||
+ *px = x;
|
||||
+ *py = pbox->y2 - 1;
|
||||
+ min = d;
|
||||
+ }
|
||||
+ }
|
||||
}
|
||||
- else if (x < box.x1)
|
||||
- {
|
||||
- incx = 1;
|
||||
- x = *px;
|
||||
- y += incy;
|
||||
- if (y >= box.y2)
|
||||
- {
|
||||
- incy = -1;
|
||||
- y = *py - 1;
|
||||
+ else if (pbox->y1 < y && pbox->y2 > y) {
|
||||
+ d = pbox->x1 - x;
|
||||
+ if (d >= 0) {
|
||||
+ d *= d;
|
||||
+ if (d < min) {
|
||||
+ *px = pbox->x1 + 1;
|
||||
+ *py = y;
|
||||
+ min = d;
|
||||
+ }
|
||||
+ } else {
|
||||
+ d = pbox->x2 - x; d *= d;
|
||||
+ if (d < min) {
|
||||
+ *px = pbox->x2 - 1;
|
||||
+ *py = y;
|
||||
+ min = d;
|
||||
+ }
|
||||
+ }
|
||||
+
|
||||
+ } else {
|
||||
+ dx2 = pbox->x1 - x;
|
||||
+ if (dx2 >= 0) {
|
||||
+ dx2 *= dx2;
|
||||
+ x_r = pbox->x1 + 1;
|
||||
+ } else {
|
||||
+ dx2 = pbox->x2 - x; dx2 *= dx2;
|
||||
+ x_r = pbox->x2 - 1;
|
||||
+ }
|
||||
+ dy2 = pbox->y1 - y;
|
||||
+ if (dy2 >= 0) {
|
||||
+ dy2 *= dy2;
|
||||
+ y_r = pbox->y1 + 1;
|
||||
+ } else {
|
||||
+ dy2 = pbox->y2 - y; dy2 *= dy2;
|
||||
+ y_r = pbox->y2 - 1;
|
||||
+ }
|
||||
+ if ((d = dx2 + dy2) < min) {
|
||||
+ *px = x_r;
|
||||
+ *py = y_r;
|
||||
+ min = d;
|
||||
}
|
||||
- else if (y < box.y1)
|
||||
- return; /* should never get here! */
|
||||
}
|
||||
+ if (pbox->x1 < x && pbox->x2 > x) {
|
||||
+ d = pbox->y1 - y;
|
||||
+ if (d >= 0) {
|
||||
+ d *= d;
|
||||
+ if (d < min) {
|
||||
+ *px = x;
|
||||
+ *py = pbox->y1 + 1;
|
||||
+ min = d;
|
||||
+ }
|
||||
+ } else {
|
||||
+ d = pbox->y2 - y; d *= d;
|
||||
+ if (d < min) {
|
||||
+ *px = x;
|
||||
+ *py = pbox->y2 - 1;
|
||||
+ min = d;
|
||||
+ }
|
||||
+ }
|
||||
}
|
||||
- else if (x < box.x1) {
|
||||
- incx = 1;
|
||||
- x = *px;
|
||||
- y += incy;
|
||||
- if (y >= box.y2) {
|
||||
- incy = -1;
|
||||
- y = *py - 1;
|
||||
+ else if (pbox->y1 < y && pbox->y2 > y) {
|
||||
+ d = pbox->x1 - x;
|
||||
+ if (d >= 0) {
|
||||
+ d *= d;
|
||||
+ if (d < min) {
|
||||
+ *px = pbox->x1 + 1;
|
||||
+ *py = y;
|
||||
+ min = d;
|
||||
+ }
|
||||
+ } else {
|
||||
+ d = pbox->x2 - x; d *= d;
|
||||
+ if (d < min) {
|
||||
+ *px = pbox->x2 - 1;
|
||||
+ *py = y;
|
||||
+ min = d;
|
||||
+ }
|
||||
+ }
|
||||
+ } else {
|
||||
+ dx2 = pbox->x1 - x;
|
||||
+ if (dx2 >= 0) {
|
||||
+ dx2 *= dx2;
|
||||
+ x_r = pbox->x1 + 1;
|
||||
+ } else {
|
||||
+ dx2 = pbox->x2 - x; dx2 *= dx2;
|
||||
+ x_r = pbox->x2 - 1;
|
||||
+ }
|
||||
+ dy2 = pbox->y1 - y;
|
||||
+ if (dy2 >= 0) {
|
||||
+ dy2 *= dy2;
|
||||
+ y_r = pbox->y1 + 1;
|
||||
+ } else {
|
||||
+ dy2 = pbox->y2 - y; dy2 *= dy2;
|
||||
+ y_r = pbox->y2 - 1;
|
||||
+ }
|
||||
+ if ((d = dx2 + dy2) < min) {
|
||||
+ *px = x_r;
|
||||
+ *py = y_r;
|
||||
+ min = d;
|
||||
}
|
||||
- else if (y < box.y1)
|
||||
- return; /* should never get here! */
|
||||
}
|
||||
- } while (!RegionContainsPoint(shape, x, y, &box));
|
||||
- *px = x;
|
||||
- *py = y;
|
||||
+ }
|
||||
+ }
|
||||
}
|
||||
|
||||
static void
|
||||
|
@ -1,14 +1,14 @@
|
||||
Index: xorg-server-1.6.3.901/hw/xfree86/common/xf86DPMS.c
|
||||
================================================================================
|
||||
--- xorg-server-1.7.99/hw/xfree86/common/xf86DPMS.c
|
||||
+++ xorg-server-1.7.99/hw/xfree86/common/xf86DPMS.c
|
||||
@@ -156,7 +156,8 @@
|
||||
rc = dixSaveScreens(client, SCREEN_SAVER_FORCER, ScreenSaverActive);
|
||||
if (rc != Success)
|
||||
return rc;
|
||||
Index: xorg-server-1.12.1/hw/xfree86/common/xf86DPMS.c
|
||||
===================================================================
|
||||
--- xorg-server-1.12.1.orig/hw/xfree86/common/xf86DPMS.c
|
||||
+++ xorg-server-1.12.1/hw/xfree86/common/xf86DPMS.c
|
||||
@@ -151,7 +151,8 @@ DPMSSet(ClientPtr client, int level)
|
||||
rc = dixSaveScreens(client, SCREEN_SAVER_FORCER, ScreenSaverActive);
|
||||
if (rc != Success)
|
||||
return rc;
|
||||
- }
|
||||
+ } else
|
||||
+ dixSaveScreens(client, SCREEN_SAVER_FORCER, ScreenSaverReset);
|
||||
+ dixSaveScreens(client, SCREEN_SAVER_FORCER, ScreenSaverReset);
|
||||
|
||||
/* For each screen, set the DPMS level */
|
||||
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
|
||||
@@ -176,7 +176,11 @@
|
||||
case 0x1142: driverList[0] = "apm"; break;
|
||||
case 0xedd8: driverList[0] = "ark"; break;
|
||||
case 0x1a03: driverList[0] = "ast"; break;
|
||||
- case 0x1002: driverList[0] = "ati"; break;
|
||||
+ case 0x1002:
|
||||
+ driverList[0] = "fglrx";
|
||||
+ driverList[1] = "radeonhd";
|
||||
+ driverList[2] = "ati";
|
||||
+ break;
|
||||
case 0x102c: driverList[0] = "chips"; break;
|
||||
case 0x1013: driverList[0] = "cirrus"; break;
|
||||
case 0x3d3d: driverList[0] = "glint"; break;
|
||||
@@ -192,8 +196,20 @@
|
||||
break;
|
||||
case 0x102b: driverList[0] = "mga"; break;
|
||||
case 0x10c8: driverList[0] = "neomagic"; break;
|
||||
- case 0x10de: case 0x12d2: driverList[0] = "nv"; break;
|
||||
- case 0x1106: driverList[0] = "openchrome"; break;
|
||||
+ case 0x12d2: driverList[0] = "nv"; break;
|
||||
+ case 0x10de:
|
||||
+ driverList[0] = "nvidia";
|
||||
+ driverList[1] = "nouveau";
|
||||
+ /* GeForce 6150SE support broken (bnc #465190/544674) */
|
||||
+ if (dev->device_id != 0x03D0) {
|
||||
+ driverList[2] = "nv";
|
||||
+ }
|
||||
+ break;
|
||||
+ case 0x1106:
|
||||
+ driverList[0] = "via";
|
||||
+ driverList[1] = "openchrome";
|
||||
+ driverList[2] = "unichrome";
|
||||
+ break;
|
||||
case 0x1b36: driverList[0] = "qxl"; break;
|
||||
case 0x1163: driverList[0] = "rendition"; break;
|
||||
case 0x5333:
|
||||
@@ -1107,7 +1107,9 @@ videoPtrToDriverList(struct pci_device *
|
||||
driverList[0] = "ast";
|
||||
break;
|
||||
case 0x1002:
|
||||
- driverList[0] = "ati";
|
||||
+ driverList[0] = "fglrx";
|
||||
+ driverList[1] = "radeonhd";
|
||||
+ driverList[2] = "ati";
|
||||
break;
|
||||
case 0x102c:
|
||||
driverList[0] = "chips";
|
||||
@@ -1139,6 +1141,13 @@ videoPtrToDriverList(struct pci_device *
|
||||
driverList[0] = "neomagic";
|
||||
break;
|
||||
case 0x10de:
|
||||
+ driverList[0] = "nvidia";
|
||||
+ driverList[1] = "nouveau";
|
||||
+ /* GeForce 6150SE support broken (bnc #465190/544674) */
|
||||
+ if (dev->device_id != 0x03D0) {
|
||||
+ driverList[2] = "nv";
|
||||
+ }
|
||||
+ break;
|
||||
case 0x12d2:
|
||||
{
|
||||
int idx = 0;
|
||||
@@ -1150,7 +1159,9 @@ videoPtrToDriverList(struct pci_device *
|
||||
break;
|
||||
}
|
||||
case 0x1106:
|
||||
- driverList[0] = "openchrome";
|
||||
+ driverList[0] = "via";
|
||||
+ driverList[1] = "openchrome";
|
||||
+ driverList[2] = "unichrome";
|
||||
break;
|
||||
case 0x1b36:
|
||||
driverList[0] = "qxl";
|
||||
|
42
fbdevhw.diff
42
fbdevhw.diff
@ -1,30 +1,30 @@
|
||||
Index: hw/xfree86/fbdevhw/fbdevhw.c
|
||||
================================================================================
|
||||
--- hw/xfree86/fbdevhw/fbdevhw.c
|
||||
===================================================================
|
||||
--- hw/xfree86/fbdevhw/fbdevhw.c.orig
|
||||
+++ hw/xfree86/fbdevhw/fbdevhw.c
|
||||
@@ -957,9 +957,10 @@
|
||||
return;
|
||||
}
|
||||
@@ -858,9 +858,10 @@ fbdevHWDPMSSet(ScrnInfoPtr pScrn, int mo
|
||||
return;
|
||||
}
|
||||
|
||||
+ /* Novell Bug #146462 */
|
||||
if (-1 == ioctl(fPtr->fd, FBIOBLANK, (void *)fbmode))
|
||||
- xf86DrvMsg(pScrn->scrnIndex, X_ERROR,
|
||||
- "FBIOBLANK: %s\n", strerror(errno));
|
||||
+ xf86DrvMsg(pScrn->scrnIndex, X_INFO,
|
||||
+ "FBIOBLANK: %s (Screen blanking not supported by vesafb of Linux Kernel)\n", strerror(errno));
|
||||
+ /* Novell Bug #146462 */
|
||||
if (-1 == ioctl(fPtr->fd, FBIOBLANK, (void *) fbmode))
|
||||
- xf86DrvMsg(pScrn->scrnIndex, X_ERROR,
|
||||
- "FBIOBLANK: %s\n", strerror(errno));
|
||||
+ xf86DrvMsg(pScrn->scrnIndex, X_INFO,
|
||||
+ "FBIOBLANK: %s (Screen blanking not supported by vesafb of Linux Kernel)\n", strerror(errno));
|
||||
}
|
||||
|
||||
Bool
|
||||
@@ -975,9 +976,10 @@
|
||||
@@ -875,9 +876,10 @@ fbdevHWSaveScreen(ScreenPtr pScreen, int
|
||||
|
||||
unblank = xf86IsUnblank(mode);
|
||||
unblank = xf86IsUnblank(mode);
|
||||
|
||||
+ /* Novell Bug #146462 */
|
||||
if (-1 == ioctl(fPtr->fd, FBIOBLANK, (void *)(1-unblank))) {
|
||||
- xf86DrvMsg(pScrn->scrnIndex, X_ERROR,
|
||||
- "FBIOBLANK: %s\n", strerror(errno));
|
||||
+ xf86DrvMsg(pScrn->scrnIndex, X_INFO,
|
||||
+ "FBIOBLANK: %s (Screen blanking not supported by vesafb of Linux Kernel)\n", strerror(errno));
|
||||
return FALSE;
|
||||
}
|
||||
+ /* Novell Bug #146462 */
|
||||
if (-1 == ioctl(fPtr->fd, FBIOBLANK, (void *) (1 - unblank))) {
|
||||
- xf86DrvMsg(pScrn->scrnIndex, X_ERROR,
|
||||
- "FBIOBLANK: %s\n", strerror(errno));
|
||||
+ xf86DrvMsg(pScrn->scrnIndex, X_INFO,
|
||||
+ "FBIOBLANK: %s (Screen blanking not supported by vesafb of Linux Kernel)\n", strerror(errno));
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
|
@ -1,58 +1,58 @@
|
||||
Index: hw/xfree86/common/xf86Helper.c
|
||||
================================================================================
|
||||
--- hw/xfree86/common/xf86Helper.c
|
||||
===================================================================
|
||||
--- hw/xfree86/common/xf86Helper.c.orig
|
||||
+++ hw/xfree86/common/xf86Helper.c
|
||||
@@ -974,12 +974,22 @@
|
||||
} else if (pScrn->widthmm > 0 || pScrn->heightmm > 0) {
|
||||
from = X_CONFIG;
|
||||
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;
|
||||
@@ -1014,12 +1024,22 @@
|
||||
pScrn->widthmm = ddcWidthmm;
|
||||
pScrn->heightmm = ddcHeightmm;
|
||||
if (pScrn->widthmm > 0) {
|
||||
- pScrn->xDpi =
|
||||
- (int)((double)pScrn->virtualX * MMPERINCH / pScrn->widthmm);
|
||||
@@ -922,12 +922,22 @@ xf86SetDpi(ScrnInfoPtr pScrn, int x, int
|
||||
else if (pScrn->widthmm > 0 || pScrn->heightmm > 0) {
|
||||
from = X_CONFIG;
|
||||
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);
|
||||
+ (int)((double) pScrn->modes->HDisplay * MMPERINCH / pScrn->widthmm);
|
||||
+ } else {
|
||||
+ pScrn->xDpi =
|
||||
+ (int)((double)pScrn->virtualX * MMPERINCH / pScrn->widthmm);
|
||||
+ 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;
|
||||
}
|
||||
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;
|
||||
@@ -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
|
||||
+++ hw/xfree86/common/xf86AutoConfig.c 2010-03-23 19:46:34.037124633 +0100
|
||||
Index: hw/xfree86/common/xf86AutoConfig.c
|
||||
===================================================================
|
||||
--- hw/xfree86/common/xf86AutoConfig.c.orig
|
||||
+++ hw/xfree86/common/xf86AutoConfig.c
|
||||
@@ -75,6 +75,13 @@
|
||||
"\tDevice\t" BUILTIN_DEVICE_NAME "\n" \
|
||||
"EndSection\n\n"
|
||||
@ -14,15 +16,15 @@
|
||||
#define BUILTIN_LAYOUT_SECTION_PRE \
|
||||
"Section \"ServerLayout\"\n" \
|
||||
"\tIdentifier\t\"Builtin Default Layout\"\n"
|
||||
@@ -259,7 +266,10 @@ xf86AutoConfig(void)
|
||||
@@ -153,7 +160,10 @@ xf86AutoConfig(void)
|
||||
for (p = deviceList; *p; p++) {
|
||||
snprintf(buf, sizeof(buf), BUILTIN_DEVICE_SECTION, *p, 0, *p);
|
||||
AppendToConfig(buf);
|
||||
- snprintf(buf, sizeof(buf), BUILTIN_SCREEN_SECTION, *p, 0, *p, 0);
|
||||
snprintf(buf, sizeof(buf), BUILTIN_DEVICE_SECTION, *p, 0, *p);
|
||||
AppendToConfig(buf);
|
||||
- snprintf(buf, sizeof(buf), BUILTIN_SCREEN_SECTION, *p, 0, *p, 0);
|
||||
+ if( strcmp(*p, "fglrx") == 0 )
|
||||
+ snprintf(buf, sizeof(buf), BUILTIN_SCREEN_SECTION_FOR_FGLRX, *p, 0, *p, 0);
|
||||
+ else
|
||||
+ 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
|
||||
================================================================================
|
||||
--- hw/xfree86/common/xf86Globals.c
|
||||
===================================================================
|
||||
--- hw/xfree86/common/xf86Globals.c.orig
|
||||
+++ hw/xfree86/common/xf86Globals.c
|
||||
@@ -144,7 +144,7 @@
|
||||
};
|
||||
@@ -135,7 +135,7 @@ xf86InfoRec xf86Info = {
|
||||
|
||||
const char *xf86ConfigFile = NULL;
|
||||
const char *xf86ConfigDir = NULL;
|
||||
-const char *xf86ModulePath = DEFAULT_MODULE_PATH;
|
||||
|
@ -1,9 +1,9 @@
|
||||
Index: build-GucBkyZ/xorg-server-1.6.3.901/hw/xnest/GCOps.c
|
||||
================================================================================
|
||||
--- BUILD/xorg-server-1.7.99/hw/xnest/GCOps.c
|
||||
+++ BUILD/xorg-server-1.7.99/hw/xnest/GCOps.c
|
||||
@@ -94,6 +94,13 @@
|
||||
}
|
||||
Index: xorg-server-1.12.1/hw/xnest/GCOps.c
|
||||
===================================================================
|
||||
--- xorg-server-1.12.1.orig/hw/xnest/GCOps.c
|
||||
+++ xorg-server-1.12.1/hw/xnest/GCOps.c
|
||||
@@ -94,15 +94,26 @@ xnestPutImage(DrawablePtr pDrawable, GCP
|
||||
}
|
||||
}
|
||||
|
||||
+static int
|
||||
@ -15,18 +15,17 @@ Index: build-GucBkyZ/xorg-server-1.6.3.901/hw/xnest/GCOps.c
|
||||
+
|
||||
void
|
||||
xnestGetImage(DrawablePtr pDrawable, int x, int y, int w, int h,
|
||||
unsigned int format, unsigned long planeMask,
|
||||
@@ -101,9 +108,13 @@
|
||||
unsigned int format, unsigned long planeMask, char *pImage)
|
||||
{
|
||||
XImage *ximage;
|
||||
int length;
|
||||
+ int (*old_handler)(Display*, XErrorEvent*);
|
||||
XImage *ximage;
|
||||
int length;
|
||||
+ int (*old_handler)(Display*, XErrorEvent*);
|
||||
|
||||
+ /* we may get BadMatch error when xnest window is minimized */
|
||||
+ old_handler = XSetErrorHandler (xnestIgnoreErrorHandler);
|
||||
ximage = XGetImage(xnestDisplay, xnestDrawable(pDrawable),
|
||||
x, y, w, h, planeMask, format);
|
||||
+ XSetErrorHandler (old_handler);
|
||||
+ /* we may get BadMatch error when xnest window is minimized */
|
||||
+ old_handler = XSetErrorHandler (xnestIgnoreErrorHandler);
|
||||
ximage = XGetImage(xnestDisplay, xnestDrawable(pDrawable),
|
||||
x, y, w, h, planeMask, format);
|
||||
+ XSetErrorHandler (old_handler);
|
||||
|
||||
if (ximage) {
|
||||
length = ximage->bytes_per_line * ximage->height;
|
||||
if (ximage) {
|
||||
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
|
||||
================================================================================
|
||||
--- hw/xfree86/xaa/xaaImage.c
|
||||
===================================================================
|
||||
--- hw/xfree86/xaa/xaaImage.c.orig
|
||||
+++ hw/xfree86/xaa/xaaImage.c
|
||||
@@ -238,12 +238,16 @@
|
||||
(*infoRec->SetupForImageWrite)(pScrn, rop, planemask, trans, bpp, depth);
|
||||
(*infoRec->SubsequentImageWriteRect)(pScrn, x, y, w, h, skipleft);
|
||||
@@ -240,6 +240,7 @@ XAAWritePixmap(ScrnInfoPtr pScrn, int x,
|
||||
(*infoRec->SetupForImageWrite) (pScrn, rop, planemask, trans, bpp, depth);
|
||||
(*infoRec->SubsequentImageWriteRect) (pScrn, x, y, w, h, skipleft);
|
||||
|
||||
+#if 0
|
||||
if(beCareful) {
|
||||
/* in cases with bad alignment we have to be careful not
|
||||
to read beyond the end of the source */
|
||||
if(((x * Bpp) + (dwords << 2)) > srcwidth) h--;
|
||||
else beCareful = FALSE;
|
||||
if (beCareful) {
|
||||
/* in cases with bad alignment we have to be careful not
|
||||
to read beyond the end of the source */
|
||||
@@ -248,6 +249,9 @@ XAAWritePixmap(ScrnInfoPtr pScrn, int x,
|
||||
else
|
||||
beCareful = FALSE;
|
||||
}
|
||||
+#endif
|
||||
+ if (beCareful)
|
||||
+ h--;
|
||||
+ h--;
|
||||
|
||||
if(dwords > infoRec->ImageWriteRange) {
|
||||
while(h--) {
|
||||
if (dwords > infoRec->ImageWriteRange) {
|
||||
while (h--) {
|
||||
|
@ -1,14 +1,14 @@
|
||||
Index: xorg-server-1.6.3.901/hw/xfree86/common/xf86RandR.c
|
||||
================================================================================
|
||||
--- xorg-server-1.7.99/hw/xfree86/common/xf86RandR.c
|
||||
+++ xorg-server-1.7.99/hw/xfree86/common/xf86RandR.c
|
||||
@@ -247,6 +247,9 @@
|
||||
Bool useVirtual = FALSE;
|
||||
Rotation oldRotation = randrp->rotation;
|
||||
Index: xorg-server-1.12.1/hw/xfree86/common/xf86RandR.c
|
||||
===================================================================
|
||||
--- xorg-server-1.12.1.orig/hw/xfree86/common/xf86RandR.c
|
||||
+++ xorg-server-1.12.1/hw/xfree86/common/xf86RandR.c
|
||||
@@ -237,6 +237,9 @@ xf86RandRSetConfig(ScreenPtr pScreen,
|
||||
DeviceIntPtr dev;
|
||||
Bool view_adjusted = FALSE;
|
||||
|
||||
+ if (!scrp->vtSema)
|
||||
+ return FALSE;
|
||||
+ return FALSE;
|
||||
+
|
||||
miPointerGetPosition(inputInfo.pointer, &px, &py);
|
||||
for (mode = scrp->modes; ; mode = mode->next)
|
||||
{
|
||||
for (dev = inputInfo.devices; dev; dev = dev->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
|
||||
+++ xorg-server-1.9.1/Xext/sync.c 2010-11-16 23:13:16.327862535 -0500
|
||||
@@ -2264,8 +2264,44 @@
|
||||
Index: xorg-server-1.12.1/Xext/sync.c
|
||||
===================================================================
|
||||
--- 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
|
||||
IdleTimeQueryValue (pointer pCounter, CARD64 *pValue_return)
|
||||
IdleTimeQueryValue(pointer pCounter, CARD64 * pValue_return)
|
||||
{
|
||||
- CARD32 idle = GetTimeInMillis() - lastDeviceEventTime.milliseconds;
|
||||
+ static CARD32 previousLastDeviceEventTimeMilliseconds = 0;
|
||||
@ -10,9 +12,8 @@
|
||||
+ CARD32 idle = now - lastDeviceEventTime.milliseconds;
|
||||
+ CARD32 previousIdle = now - previousLastDeviceEventTimeMilliseconds;
|
||||
+ SyncCounter *pIdleTimeCounter = (SyncCounter*)pCounter;
|
||||
+
|
||||
XSyncIntsToValue (pValue_return, idle, 0);
|
||||
+
|
||||
|
||||
XSyncIntsToValue(pValue_return, idle, 0);
|
||||
+ if (pCounter == NULL)
|
||||
+ {
|
||||
+ return;
|
||||
@ -29,7 +30,7 @@
|
||||
+ /* no new user event, no need to change idle counter. */
|
||||
+ return;
|
||||
+ }
|
||||
+ previousLastDeviceEventTimeMilliseconds = lastDeviceEventTime.milliseconds;
|
||||
+ previousLastDeviceEventTimeMilliseconds = lastDeviceEventTime.milliseconds;
|
||||
+
|
||||
+ /*
|
||||
+ * Some user event occured; now update idle counter with previous
|
||||
@ -46,12 +47,12 @@
|
||||
}
|
||||
|
||||
static void
|
||||
@@ -2342,7 +2378,7 @@
|
||||
@@ -2700,7 +2734,7 @@ IdleTimeWakeupHandler(pointer env, int r
|
||||
if (!pIdleTimeValueLess && !pIdleTimeValueGreater)
|
||||
return;
|
||||
return;
|
||||
|
||||
- IdleTimeQueryValue (NULL, &idle);
|
||||
+ IdleTimeQueryValue (IdleTimeCounter, &idle);
|
||||
- IdleTimeQueryValue(NULL, &idle);
|
||||
+ IdleTimeQueryValue(IdleTimeCounter, &idle);
|
||||
|
||||
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
|
||||
================================================================================
|
||||
--- hw/xfree86/common/xf86VidMode.c
|
||||
===================================================================
|
||||
--- hw/xfree86/common/xf86VidMode.c.orig
|
||||
+++ 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);
|
||||
+ if (!pScrn->modes)
|
||||
+ return FALSE;
|
||||
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
|
||||
===============================================================================
|
||||
--- xorg-server-1.7.99/hw/xfree86/common/xf86pciBus.c
|
||||
+++ xorg-server-1.7.99/hw/xfree86/common/xf86pciBus.c
|
||||
@@ -186,12 +186,14 @@
|
||||
case 0x3d3d: driverList[0] = "glint"; break;
|
||||
case 0x105d: driverList[0] = "i128"; break;
|
||||
case 0x8086:
|
||||
- if ((dev->device_id == 0x00d1) || (dev->device_id == 0x7800)) {
|
||||
- driverList[0] = "i740";
|
||||
- } else if (dev->device_id == 0x8108) {
|
||||
- break; /* "hooray" for poulsbo */
|
||||
- } else {
|
||||
- driverList[0] = "intel";
|
||||
+ switch (dev->device_id)
|
||||
+ {
|
||||
+ case 0x00d1: case 0x7800:
|
||||
+ driverList[0] = "i740"; break;
|
||||
+ case 0x8109: case 0x8108: case 0x4102:
|
||||
+ driverList[0] = "psb"; driverList[1] = "psb_drv"; break;
|
||||
Index: xorg-server-1.12.1/hw/xfree86/common/xf86pciBus.c
|
||||
===================================================================
|
||||
--- xorg-server-1.12.1.orig/hw/xfree86/common/xf86pciBus.c
|
||||
+++ xorg-server-1.12.1/hw/xfree86/common/xf86pciBus.c
|
||||
@@ -1124,14 +1124,21 @@ videoPtrToDriverList(struct pci_device *
|
||||
driverList[0] = "i128";
|
||||
break;
|
||||
case 0x8086:
|
||||
- if ((dev->device_id == 0x00d1) || (dev->device_id == 0x7800)) {
|
||||
- driverList[0] = "i740";
|
||||
- }
|
||||
- else if (dev->device_id == 0x8108) {
|
||||
- break; /* "hooray" for poulsbo */
|
||||
- }
|
||||
- else {
|
||||
- driverList[0] = "intel";
|
||||
+ switch (dev->device_id)
|
||||
+ {
|
||||
+ case 0x00d1:
|
||||
+ case 0x7800:
|
||||
+ driverList[0] = "i740";
|
||||
+ break;
|
||||
+ case 0x8109:
|
||||
+ case 0x8108:
|
||||
+ case 0x4102:
|
||||
+ driverList[0] = "psb";
|
||||
+ driverList[1] = "psb_drv";
|
||||
+ break;
|
||||
+ default:
|
||||
+ driverList[0] = "intel"; break;
|
||||
}
|
||||
break;
|
||||
case 0x102b: driverList[0] = "mga"; break;
|
||||
+ driverList[0] = "intel";
|
||||
+ 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
|
||||
+++ xorg-server-1.6.5/os/access.c
|
||||
@@ -781,7 +781,9 @@
|
||||
Index: xorg-server-1.12.1/os/access.c
|
||||
===================================================================
|
||||
--- 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
|
||||
- * on the other end of the wire
|
||||
+ * on the other end of the wire and because on hosts
|
||||
+ * with shared home dirs they'll result in conflic
|
||||
/*
|
||||
* ignore 'localhost' entries as they're not useful
|
||||
- * on the other end of the wire
|
||||
+ * on the other end of the wire and because on hosts
|
||||
+ * with shared home dirs they'll result in conflicting
|
||||
+ * entries in ~/.Xauthority
|
||||
*/
|
||||
if (ifr->ifa_flags & IFF_LOOPBACK)
|
||||
continue;
|
||||
@@ -804,6 +806,14 @@
|
||||
else if (family == FamilyInternet6 &&
|
||||
IN6_IS_ADDR_LOOPBACK((struct in6_addr *)addr))
|
||||
continue;
|
||||
*/
|
||||
if (ifr->ifa_flags & IFF_LOOPBACK)
|
||||
continue;
|
||||
@@ -735,6 +737,14 @@ DefineSelf(int fd)
|
||||
else if (family == FamilyInternet6 &&
|
||||
IN6_IS_ADDR_LOOPBACK((struct in6_addr *) addr))
|
||||
continue;
|
||||
+
|
||||
+ /* Ignore IPv6 link local addresses (fe80::/10), because
|
||||
+ * they need a scope identifier, which we have no way
|
||||
+ * of telling to the other end.
|
||||
+ */
|
||||
+ if (family == FamilyInternet6 &&
|
||||
+ IN6_IS_ADDR_LINKLOCAL((struct in6_addr *)addr))
|
||||
+ continue;
|
||||
+ /* Ignore IPv6 link local addresses (fe80::/10), because
|
||||
+ * they need a scope identifier, which we have no way
|
||||
+ * of telling to the other end.
|
||||
+ */
|
||||
+ if (family == FamilyInternet6 &&
|
||||
+ IN6_IS_ADDR_LINKLOCAL((struct in6_addr *)addr))
|
||||
+ continue;
|
||||
#endif
|
||||
XdmcpRegisterConnection(family, (char *)addr, len);
|
||||
XdmcpRegisterConnection(family, (char *) addr, len);
|
||||
#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,56 @@
|
||||
-------------------------------------------------------------------
|
||||
Wed Apr 25 12:44:12 UTC 2012 - sndirsch@suse.com
|
||||
|
||||
- remove BuildRequires to ghostscript-library, since it conflicts
|
||||
with ghostscript-mini apparently now required by some other
|
||||
package
|
||||
|
||||
-------------------------------------------------------------------
|
||||
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
|
||||
|
||||
|
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@
|
||||
|
@ -14,13 +14,37 @@
|
||||
|
||||
# Please submit bugfixes or comments via http://bugs.opensuse.org/
|
||||
#
|
||||
|
||||
|
||||
|
||||
Name: xorg-x11-server
|
||||
%define dirsuffix 1.10.4
|
||||
%define dirsuffix 1.12.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: bison
|
||||
BuildRequires: flex
|
||||
BuildRequires: ghostscript-library
|
||||
BuildRequires: libtool
|
||||
BuildRequires: pkgconfig
|
||||
BuildRequires: xorg-x11
|
||||
@ -67,129 +91,158 @@ BuildRequires: pkgconfig(xtrans) >= 1.2.2
|
||||
BuildRequires: pkgconfig(xtst) >= 1.0.99.2
|
||||
BuildRequires: pkgconfig(xv)
|
||||
### udev support (broken on openSUSE 11.2, see also bnc #589997)
|
||||
%if %suse_version >= 1130
|
||||
%if 0%{?suse_version} >= 1130
|
||||
BuildRequires: pkgconfig(libudev) >= 143
|
||||
%endif
|
||||
%if %vnc
|
||||
BuildRequires: libjpeg-devel
|
||||
BuildRequires: pkgconfig(vncproto)
|
||||
%endif
|
||||
Url: http://xorg.freedesktop.org/
|
||||
Version: 7.6_%{dirsuffix}
|
||||
Release: 0
|
||||
Url: http://xorg.freedesktop.org/
|
||||
BuildRoot: %{_tmppath}/%{name}-%{version}-build
|
||||
%ifnarch s390 s390x
|
||||
PreReq: %fillup_prereq
|
||||
Requires(pre): %fillup_prereq
|
||||
%endif
|
||||
Requires: pkgconfig xorg-x11-fonts-core xorg-x11
|
||||
Requires: pkgconfig
|
||||
Requires: xorg-x11
|
||||
Requires: xorg-x11-fonts-core
|
||||
%ifnarch s390 s390x
|
||||
Provides: VIDEO_ABI_VERSION = 10
|
||||
Provides: INPUT_ABI_VERSION = 12
|
||||
Requires: libpixman-1-0 >= 0.15.2
|
||||
%(cat %{SOURCE98})
|
||||
%endif
|
||||
Provides: xorg-x11-server-glx xorg-x11-Xvfb
|
||||
Obsoletes: xorg-x11-server-glx xorg-x11-Xvfb
|
||||
Summary: X.Org Server
|
||||
License: GPL-2.0+ ; MIT
|
||||
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
|
||||
Provides: xorg-x11-Xvfb
|
||||
Provides: xorg-x11-server-glx
|
||||
Obsoletes: xorg-x11-Xvfb
|
||||
Obsoletes: xorg-x11-server-glx
|
||||
%if %vnc
|
||||
# PATCH-MISSING-TAG -- See http://wiki.opensuse.org/openSUSE:Packaging_Patches_guidelines
|
||||
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
|
||||
# PATCH-MISSING-TAG -- See http://wiki.opensuse.org/openSUSE:Packaging_Patches_guidelines
|
||||
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
|
||||
# PATCH-MISSING-TAG -- See http://wiki.opensuse.org/openSUSE:Packaging_Patches_guidelines
|
||||
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
|
||||
# PATCH-MISSING-TAG -- See http://wiki.opensuse.org/openSUSE:Packaging_Patches_guidelines
|
||||
Patch23: Xvnc-pthread.diff
|
||||
Patch24: N-VNC-Add-proto.diff
|
||||
%endif
|
||||
# PATCH-MISSING-TAG -- See http://wiki.opensuse.org/openSUSE:Packaging_Patches_guidelines
|
||||
Patch45: bug-197858_dpms.diff
|
||||
# PATCH-MISSING-TAG -- See http://wiki.opensuse.org/openSUSE:Packaging_Patches_guidelines
|
||||
Patch77: fbdevhw.diff
|
||||
# PATCH-MISSING-TAG -- See http://wiki.opensuse.org/openSUSE:Packaging_Patches_guidelines
|
||||
Patch79: edid_data_sanity_check.diff
|
||||
# PATCH-MISSING-TAG -- See http://wiki.opensuse.org/openSUSE:Packaging_Patches_guidelines
|
||||
Patch101: zap_warning_xserver.diff
|
||||
# PATCH-NEEDS-REBASE
|
||||
Patch103: confine_to_shape.diff
|
||||
# PATCH-MISSING-TAG -- See http://wiki.opensuse.org/openSUSE:Packaging_Patches_guidelines
|
||||
Patch106: randr1_1-sig11.diff
|
||||
# PATCH-MISSING-TAG -- See http://wiki.opensuse.org/openSUSE:Packaging_Patches_guidelines
|
||||
Patch112: fix-dpi-values.diff
|
||||
# PATCH-MISSING-TAG -- See http://wiki.opensuse.org/openSUSE:Packaging_Patches_guidelines
|
||||
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
|
||||
# PATCH-MISSING-TAG -- See http://wiki.opensuse.org/openSUSE:Packaging_Patches_guidelines
|
||||
Patch127: dpms_screensaver.diff
|
||||
# PATCH-NEEDS-REBASE (might not be applicable at all anymore)
|
||||
Patch128: pci-legacy-mem-fallback.diff
|
||||
# PATCH-NEEDS-REBASE (might not be applicable at all anymore)
|
||||
Patch129: bug474071-fix1.diff
|
||||
# PATCH-MISSING-TAG -- See http://wiki.opensuse.org/openSUSE:Packaging_Patches_guidelines
|
||||
Patch143: autoconfig_fallback_fbdev_first.diff
|
||||
# PATCH-MISSING-TAG -- See http://wiki.opensuse.org/openSUSE:Packaging_Patches_guidelines
|
||||
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
|
||||
# PATCH-MISSING-TAG -- See http://wiki.opensuse.org/openSUSE:Packaging_Patches_guidelines
|
||||
Patch163: xserver-bg-none-root.patch
|
||||
# PATCH-MISSING-TAG -- See http://wiki.opensuse.org/openSUSE:Packaging_Patches_guidelines
|
||||
Patch164: xorg-detect-psb.patch
|
||||
# PATCH-MISSING-TAG -- See http://wiki.opensuse.org/openSUSE:Packaging_Patches_guidelines
|
||||
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
|
||||
# PATCH-MISSING-TAG -- See http://wiki.opensuse.org/openSUSE:Packaging_Patches_guidelines
|
||||
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
|
||||
# PATCH-NEEDS-REBASE (might not be applicable at all anymore)
|
||||
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
|
||||
# PATCH-MISSING-TAG -- See http://wiki.opensuse.org/openSUSE:Packaging_Patches_guidelines
|
||||
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
|
||||
# PATCH-MISSING-TAG -- See http://wiki.opensuse.org/openSUSE:Packaging_Patches_guidelines
|
||||
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
|
||||
This package contains the X.Org Server.
|
||||
|
||||
|
||||
|
||||
%package extra
|
||||
Summary: Additional Xservers (Xdmx, Xephyr, Xnest)
|
||||
Group: System/X11/Servers/XF86_4
|
||||
Requires: Mesa
|
||||
Requires: xkeyboard-config
|
||||
Requires: xorg-x11
|
||||
Requires: xorg-x11-fonts-core
|
||||
Provides: xorg-x11-Xnest
|
||||
Obsoletes: xorg-x11-Xnest
|
||||
Requires: xorg-x11-fonts-core xorg-x11 Mesa
|
||||
Requires: xkeyboard-config
|
||||
|
||||
%description extra
|
||||
This package contains additional Xservers (Xdmx, Xephyr, Xnest).
|
||||
|
||||
|
||||
|
||||
%package sdk
|
||||
Summary: X.Org Server SDK
|
||||
Summary: X
|
||||
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
|
||||
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
|
||||
This package contains the X.Org Server SDK.
|
||||
|
||||
|
||||
|
||||
%if %vnc
|
||||
|
||||
%package -n xorg-x11-Xvnc
|
||||
Summary: VNC Server for the X Window System
|
||||
Group: System/X11/Servers/XF86_4
|
||||
Requires: xorg-x11-fonts-core xorg-x11 xkeyboard-config
|
||||
Provides: vnc:/usr/X11R6/bin/Xvnc XFree86-Xvnc
|
||||
Requires: xkeyboard-config
|
||||
Requires: xorg-x11
|
||||
Requires: xorg-x11-fonts-core
|
||||
Provides: XFree86-Xvnc
|
||||
Provides: vnc:/usr/X11R6/bin/Xvnc
|
||||
Obsoletes: XFree86-Xvnc
|
||||
%ifarch ia64
|
||||
Provides: vnc-x86
|
||||
@ -199,16 +252,17 @@ Obsoletes: vnc-x86
|
||||
%description -n xorg-x11-Xvnc
|
||||
An X Window System server for Virtual Network Computing (VNC).
|
||||
|
||||
|
||||
|
||||
%endif
|
||||
|
||||
%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
|
||||
%patch6
|
||||
%patch13 -p1
|
||||
%patch16 -p2
|
||||
%patch16 -p1
|
||||
%if %vnc
|
||||
%patch17 -p1
|
||||
%patch18 -p1
|
||||
@ -217,10 +271,9 @@ An X Window System server for Virtual Network Computing (VNC).
|
||||
%patch21 -p1
|
||||
%patch22 -p1
|
||||
%patch23 -p1
|
||||
%patch24 -p1
|
||||
%endif
|
||||
%patch45 -p0
|
||||
pushd xorg-docs-*
|
||||
popd
|
||||
%patch77
|
||||
%patch79 -p1
|
||||
%patch101 -p1
|
||||
@ -231,10 +284,10 @@ popd
|
||||
### disabled for now
|
||||
#%patch125 -p1
|
||||
%patch127 -p1
|
||||
%patch128
|
||||
pushd hw/xfree86/os-support/bus
|
||||
%patch129 -p0
|
||||
popd
|
||||
# NEeds rebase
|
||||
#%patch128
|
||||
# Needs rebase
|
||||
#%patch129 -p0
|
||||
%patch143 -p0
|
||||
%patch145 -p0
|
||||
### disabled for now
|
||||
@ -246,26 +299,18 @@ popd
|
||||
%patch202 -p1
|
||||
%patch203 -p1
|
||||
%patch206 -p0
|
||||
%patch210 -p1
|
||||
# Needs Rebase
|
||||
#%patch210 -p1
|
||||
### disabled for now
|
||||
#%patch211 -p1
|
||||
%patch213 -p1
|
||||
# Disable backtrace generation patch for now
|
||||
### Disable backtrace generation patch for now
|
||||
#%patch220 -p1
|
||||
%patch222 -p1
|
||||
%patch223 -p2
|
||||
%patch224 -p1
|
||||
%patch225 -p1
|
||||
%patch226 -p1
|
||||
|
||||
%build
|
||||
pushd xorg-docs-*
|
||||
autoreconf -fi
|
||||
%configure CFLAGS="$RPM_OPT_FLAGS -fno-strict-aliasing"
|
||||
make %{?_smp_mflags}
|
||||
popd
|
||||
autoreconf -fi
|
||||
%configure CFLAGS="$RPM_OPT_FLAGS -fno-strict-aliasing" \
|
||||
%configure CFLAGS="%{optflags} -fno-strict-aliasing" \
|
||||
--sysconfdir=/etc \
|
||||
--enable-builddocs \
|
||||
--enable-install-libxf86config \
|
||||
@ -288,7 +333,7 @@ autoreconf -fi
|
||||
--disable-aiglx \
|
||||
%else
|
||||
--enable-xorg \
|
||||
%if %suse_version > 1120
|
||||
%if 0%{?suse_version} > 1120
|
||||
--enable-config-udev \
|
||||
%endif
|
||||
%endif
|
||||
@ -311,64 +356,64 @@ make %{?_smp_mflags}
|
||||
make -C hw/kdrive %{?_smp_mflags}
|
||||
|
||||
%install
|
||||
make -C xorg-docs-* install DESTDIR=$RPM_BUILD_ROOT
|
||||
make install DESTDIR=$RPM_BUILD_ROOT
|
||||
make -C hw/kdrive install DESTDIR=$RPM_BUILD_ROOT
|
||||
%make_install
|
||||
make -C hw/kdrive install DESTDIR=%{buildroot}
|
||||
%ifnarch s390 s390x
|
||||
# remove .la files
|
||||
find $RPM_BUILD_ROOT/usr/%{_lib}/xorg/modules/ -name "*.la" | \
|
||||
find %{buildroot}%{_libdir}/xorg/modules/ -name "*.la" | \
|
||||
xargs rm
|
||||
install -m 644 hw/xfree86/parser/{xf86Parser.h,xf86Optrec.h} \
|
||||
$RPM_BUILD_ROOT/usr/include/xorg
|
||||
%{buildroot}%{_includedir}/xorg
|
||||
# bnc #632737
|
||||
chmod u-s $RPM_BUILD_ROOT/usr/bin/Xorg
|
||||
mkdir -p $RPM_BUILD_ROOT/var/lib/X11
|
||||
ln -snf ../../../usr/bin/Xorg $RPM_BUILD_ROOT/var/lib/X11/X
|
||||
ln -snf ../../var/lib/X11/X $RPM_BUILD_ROOT/usr/bin/X
|
||||
%if %suse_version > 1120
|
||||
chmod u-s %{buildroot}%{_bindir}/Xorg
|
||||
mkdir -p %{buildroot}%{_localstatedir}/lib/X11
|
||||
ln -snf ../../../usr/bin/Xorg %{buildroot}%{_localstatedir}/lib/X11/X
|
||||
ln -snf ../../var/lib/X11/X %{buildroot}%{_bindir}/X
|
||||
%if 0%{?suse_version} > 1120
|
||||
%ifnarch s390 s390x
|
||||
mkdir -p $RPM_BUILD_ROOT/etc/X11/xorg.conf.d
|
||||
cp $RPM_BUILD_ROOT/%{_datadir}/X11/xorg.conf.d/10-evdev.conf $RPM_BUILD_ROOT/etc/X11/xorg.conf.d/
|
||||
mkdir -p %{buildroot}%{_sysconfdir}/X11/xorg.conf.d
|
||||
cp %{buildroot}/%{_datadir}/X11/xorg.conf.d/10-evdev.conf %{buildroot}%{_sysconfdir}/X11/xorg.conf.d/
|
||||
%endif
|
||||
%endif
|
||||
mkdir -p $RPM_BUILD_ROOT/usr/%{_lib}/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
|
||||
mkdir -p $RPM_BUILD_ROOT/etc/modprobe.d
|
||||
install -m 644 $RPM_SOURCE_DIR/modprobe.nvidia $RPM_BUILD_ROOT/etc/modprobe.d/50-nvidia.conf
|
||||
mkdir -p %{buildroot}%{_libdir}/xorg/modules/updates/{fonts,input,linux,drivers,multimedia,extensions}
|
||||
install -m 644 $RPM_SOURCE_DIR/README.updates %{buildroot}%{_libdir}/xorg/modules/updates
|
||||
mkdir -p %{buildroot}%{_sysconfdir}/modprobe.d
|
||||
install -m 644 $RPM_SOURCE_DIR/modprobe.nvidia %{buildroot}%{_sysconfdir}/modprobe.d/50-nvidia.conf
|
||||
%else
|
||||
rm -f $RPM_BUILD_ROOT/usr/share/aclocal/*.m4
|
||||
rm -f %{buildroot}%{_datadir}/aclocal/*.m4
|
||||
%endif
|
||||
%if %vnc
|
||||
mkdir -p $RPM_BUILD_ROOT/etc/sysconfig/SuSEfirewall2.d/services
|
||||
cat > $RPM_BUILD_ROOT/etc/sysconfig/SuSEfirewall2.d/services/%{name} << EOF
|
||||
mkdir -p %{buildroot}%{_sysconfdir}/sysconfig/SuSEfirewall2.d/services
|
||||
cat > %{buildroot}%{_sysconfdir}/sysconfig/SuSEfirewall2.d/services/%{name} << EOF
|
||||
## Name: VNC Server
|
||||
## Description: Opens ports for VNC Server
|
||||
TCP="5801 5901"
|
||||
EOF
|
||||
%endif
|
||||
%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
|
||||
mkdir -p $RPM_BUILD_ROOT/usr/include/xorg \
|
||||
$RPM_BUILD_ROOT/usr/%{_lib}
|
||||
mkdir -p %{buildroot}%{_includedir}/xorg \
|
||||
%{buildroot}%{_libdir}
|
||||
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 \
|
||||
$RPM_BUILD_ROOT/usr/include/xorg
|
||||
%{buildroot}%{_includedir}/xorg
|
||||
if [ -f hw/xfree86/parser/.libs/libxf86config.a ] ; then
|
||||
install -m 644 hw/xfree86/parser/.libs/libxf86config.a \
|
||||
$RPM_BUILD_ROOT//usr/%{_lib}
|
||||
%{buildroot}//usr/%{_lib}
|
||||
else
|
||||
install -m 644 hw/xfree86/parser/libxf86config.a \
|
||||
$RPM_BUILD_ROOT//usr/%{_lib}
|
||||
%{buildroot}//usr/%{_lib}
|
||||
fi
|
||||
%endif
|
||||
%ifnarch s390 s390x
|
||||
mkdir -p %buildroot/var/adm/fillup-templates
|
||||
mkdir -p %{buildroot}%{_localstatedir}/adm/fillup-templates
|
||||
install -m 644 %_sourcedir/sysconfig.displaymanager.template \
|
||||
%buildroot/var/adm/fillup-templates/sysconfig.displaymanager-%name
|
||||
%{buildroot}%{_localstatedir}/adm/fillup-templates/sysconfig.displaymanager-%{name}
|
||||
%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
|
||||
%verifyscript
|
||||
@ -403,80 +448,75 @@ exit 0
|
||||
%files
|
||||
%defattr(-,root,root)
|
||||
%ifnarch s390 s390x
|
||||
%if %suse_version > 1120
|
||||
%dir /etc/X11/xorg.conf.d
|
||||
%config(noreplace) /etc/X11/xorg.conf.d/10-evdev.conf
|
||||
%if 0%{?suse_version} > 1120
|
||||
%dir %{_sysconfdir}/X11/xorg.conf.d
|
||||
%config(noreplace) %{_sysconfdir}/X11/xorg.conf.d/10-evdev.conf
|
||||
%dir %{_datadir}/X11/xorg.conf.d
|
||||
%{_datadir}/X11/xorg.conf.d/10-evdev.conf
|
||||
%endif
|
||||
%dir /etc/modprobe.d
|
||||
%dir /var/lib/X11
|
||||
%dir %{_sysconfdir}/modprobe.d
|
||||
%dir %{_localstatedir}/lib/X11
|
||||
%endif
|
||||
%dir /var/lib/xkb
|
||||
%dir /var/lib/xkb/compiled
|
||||
%dir /usr/%{_lib}/xorg
|
||||
/usr/%{_lib}/xorg/protocol.txt
|
||||
%dir %{_localstatedir}/lib/xkb
|
||||
%dir %{_localstatedir}/lib/xkb/compiled
|
||||
%dir %{_libdir}/xorg
|
||||
%{_libdir}/xorg/protocol.txt
|
||||
%{_mandir}/man1/*
|
||||
%{_mandir}/man7/*
|
||||
%doc %{_datadir}/doc/xorg-docs/
|
||||
%exclude %{_mandir}/man1/Xdmx.1*
|
||||
%exclude %{_mandir}/man1/Xephyr.1*
|
||||
%exclude %{_mandir}/man1/Xnest.1*
|
||||
%exclude %{_mandir}/man7/Standards.7*
|
||||
%exclude %{_mandir}/man7/Consortium.7*
|
||||
%exclude %{_mandir}/man7/XProjectTeam.7*
|
||||
%exclude %{_mandir}/man7/XOrgFoundation.7*
|
||||
/var/lib/xkb/compiled/README.compiled
|
||||
%{_localstatedir}/lib/xkb/compiled/README.compiled
|
||||
%ifnarch s390 s390x
|
||||
/etc/modprobe.d/50-nvidia.conf
|
||||
%verify(not mode) /usr/bin/Xorg
|
||||
/usr/bin/X
|
||||
/usr/bin/cvt
|
||||
/usr/bin/gtf
|
||||
/usr/%{_lib}/xorg/modules/
|
||||
%{_sysconfdir}/modprobe.d/50-nvidia.conf
|
||||
%verify(not mode) %{_bindir}/Xorg
|
||||
%{_bindir}/X
|
||||
%{_bindir}/cvt
|
||||
%{_bindir}/gtf
|
||||
%{_libdir}/xorg/modules/
|
||||
%{_mandir}/man4/*
|
||||
%{_mandir}/man5/*
|
||||
/var/adm/fillup-templates/sysconfig.displaymanager-%name
|
||||
/var/lib/X11/X
|
||||
%{_localstatedir}/adm/fillup-templates/sysconfig.displaymanager-%{name}
|
||||
%{_localstatedir}/lib/X11/X
|
||||
%endif
|
||||
/usr/bin/Xvfb
|
||||
/usr/bin/xorg-backtrace
|
||||
%{_bindir}/Xvfb
|
||||
%{_bindir}/xorg-backtrace
|
||||
|
||||
%files extra
|
||||
%defattr(-,root,root)
|
||||
/usr/bin/Xephyr
|
||||
/usr/bin/Xnest
|
||||
/usr/bin/Xdmx
|
||||
/usr/bin/dmxaddinput
|
||||
/usr/bin/dmxaddscreen
|
||||
/usr/bin/dmxinfo
|
||||
/usr/bin/dmxreconfig
|
||||
/usr/bin/dmxresize
|
||||
/usr/bin/dmxrminput
|
||||
/usr/bin/dmxrmscreen
|
||||
/usr/bin/dmxtodmx
|
||||
/usr/bin/dmxwininfo
|
||||
/usr/bin/vdltodmx
|
||||
/usr/bin/xdmxconfig
|
||||
%{_bindir}/Xephyr
|
||||
%{_bindir}/Xnest
|
||||
%{_bindir}/Xdmx
|
||||
%{_bindir}/dmxaddinput
|
||||
%{_bindir}/dmxaddscreen
|
||||
%{_bindir}/dmxinfo
|
||||
%{_bindir}/dmxreconfig
|
||||
%{_bindir}/dmxresize
|
||||
%{_bindir}/dmxrminput
|
||||
%{_bindir}/dmxrmscreen
|
||||
%{_bindir}/dmxtodmx
|
||||
%{_bindir}/dmxwininfo
|
||||
%{_bindir}/vdltodmx
|
||||
%{_bindir}/xdmxconfig
|
||||
%{_mandir}/man1/Xdmx.1*
|
||||
%{_mandir}/man1/Xephyr.1*
|
||||
%{_mandir}/man1/Xnest.1*
|
||||
|
||||
%files sdk
|
||||
%defattr(-,root,root)
|
||||
/usr/include/xorg/
|
||||
/usr/%{_lib}/*.a
|
||||
%{_includedir}/xorg/
|
||||
%{_libdir}/*.a
|
||||
%ifnarch s390 s390x
|
||||
%exclude /usr/%{_lib}/libxf86config.la
|
||||
/usr/%{_lib}/pkgconfig/*.pc
|
||||
/usr/share/aclocal/*.m4
|
||||
%exclude %{_libdir}/libxf86config.la
|
||||
%{_libdir}/pkgconfig/*.pc
|
||||
%{_datadir}/aclocal/*.m4
|
||||
%endif
|
||||
%{_sysconfdir}/rpm/macros.xorg-server
|
||||
%if %vnc
|
||||
|
||||
%files -n xorg-x11-Xvnc
|
||||
%defattr(-, root, root)
|
||||
/etc/sysconfig/SuSEfirewall2.d/services/%{name}
|
||||
/usr/bin/Xvnc
|
||||
%{_sysconfdir}/sysconfig/SuSEfirewall2.d/services/%{name}
|
||||
%{_bindir}/Xvnc
|
||||
%endif
|
||||
|
||||
%changelog
|
||||
|
@ -1,8 +1,8 @@
|
||||
Index: xorg-server-1.6.3.901/hw/xfree86/common/xf86Config.c
|
||||
================================================================================
|
||||
--- xorg-server-1.7.99/hw/xfree86/common/xf86Config.c
|
||||
+++ xorg-server-1.7.99/hw/xfree86/common/xf86Config.c
|
||||
@@ -696,6 +696,7 @@
|
||||
Index: xorg-server-1.12.1/hw/xfree86/common/xf86Config.c
|
||||
===================================================================
|
||||
--- xorg-server-1.12.1.orig/hw/xfree86/common/xf86Config.c
|
||||
+++ xorg-server-1.12.1/hw/xfree86/common/xf86Config.c
|
||||
@@ -685,6 +685,7 @@ typedef enum {
|
||||
FLAG_NOTRAPSIGNALS,
|
||||
FLAG_DONTVTSWITCH,
|
||||
FLAG_DONTZAP,
|
||||
@ -10,16 +10,16 @@ Index: xorg-server-1.6.3.901/hw/xfree86/common/xf86Config.c
|
||||
FLAG_DONTZOOM,
|
||||
FLAG_DISABLEVIDMODE,
|
||||
FLAG_ALLOWNONLOCAL,
|
||||
@@ -734,6 +735,8 @@
|
||||
{0}, FALSE },
|
||||
{ FLAG_DONTZAP, "DontZap", OPTV_BOOLEAN,
|
||||
{0}, FALSE },
|
||||
+ { FLAG_ZAPWARNING, "ZapWarning", OPTV_BOOLEAN,
|
||||
+ {0}, FALSE },
|
||||
{ FLAG_DONTZOOM, "DontZoom", OPTV_BOOLEAN,
|
||||
{0}, FALSE },
|
||||
{ FLAG_DISABLEVIDMODE, "DisableVidModeExtension", OPTV_BOOLEAN,
|
||||
@@ -840,6 +843,7 @@
|
||||
@@ -721,6 +722,8 @@ static OptionInfoRec FlagOptions[] = {
|
||||
{0}, FALSE},
|
||||
{FLAG_DONTZAP, "DontZap", OPTV_BOOLEAN,
|
||||
{0}, FALSE},
|
||||
+ { FLAG_ZAPWARNING, "ZapWarning", OPTV_BOOLEAN,
|
||||
+ {0}, FALSE },
|
||||
{FLAG_DONTZOOM, "DontZoom", OPTV_BOOLEAN,
|
||||
{0}, FALSE},
|
||||
{FLAG_DISABLEVIDMODE, "DisableVidModeExtension", OPTV_BOOLEAN,
|
||||
@@ -807,6 +810,7 @@ configServerFlags(XF86ConfFlagsPtr flags
|
||||
xf86GetOptValBool(FlagOptions, FLAG_NOTRAPSIGNALS, &xf86Info.notrapSignals);
|
||||
xf86GetOptValBool(FlagOptions, FLAG_DONTVTSWITCH, &xf86Info.dontVTSwitch);
|
||||
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_IGNORE_ABI, &xf86Info.ignoreABI);
|
||||
--- xorg-server-1.7.99/hw/xfree86/common/xf86Events.c
|
||||
+++ xorg-server-1.7.99/hw/xfree86/common/xf86Events.c
|
||||
@@ -180,12 +180,26 @@
|
||||
Index: xorg-server-1.12.1/hw/xfree86/common/xf86Events.c
|
||||
===================================================================
|
||||
--- 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);
|
||||
switch (action) {
|
||||
case ACTION_TERMINATE:
|
||||
- if (!xf86Info.dontZap) {
|
||||
+ if (xf86Info.dontZap)
|
||||
+ break;
|
||||
- if (!xf86Info.dontZap) {
|
||||
+ if (xf86Info.dontZap)
|
||||
+ break;
|
||||
+
|
||||
+ if (xf86Info.ZapWarning) {
|
||||
+ static struct timeval LastZap = { 0, 0};
|
||||
+ struct timeval NewZap;
|
||||
+ if (xf86Info.ZapWarning) {
|
||||
+ static struct timeval LastZap = { 0, 0};
|
||||
+ struct timeval NewZap;
|
||||
+
|
||||
+ gettimeofday(&NewZap, NULL);
|
||||
+ gettimeofday(&NewZap, NULL);
|
||||
+
|
||||
+ if ((NewZap.tv_sec - LastZap.tv_sec) >= 2) {
|
||||
+ xf86OSRingBell(30, 1000, 50);
|
||||
+ LastZap = NewZap;
|
||||
+ break;
|
||||
+ }
|
||||
+ if ((NewZap.tv_sec - LastZap.tv_sec) >= 2) {
|
||||
+ xf86OSRingBell(30, 1000, 50);
|
||||
+ LastZap = NewZap;
|
||||
+ break;
|
||||
+ }
|
||||
+ }
|
||||
+
|
||||
#ifdef XFreeXDGA
|
||||
- DGAShutdown();
|
||||
+ DGAShutdown();
|
||||
- DGAShutdown();
|
||||
+ DGAShutdown();
|
||||
#endif
|
||||
- GiveUp(0);
|
||||
- }
|
||||
+ GiveUp(0);
|
||||
break;
|
||||
- GiveUp(0);
|
||||
- }
|
||||
+ GiveUp(0);
|
||||
break;
|
||||
case ACTION_NEXT_MODE:
|
||||
if (!xf86Info.dontZoom)
|
||||
--- xorg-server-1.7.99/hw/xfree86/common/xf86Globals.c
|
||||
+++ xorg-server-1.7.99/hw/xfree86/common/xf86Globals.c
|
||||
@@ -109,6 +109,7 @@
|
||||
#endif
|
||||
.dontVTSwitch = FALSE,
|
||||
.dontZap = FALSE,
|
||||
+ .ZapWarning = TRUE,
|
||||
.dontZoom = FALSE,
|
||||
.notrapSignals = FALSE,
|
||||
.caughtSignal = FALSE,
|
||||
--- xorg-server-1.7.99/hw/xfree86/common/xf86Privstr.h
|
||||
+++ xorg-server-1.7.99/hw/xfree86/common/xf86Privstr.h
|
||||
@@ -67,6 +67,7 @@
|
||||
#endif
|
||||
Bool dontVTSwitch;
|
||||
Bool dontZap;
|
||||
+ Bool ZapWarning;
|
||||
Bool dontZoom;
|
||||
Bool notrapSignals; /* don't exit cleanly - die at fault */
|
||||
Bool caughtSignal;
|
||||
--- xorg-server-1.7.99/hw/xfree86/doc/man/Xorg.man
|
||||
+++ xorg-server-1.7.99/hw/xfree86/doc/man/Xorg.man
|
||||
@@ -438,7 +438,7 @@
|
||||
.B Ctrl+Alt+Backspace
|
||||
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
|
||||
if (!xf86Info.dontZoom)
|
||||
Index: xorg-server-1.12.1/hw/xfree86/common/xf86Globals.c
|
||||
===================================================================
|
||||
--- xorg-server-1.12.1.orig/hw/xfree86/common/xf86Globals.c
|
||||
+++ xorg-server-1.12.1/hw/xfree86/common/xf86Globals.c
|
||||
@@ -104,6 +104,7 @@ xf86InfoRec xf86Info = {
|
||||
.autoVTSwitch = TRUE,
|
||||
.ShareVTs = FALSE,
|
||||
.dontZap = FALSE,
|
||||
+ .ZapWarning = TRUE,
|
||||
.dontZoom = FALSE,
|
||||
.notrapSignals = FALSE,
|
||||
.caughtSignal = FALSE,
|
||||
Index: xorg-server-1.12.1/hw/xfree86/common/xf86Privstr.h
|
||||
===================================================================
|
||||
--- xorg-server-1.12.1.orig/hw/xfree86/common/xf86Privstr.h
|
||||
+++ xorg-server-1.12.1/hw/xfree86/common/xf86Privstr.h
|
||||
@@ -68,6 +68,7 @@ typedef struct {
|
||||
Bool autoVTSwitch;
|
||||
Bool ShareVTs;
|
||||
Bool dontZap;
|
||||
+ Bool ZapWarning;
|
||||
Bool dontZoom;
|
||||
Bool notrapSignals; /* don't exit cleanly - die at fault */
|
||||
Bool caughtSignal;
|
||||
|
Loading…
Reference in New Issue
Block a user