xserver 1.14.99.3
- xwayland branch refresh - Drop some F17-era Obsoletes - Update BuildReqs to match reality
This commit is contained in:
parent
b1203a2530
commit
973c76f74d
@ -1,20 +1,18 @@
|
||||
From a309d8f77319e88df9efa0fd2b2cdf0bc0ad7f0f Mon Sep 17 00:00:00 2001
|
||||
From 2612287a97242623355fe3f17796d52b3e3f970e Mon Sep 17 00:00:00 2001
|
||||
From: Adam Jackson <ajax@redhat.com>
|
||||
Date: Wed, 15 Aug 2012 12:35:21 -0400
|
||||
Subject: [PATCH] Always install vbe and int10 sdk headers
|
||||
|
||||
Signed-off-by: Adam Jackson <ajax@redhat.com>
|
||||
---
|
||||
hw/xfree86/Makefile.am | 12 ++----------
|
||||
hw/xfree86/int10/Makefile.am | 8 ++++++--
|
||||
hw/xfree86/vbe/Makefile.am | 2 ++
|
||||
3 files changed, 10 insertions(+), 12 deletions(-)
|
||||
hw/xfree86/Makefile.am | 12 ++----------
|
||||
1 file changed, 2 insertions(+), 10 deletions(-)
|
||||
|
||||
diff --git a/hw/xfree86/Makefile.am b/hw/xfree86/Makefile.am
|
||||
index c3899b5..f190b40 100644
|
||||
index 38fb0c1..46e74bf 100644
|
||||
--- a/hw/xfree86/Makefile.am
|
||||
+++ b/hw/xfree86/Makefile.am
|
||||
@@ -17,17 +17,9 @@ if VGAHW
|
||||
@@ -21,17 +21,9 @@ if VGAHW
|
||||
VGAHW_SUBDIR = vgahw
|
||||
endif
|
||||
|
||||
@ -29,50 +27,11 @@ index c3899b5..f190b40 100644
|
||||
-SUBDIRS = common ddc x86emu $(INT10_SUBDIR) os-support parser \
|
||||
+SUBDIRS = common ddc x86emu int10 os-support parser \
|
||||
ramdac $(VGAHW_SUBDIR) loader modes $(DRI_SUBDIR) \
|
||||
- $(DRI2_SUBDIR) . $(VBE_SUBDIR) i2c dixmods \
|
||||
+ $(DRI2_SUBDIR) . vbe i2c dixmods \
|
||||
- $(DRI2_SUBDIR) $(WAYLAND_SUBDIR) . $(VBE_SUBDIR) i2c dixmods \
|
||||
+ $(DRI2_SUBDIR) $(WAYLAND_SUBDIR) . vbe i2c dixmods \
|
||||
fbdevhw shadowfb exa $(XF86UTILS_SUBDIR) doc man
|
||||
|
||||
DIST_SUBDIRS = common ddc i2c x86emu int10 fbdevhw os-support \
|
||||
diff --git a/hw/xfree86/int10/Makefile.am b/hw/xfree86/int10/Makefile.am
|
||||
index f5ece69..9afad2f 100644
|
||||
--- a/hw/xfree86/int10/Makefile.am
|
||||
+++ b/hw/xfree86/int10/Makefile.am
|
||||
@@ -1,7 +1,9 @@
|
||||
-module_LTLIBRARIES = libint10.la
|
||||
-
|
||||
sdk_HEADERS = xf86int10.h
|
||||
|
||||
+if INT10MODULE
|
||||
+
|
||||
+module_LTLIBRARIES = libint10.la
|
||||
+
|
||||
EXTRA_CFLAGS =
|
||||
|
||||
libint10_la_LDFLAGS = -avoid-version
|
||||
@@ -43,4 +45,6 @@ INCLUDES = $(XORG_INCS)
|
||||
libint10_la_SOURCES = stub.c xf86int10module.c
|
||||
endif
|
||||
|
||||
+endif
|
||||
+
|
||||
EXTRA_DIST = xf86x86emu.h INT10.HOWTO
|
||||
diff --git a/hw/xfree86/vbe/Makefile.am b/hw/xfree86/vbe/Makefile.am
|
||||
index 0b24faf..f0a9831 100644
|
||||
--- a/hw/xfree86/vbe/Makefile.am
|
||||
+++ b/hw/xfree86/vbe/Makefile.am
|
||||
@@ -1,9 +1,11 @@
|
||||
+if VBE
|
||||
module_LTLIBRARIES = libvbe.la
|
||||
libvbe_la_LDFLAGS = -module -avoid-version $(LD_NO_UNDEFINED_FLAG)
|
||||
libvbe_la_SOURCES = vbe.c vbeModes.c vbe_module.c
|
||||
if NO_UNDEFINED
|
||||
libvbe_la_LIBADD = ../int10/libint10.la
|
||||
endif
|
||||
+endif
|
||||
|
||||
sdk_HEADERS = vbe.h vbeModes.h
|
||||
|
||||
--
|
||||
1.7.7.6
|
||||
1.8.3.1
|
||||
|
||||
|
@ -1,7 +1,7 @@
|
||||
From 33cd04abaa651e90537cc15a1c743f35f8eebce6 Mon Sep 17 00:00:00 2001
|
||||
From 7bd95101b4a0f39f10d3ed455749a268bf37f967 Mon Sep 17 00:00:00 2001
|
||||
From: Robert Bragg <robert@linux.intel.com>
|
||||
Date: Thu, 12 Jan 2012 18:16:08 +0000
|
||||
Subject: [PATCH 01/30] dbe: Cleanup in CloseScreen hook not ext CloseDown
|
||||
Subject: [PATCH 01/39] dbe: Cleanup in CloseScreen hook not ext CloseDown
|
||||
|
||||
Instead of registering an extension CloseDownProc when adding the dbe
|
||||
extension this patch hooks into pScreen->CloseScreen so that the chain
|
||||
@ -13,15 +13,15 @@ pScreen->DestroyWindow would clobber the chain of callbacks.
|
||||
This is needed for xwayland to be able to know when the root window is
|
||||
destroyed so it can unredirect root sub-windows.
|
||||
---
|
||||
dbe/dbe.c | 43 ++++++++++++++++++++++---------------------
|
||||
dbe/dbe.c | 41 +++++++++++++++++++++--------------------
|
||||
dbe/dbestruct.h | 1 +
|
||||
2 files changed, 23 insertions(+), 21 deletions(-)
|
||||
2 files changed, 22 insertions(+), 20 deletions(-)
|
||||
|
||||
diff --git a/dbe/dbe.c b/dbe/dbe.c
|
||||
index 9039d80..379feb1 100644
|
||||
index 5524615..8d8bfb9 100644
|
||||
--- a/dbe/dbe.c
|
||||
+++ b/dbe/dbe.c
|
||||
@@ -292,8 +292,8 @@ ProcDbeAllocateBackBufferName(ClientPtr client)
|
||||
@@ -288,8 +288,8 @@ ProcDbeAllocateBackBufferName(ClientPtr client)
|
||||
|
||||
/* malloc/realloc a new array and initialize all elements to 0. */
|
||||
pDbeWindowPriv->IDs = (XID *) realloc(pIDs,
|
||||
@ -32,7 +32,7 @@ index 9039d80..379feb1 100644
|
||||
DBE_INCR_MAX_IDS) *
|
||||
sizeof(XID));
|
||||
if (!pDbeWindowPriv->IDs) {
|
||||
@@ -468,7 +468,7 @@ ProcDbeSwapBuffers(ClientPtr client)
|
||||
@@ -464,7 +464,7 @@ ProcDbeSwapBuffers(ClientPtr client)
|
||||
return BadAlloc;
|
||||
|
||||
/* Get to the swap info appended to the end of the request. */
|
||||
@ -41,7 +41,7 @@ index 9039d80..379feb1 100644
|
||||
|
||||
/* Allocate array to record swap information. */
|
||||
swapInfo = (DbeSwapInfoPtr) malloc(nStuff * sizeof(DbeSwapInfoRec));
|
||||
@@ -1298,7 +1298,7 @@ DbeWindowPrivDelete(pointer pDbeWinPriv, XID id)
|
||||
@@ -1230,7 +1230,7 @@ DbeWindowPrivDelete(pointer pDbeWinPriv, XID id)
|
||||
|
||||
/******************************************************************************
|
||||
*
|
||||
@ -50,7 +50,7 @@ index 9039d80..379feb1 100644
|
||||
*
|
||||
* Description:
|
||||
*
|
||||
@@ -1307,28 +1307,26 @@ DbeWindowPrivDelete(pointer pDbeWinPriv, XID id)
|
||||
@@ -1239,25 +1239,23 @@ DbeWindowPrivDelete(pointer pDbeWinPriv, XID id)
|
||||
* other tasks related to shutting down the extension.
|
||||
*
|
||||
*****************************************************************************/
|
||||
@ -74,16 +74,12 @@ index 9039d80..379feb1 100644
|
||||
- if (pDbeScreenPriv) {
|
||||
- /* Unwrap DestroyWindow, which was wrapped in DbeExtensionInit(). */
|
||||
- pScreen->DestroyWindow = pDbeScreenPriv->DestroyWindow;
|
||||
+ /* Unwrap CloseScreen, which was wrapped in DbeExtensionInit(). */
|
||||
+ pScreen->CloseScreen = pDbeScreenPriv->CloseScreen;
|
||||
|
||||
- if (pDbeScreenPriv->ResetProc)
|
||||
- (*pDbeScreenPriv->ResetProc) (pScreen);
|
||||
+ if (pDbeScreenPriv->ResetProc)
|
||||
+ (*pDbeScreenPriv->ResetProc) (pScreen);
|
||||
|
||||
- pScreen->PositionWindow = pDbeScreenPriv->PositionWindow;
|
||||
- free(pDbeScreenPriv);
|
||||
- }
|
||||
+ /* Unwrap CloseScreen, which was wrapped in DbeExtensionInit(). */
|
||||
+ pScreen->CloseScreen = pDbeScreenPriv->CloseScreen;
|
||||
+
|
||||
+ free(pDbeScreenPriv);
|
||||
}
|
||||
-} /* DbeResetProc() */
|
||||
@ -93,7 +89,7 @@ index 9039d80..379feb1 100644
|
||||
|
||||
/******************************************************************************
|
||||
*
|
||||
@@ -1498,6 +1496,9 @@ DbeExtensionInit(void)
|
||||
@@ -1427,6 +1425,9 @@ DbeExtensionInit(void)
|
||||
|
||||
pDbeScreenPriv->DestroyWindow = pScreen->DestroyWindow;
|
||||
pScreen->DestroyWindow = DbeDestroyWindow;
|
||||
@ -103,7 +99,7 @@ index 9039d80..379feb1 100644
|
||||
}
|
||||
else {
|
||||
/* DDX initialization failed. Stub the screen. */
|
||||
@@ -1525,7 +1526,7 @@ DbeExtensionInit(void)
|
||||
@@ -1454,7 +1455,7 @@ DbeExtensionInit(void)
|
||||
/* Now add the extension. */
|
||||
extEntry = AddExtension(DBE_PROTOCOL_NAME, DbeNumberEvents,
|
||||
DbeNumberErrors, ProcDbeDispatch, SProcDbeDispatch,
|
||||
@ -113,10 +109,10 @@ index 9039d80..379feb1 100644
|
||||
dbeErrorBase = extEntry->errorBase;
|
||||
SetResourceTypeErrorValue(dbeWindowPrivResType,
|
||||
diff --git a/dbe/dbestruct.h b/dbe/dbestruct.h
|
||||
index f9d938a..4b88d25 100644
|
||||
index 2002066..7733d0e 100644
|
||||
--- a/dbe/dbestruct.h
|
||||
+++ b/dbe/dbestruct.h
|
||||
@@ -162,6 +162,7 @@ typedef struct _DbeScreenPrivRec {
|
||||
@@ -176,6 +176,7 @@ typedef struct _DbeScreenPrivRec {
|
||||
*/
|
||||
PositionWindowProcPtr PositionWindow;
|
||||
DestroyWindowProcPtr DestroyWindow;
|
||||
|
@ -1,151 +0,0 @@
|
||||
From 3aac7a59dc6ef2d8bbf46ba5d37acdf6013e9450 Mon Sep 17 00:00:00 2001
|
||||
From: Daniel Martin <daniel.martin@secunet.com>
|
||||
Date: Tue, 11 Dec 2012 17:23:55 +0100
|
||||
Subject: [PATCH] ephyr: Add -resizeable option
|
||||
|
||||
With this option passed, ephyr windows can be resized like normal
|
||||
windows on the fly, without the need of an explicit parent window.
|
||||
|
||||
Signed-off-by: Daniel Martin <daniel.martin@secunet.com>
|
||||
Reviewed-by: Peter Hutterer <peter.hutterer@who-t.net>
|
||||
Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
|
||||
---
|
||||
hw/kdrive/ephyr/ephyr.c | 1 +
|
||||
hw/kdrive/ephyr/ephyrinit.c | 6 ++++++
|
||||
hw/kdrive/ephyr/hostx.c | 32 +++++++++++++++++++++-----------
|
||||
3 files changed, 28 insertions(+), 11 deletions(-)
|
||||
|
||||
diff --git a/hw/kdrive/ephyr/ephyr.c b/hw/kdrive/ephyr/ephyr.c
|
||||
index e6520d0..f32e432 100644
|
||||
--- a/hw/kdrive/ephyr/ephyr.c
|
||||
+++ b/hw/kdrive/ephyr/ephyr.c
|
||||
@@ -56,6 +56,7 @@ typedef struct _EphyrInputPrivate {
|
||||
} EphyrKbdPrivate, EphyrPointerPrivate;
|
||||
|
||||
Bool EphyrWantGrayScale = 0;
|
||||
+Bool EphyrWantResize = 0;
|
||||
|
||||
Bool
|
||||
ephyrInitialize(KdCardInfo * card, EphyrPriv * priv)
|
||||
diff --git a/hw/kdrive/ephyr/ephyrinit.c b/hw/kdrive/ephyr/ephyrinit.c
|
||||
index 5e2eb67..adacac9 100644
|
||||
--- a/hw/kdrive/ephyr/ephyrinit.c
|
||||
+++ b/hw/kdrive/ephyr/ephyrinit.c
|
||||
@@ -31,6 +31,7 @@
|
||||
|
||||
extern Window EphyrPreExistingHostWin;
|
||||
extern Bool EphyrWantGrayScale;
|
||||
+extern Bool EphyrWantResize;
|
||||
extern Bool kdHasPointer;
|
||||
extern Bool kdHasKbd;
|
||||
|
||||
@@ -116,6 +117,7 @@ ddxUseMsg(void)
|
||||
ErrorF("-host-cursor Re-use exisiting X host server cursor\n");
|
||||
ErrorF("-fullscreen Attempt to run Xephyr fullscreen\n");
|
||||
ErrorF("-grayscale Simulate 8bit grayscale\n");
|
||||
+ ErrorF("-resizeable Make Xephyr windows resizeable\n");
|
||||
ErrorF
|
||||
("-fakexa Simulate acceleration using software rendering\n");
|
||||
ErrorF("-verbosity <level> Set log verbosity level\n");
|
||||
@@ -210,6 +212,10 @@ ddxProcessArgument(int argc, char **argv, int i)
|
||||
EphyrWantGrayScale = 1;
|
||||
return 1;
|
||||
}
|
||||
+ else if (!strcmp(argv[i], "-resizeable")) {
|
||||
+ EphyrWantResize = 1;
|
||||
+ return 1;
|
||||
+ }
|
||||
else if (!strcmp(argv[i], "-fakexa")) {
|
||||
ephyrFuncs.initAccel = ephyrDrawInit;
|
||||
ephyrFuncs.enableAccel = ephyrDrawEnable;
|
||||
diff --git a/hw/kdrive/ephyr/hostx.c b/hw/kdrive/ephyr/hostx.c
|
||||
index aed0285..c8642cb 100644
|
||||
--- a/hw/kdrive/ephyr/hostx.c
|
||||
+++ b/hw/kdrive/ephyr/hostx.c
|
||||
@@ -117,6 +117,8 @@ extern EphyrKeySyms ephyrKeySyms;
|
||||
|
||||
extern int monitorResolution;
|
||||
|
||||
+extern Bool EphyrWantResize;
|
||||
+
|
||||
char *ephyrResName = NULL;
|
||||
int ephyrResNameFromCmd = 0;
|
||||
char *ephyrTitle = NULL;
|
||||
@@ -697,7 +699,7 @@ hostx_screen_init(EphyrScreenInfo screen,
|
||||
XResizeWindow(HostX.dpy, host_screen->win, width, height);
|
||||
|
||||
/* Ask the WM to keep our size static */
|
||||
- if (host_screen->win_pre_existing == None) {
|
||||
+ if (host_screen->win_pre_existing == None && !EphyrWantResize) {
|
||||
size_hints = XAllocSizeHints();
|
||||
size_hints->max_width = size_hints->min_width = width;
|
||||
size_hints->max_height = size_hints->min_height = height;
|
||||
@@ -1012,19 +1014,27 @@ hostx_get_event(EphyrHostXEvent * ev)
|
||||
|
||||
case ConfigureNotify:
|
||||
{
|
||||
- struct EphyrHostScreen *host_screen =
|
||||
- host_screen_from_window(xev.xconfigure.window);
|
||||
+ struct EphyrHostScreen *host_screen;
|
||||
|
||||
- if (host_screen && host_screen->win_pre_existing != None) {
|
||||
- ev->type = EPHYR_EV_CONFIGURE;
|
||||
- ev->data.configure.width = xev.xconfigure.width;
|
||||
- ev->data.configure.height = xev.xconfigure.height;
|
||||
- ev->data.configure.window = xev.xconfigure.window;
|
||||
- ev->data.configure.screen = host_screen->mynum;
|
||||
- return 1;
|
||||
+ /* event compression as for Expose events, cause
|
||||
+ * we don't want to resize the framebuffer for
|
||||
+ * every single change */
|
||||
+ while (XCheckTypedWindowEvent(HostX.dpy, xev.xconfigure.window,
|
||||
+ ConfigureNotify, &xev));
|
||||
+ host_screen = host_screen_from_window(xev.xconfigure.window);
|
||||
+
|
||||
+ if (!host_screen ||
|
||||
+ (host_screen->win_pre_existing == None && !EphyrWantResize)) {
|
||||
+ return 0;
|
||||
}
|
||||
|
||||
- return 0;
|
||||
+ ev->type = EPHYR_EV_CONFIGURE;
|
||||
+ ev->data.configure.width = xev.xconfigure.width;
|
||||
+ ev->data.configure.height = xev.xconfigure.height;
|
||||
+ ev->data.configure.window = xev.xconfigure.window;
|
||||
+ ev->data.configure.screen = host_screen->mynum;
|
||||
+
|
||||
+ return 1;
|
||||
}
|
||||
default:
|
||||
break;
|
||||
--
|
||||
1.8.2.1
|
||||
|
||||
From 49521edaf8930b335afac2185209e26e7000820b Mon Sep 17 00:00:00 2001
|
||||
From: Peter Hutterer <peter.hutterer@who-t.net>
|
||||
Date: Wed, 15 May 2013 08:51:51 +1000
|
||||
Subject: [PATCH] ephyr: add -resizeable to the man page
|
||||
|
||||
Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
|
||||
Reviewed-by: Alan Coopersmith <alan.coopersmith@oracle.com>
|
||||
---
|
||||
hw/kdrive/ephyr/man/Xephyr.man | 4 ++++
|
||||
1 file changed, 4 insertions(+)
|
||||
|
||||
diff --git a/hw/kdrive/ephyr/man/Xephyr.man b/hw/kdrive/ephyr/man/Xephyr.man
|
||||
index 792511b..f14f6c8 100644
|
||||
--- a/hw/kdrive/ephyr/man/Xephyr.man
|
||||
+++ b/hw/kdrive/ephyr/man/Xephyr.man
|
||||
@@ -59,6 +59,10 @@ set 'cursor acceleration':
|
||||
The host's cursor is reused. This is only really there to aid
|
||||
debugging by avoiding server paints for the cursor. Performance
|
||||
improvement is negligible.
|
||||
+.TP 8
|
||||
+.B -resizeable
|
||||
+Allow the Xephyr window to be resized, even if not embedded into a parent
|
||||
+window. By default, the Xephyr window has a fixed size.
|
||||
.SH "SIGNALS"
|
||||
Send a SIGUSR1 to the server (e.g. pkill -USR1 Xephyr) to
|
||||
toggle the debugging mode.
|
||||
--
|
||||
1.8.2.1
|
@ -1,204 +0,0 @@
|
||||
From e21e183059df5975e7086850d1931edb2c1bbd06 Mon Sep 17 00:00:00 2001
|
||||
From: Marcin Slusarz <marcin.slusarz@gmail.com>
|
||||
Date: Thu, 21 Feb 2013 09:02:44 +1000
|
||||
Subject: [PATCH] os: use libunwind to generate backtraces
|
||||
|
||||
Libunwind generates backtraces much more reliably than glibc's "backtrace".
|
||||
|
||||
Before:
|
||||
0: /opt/xserver/bin/X (0x400000+0x18ce36) [0x58ce36]
|
||||
1: /opt/xserver/bin/X (xorg_backtrace+0x9) [0x58d119]
|
||||
2: /opt/xserver/bin/X (0x400000+0x190d69) [0x590d69]
|
||||
3: /lib64/libpthread.so.0 (0x7fb904268000+0x10a90) [0x7fb904278a90]
|
||||
4: /lib64/libc.so.6 (ioctl+0x7) [0x7fb902fbf987]
|
||||
5: /usr/lib64/libdrm.so.2 (drmIoctl+0x28) [0x7fb90405ffa8]
|
||||
6: /usr/lib64/libdrm.so.2 (drmCommandWrite+0x1b) [0x7fb90406235b]
|
||||
7: /usr/lib64/libdrm_nouveau.so.2 (nouveau_bo_wait+0x89) [0x7fb902009719]
|
||||
8: /opt/xserver/lib/xorg/modules/drivers/nouveau_drv.so (0x7fb90220e000+0x76f3) [0x7fb9022156f3]
|
||||
9: /opt/xserver/lib/xorg/modules/libexa.so (0x7fb9019c7000+0xbae0) [0x7fb9019d2ae0]
|
||||
10: /opt/xserver/bin/X (0x400000+0x17d2b3) [0x57d2b3]
|
||||
11: /opt/xserver/bin/X (0x400000+0xc9930) [0x4c9930]
|
||||
12: /opt/xserver/bin/X (0x400000+0x3a81a) [0x43a81a]
|
||||
13: /opt/xserver/bin/X (0x400000+0x3d6a1) [0x43d6a1]
|
||||
14: /opt/xserver/bin/X (0x400000+0x2c2ca) [0x42c2ca]
|
||||
15: /lib64/libc.so.6 (__libc_start_main+0xf5) [0x7fb902f019b5]
|
||||
16: /opt/xserver/bin/X (0x400000+0x2c60d) [0x42c60d]
|
||||
17: ?? [0x0]
|
||||
|
||||
After:
|
||||
0: /opt/xserver/bin/X (OsSigHandler+0x39) [0x590d69]
|
||||
1: /lib64/libpthread.so.0 (__restore_rt+0x0) [0x7fb904278a8f]
|
||||
2: /lib64/libc.so.6 (ioctl+0x7) [0x7fb902fbf987]
|
||||
3: /usr/lib64/libdrm.so.2 (drmIoctl+0x28) [0x7fb90405ffa8]
|
||||
4: /usr/lib64/libdrm.so.2 (drmCommandWrite+0x1b) [0x7fb90406235b]
|
||||
5: /usr/lib64/libdrm_nouveau.so.2 (nouveau_bo_wait+0x89) [0x7fb902009719]
|
||||
6: /opt/xserver/lib/xorg/modules/drivers/nouveau_drv.so (nouveau_exa_download_from_screen+0x1a3) [0x7fb9022156f3]
|
||||
7: /opt/xserver/lib/xorg/modules/libexa.so (exaGetImage+0x1f0) [0x7fb9019d2ae0]
|
||||
8: /opt/xserver/bin/X (miSpriteGetImage+0x173) [0x57d2b3]
|
||||
9: /opt/xserver/bin/X (compGetImage+0xb0) [0x4c9930]
|
||||
10: /opt/xserver/bin/X (ProcGetImage+0x55a) [0x43a81a]
|
||||
11: /opt/xserver/bin/X (Dispatch+0x341) [0x43d6a1]
|
||||
12: /opt/xserver/bin/X (main+0x3ba) [0x42c2ca]
|
||||
13: /lib64/libc.so.6 (__libc_start_main+0xf5) [0x7fb902f019b5]
|
||||
14: /opt/xserver/bin/X (_start+0x29) [0x42c60d]
|
||||
15: ? (?+0x29) [0x29]
|
||||
|
||||
Signed-off-by: Marcin Slusarz <marcin.slusarz@gmail.com>
|
||||
Reviewed-by: Peter Hutterer <peter.hutterer@who-t.net>
|
||||
Tested-by: Knut Petersen <knut.petersen@t-online.de>
|
||||
---
|
||||
configure.ac | 9 +++++-
|
||||
include/dix-config.h.in | 3 ++
|
||||
os/Makefile.am | 5 ++++
|
||||
os/backtrace.c | 75 +++++++++++++++++++++++++++++++++++++++++++++++++
|
||||
4 files changed, 91 insertions(+), 1 deletion(-)
|
||||
|
||||
diff --git a/configure.ac b/configure.ac
|
||||
index 53335b1..8b9cbc9 100644
|
||||
--- a/configure.ac
|
||||
+++ b/configure.ac
|
||||
@@ -308,6 +308,13 @@ AC_CHECK_HEADER([execinfo.h],[
|
||||
])]
|
||||
)
|
||||
|
||||
+PKG_CHECK_MODULES(LIBUNWIND, libunwind, [HAVE_LIBUNWIND=yes], [HAVE_LIBUNWIND=no])
|
||||
+if test "x$HAVE_LIBUNWIND" = xyes; then
|
||||
+ AC_DEFINE(HAVE_LIBUNWIND, 1, [Have libunwind support])
|
||||
+fi
|
||||
+AM_CONDITIONAL(HAVE_LIBUNWIND, [test "x$HAVE_LIBUNWIND" = xyes])
|
||||
+
|
||||
+
|
||||
dnl ---------------------------------------------------------------------------
|
||||
dnl Bus options and CPU capabilities. Replaces logic in
|
||||
dnl hw/xfree86/os-support/bus/Makefile.am, among others.
|
||||
@@ -1336,7 +1343,7 @@ AC_DEFINE(BIGREQS, 1, [Support BigRequests extension])
|
||||
|
||||
if test "x$SPECIAL_DTRACE_OBJECTS" = "xyes" ; then
|
||||
DIX_LIB='$(top_builddir)/dix/dix.O'
|
||||
- OS_LIB='$(top_builddir)/os/os.O $(SHA1_LIBS) $(DLOPEN_LIBS)'
|
||||
+ OS_LIB='$(top_builddir)/os/os.O $(SHA1_LIBS) $(DLOPEN_LIBS) $(LIBUNWIND_LIBS)'
|
||||
else
|
||||
DIX_LIB='$(top_builddir)/dix/libdix.la'
|
||||
OS_LIB='$(top_builddir)/os/libos.la'
|
||||
diff --git a/include/dix-config.h.in b/include/dix-config.h.in
|
||||
index e1cb9eb..a643dfc 100644
|
||||
--- a/include/dix-config.h.in
|
||||
+++ b/include/dix-config.h.in
|
||||
@@ -60,6 +60,9 @@
|
||||
/* Has backtrace support */
|
||||
#undef HAVE_BACKTRACE
|
||||
|
||||
+/* Has libunwind support */
|
||||
+#undef HAVE_LIBUNWIND
|
||||
+
|
||||
/* Define to 1 if you have the <byteswap.h> header file. */
|
||||
#undef HAVE_BYTESWAP_H
|
||||
|
||||
diff --git a/os/Makefile.am b/os/Makefile.am
|
||||
index 8891485..364b6da 100644
|
||||
--- a/os/Makefile.am
|
||||
+++ b/os/Makefile.am
|
||||
@@ -34,6 +34,11 @@ if XDMCP
|
||||
libos_la_SOURCES += $(XDMCP_SRCS)
|
||||
endif
|
||||
|
||||
+if HAVE_LIBUNWIND
|
||||
+AM_CFLAGS += $(LIBUNWIND_CFLAGS)
|
||||
+libos_la_LIBADD += $(LIBUNWIND_LIBS)
|
||||
+endif
|
||||
+
|
||||
EXTRA_DIST = $(SECURERPC_SRCS) $(XDMCP_SRCS)
|
||||
|
||||
if SPECIAL_DTRACE_OBJECTS
|
||||
diff --git a/os/backtrace.c b/os/backtrace.c
|
||||
index daac60c..426f9b1 100644
|
||||
--- a/os/backtrace.c
|
||||
+++ b/os/backtrace.c
|
||||
@@ -30,6 +30,80 @@
|
||||
#include <errno.h>
|
||||
#include <string.h>
|
||||
|
||||
+#ifdef HAVE_LIBUNWIND
|
||||
+
|
||||
+#define UNW_LOCAL_ONLY
|
||||
+#include <libunwind.h>
|
||||
+
|
||||
+#ifndef _GNU_SOURCE
|
||||
+#define _GNU_SOURCE
|
||||
+#endif
|
||||
+#include <dlfcn.h>
|
||||
+
|
||||
+void
|
||||
+xorg_backtrace(void)
|
||||
+{
|
||||
+ unw_cursor_t cursor;
|
||||
+ unw_context_t context;
|
||||
+ unw_word_t off;
|
||||
+ unw_proc_info_t pip;
|
||||
+ int ret, i = 0;
|
||||
+ char procname[256];
|
||||
+ const char *filename;
|
||||
+ Dl_info dlinfo;
|
||||
+
|
||||
+ pip.unwind_info = NULL;
|
||||
+ ret = unw_getcontext(&context);
|
||||
+ if (ret) {
|
||||
+ ErrorFSigSafe("unw_getcontext failed: %s [%d]\n", unw_strerror(ret),
|
||||
+ ret);
|
||||
+ return;
|
||||
+ }
|
||||
+
|
||||
+ ret = unw_init_local(&cursor, &context);
|
||||
+ if (ret) {
|
||||
+ ErrorFSigSafe("unw_init_local failed: %s [%d]\n", unw_strerror(ret),
|
||||
+ ret);
|
||||
+ return;
|
||||
+ }
|
||||
+
|
||||
+ ErrorFSigSafe("\n");
|
||||
+ ErrorFSigSafe("Backtrace:\n");
|
||||
+ ret = unw_step(&cursor);
|
||||
+ while (ret > 0) {
|
||||
+ ret = unw_get_proc_info(&cursor, &pip);
|
||||
+ if (ret) {
|
||||
+ ErrorFSigSafe("unw_get_proc_info failed: %s [%d]\n",
|
||||
+ unw_strerror(ret), ret);
|
||||
+ break;
|
||||
+ }
|
||||
+
|
||||
+ ret = unw_get_proc_name(&cursor, procname, 256, &off);
|
||||
+ if (ret && ret != -UNW_ENOMEM) {
|
||||
+ if (ret != -UNW_EUNSPEC)
|
||||
+ ErrorFSigSafe("unw_get_proc_name failed: %s [%d]\n",
|
||||
+ unw_strerror(ret), ret);
|
||||
+ procname[0] = '?';
|
||||
+ procname[1] = 0;
|
||||
+ }
|
||||
+
|
||||
+ if (dladdr((void *)(pip.start_ip + off), &dlinfo) && dlinfo.dli_fname &&
|
||||
+ *dlinfo.dli_fname)
|
||||
+ filename = dlinfo.dli_fname;
|
||||
+ else
|
||||
+ filename = "?";
|
||||
+
|
||||
+ ErrorFSigSafe("%u: %s (%s%s+0x%x) [%p]\n", i++, filename, procname,
|
||||
+ ret == -UNW_ENOMEM ? "..." : "", (int)off,
|
||||
+ (void *)(pip.start_ip + off));
|
||||
+
|
||||
+ ret = unw_step(&cursor);
|
||||
+ if (ret < 0)
|
||||
+ ErrorFSigSafe("unw_step failed: %s [%d]\n", unw_strerror(ret), ret);
|
||||
+ }
|
||||
+ ErrorFSigSafe("\n");
|
||||
+}
|
||||
+#else /* HAVE_LIBUNWIND */
|
||||
#ifdef HAVE_BACKTRACE
|
||||
#ifndef _GNU_SOURCE
|
||||
#define _GNU_SOURCE
|
||||
@@ -246,3 +320,4 @@ xorg_backtrace(void)
|
||||
|
||||
#endif
|
||||
#endif
|
||||
+#endif
|
||||
--
|
||||
1.8.1.4
|
@ -1,167 +0,0 @@
|
||||
From ce3de2dcb1b3bd99a693c828278a416c245acc37 Mon Sep 17 00:00:00 2001
|
||||
From: Dave Airlie <airlied@redhat.com>
|
||||
Date: Wed, 9 Jan 2013 14:23:57 +1000
|
||||
Subject: [PATCH] randr upstream set changed fixes
|
||||
|
||||
Signed-off-by: Dave Airlie <airlied@redhat.com>
|
||||
---
|
||||
hw/xfree86/common/xf86platformBus.c | 3 ++-
|
||||
hw/xfree86/modes/xf86RandR12.c | 2 ++
|
||||
randr/randr.c | 24 +++++++++++++++++++++++-
|
||||
randr/randrstr.h | 4 ++++
|
||||
randr/rrcrtc.c | 2 +-
|
||||
randr/rrinfo.c | 2 +-
|
||||
randr/rroutput.c | 2 +-
|
||||
randr/rrscreen.c | 2 +-
|
||||
8 files changed, 35 insertions(+), 6 deletions(-)
|
||||
|
||||
diff --git a/hw/xfree86/common/xf86platformBus.c b/hw/xfree86/common/xf86platformBus.c
|
||||
index 9034dad..bcb65ff 100644
|
||||
--- a/hw/xfree86/common/xf86platformBus.c
|
||||
+++ b/hw/xfree86/common/xf86platformBus.c
|
||||
@@ -47,6 +47,7 @@
|
||||
#include "Pci.h"
|
||||
#include "xf86platformBus.h"
|
||||
|
||||
+#include "randrstr.h"
|
||||
int platformSlotClaimed;
|
||||
|
||||
int xf86_num_platform_devices;
|
||||
@@ -499,7 +500,7 @@ xf86platformRemoveDevice(int index)
|
||||
xf86UnclaimPlatformSlot(&xf86_platform_devices[index], NULL);
|
||||
|
||||
xf86_remove_platform_device(index);
|
||||
-
|
||||
+ RRTellChanged(xf86Screens[0]->pScreen);
|
||||
out:
|
||||
return;
|
||||
}
|
||||
diff --git a/hw/xfree86/modes/xf86RandR12.c b/hw/xfree86/modes/xf86RandR12.c
|
||||
index 01fc9c5..7f570cf 100644
|
||||
--- a/hw/xfree86/modes/xf86RandR12.c
|
||||
+++ b/hw/xfree86/modes/xf86RandR12.c
|
||||
@@ -1895,10 +1895,12 @@ xf86RandR14ProviderDestroy(ScreenPtr screen, RRProviderPtr provider)
|
||||
if (config->randr_provider->offload_sink) {
|
||||
DetachOffloadGPU(screen);
|
||||
config->randr_provider->offload_sink = NULL;
|
||||
+ RRSetChanged(screen);
|
||||
}
|
||||
else if (config->randr_provider->output_source) {
|
||||
DetachOutputGPU(screen);
|
||||
config->randr_provider->output_source = NULL;
|
||||
+ RRSetChanged(screen);
|
||||
}
|
||||
else if (screen->current_master)
|
||||
DetachUnboundGPU(screen);
|
||||
diff --git a/randr/randr.c b/randr/randr.c
|
||||
index f0decfc..cb6fce7 100644
|
||||
--- a/randr/randr.c
|
||||
+++ b/randr/randr.c
|
||||
@@ -464,6 +464,28 @@ TellChanged(WindowPtr pWin, pointer value)
|
||||
return WT_WALKCHILDREN;
|
||||
}
|
||||
|
||||
+void
|
||||
+RRSetChanged(ScreenPtr pScreen)
|
||||
+{
|
||||
+ /* set changed bits on the master screen only */
|
||||
+ ScreenPtr master;
|
||||
+ rrScrPriv(pScreen);
|
||||
+ rrScrPrivPtr mastersp;
|
||||
+
|
||||
+ if (pScreen->isGPU) {
|
||||
+ master = pScreen->current_master;
|
||||
+ if (!master)
|
||||
+ return;
|
||||
+ mastersp = rrGetScrPriv(master);
|
||||
+ }
|
||||
+ else {
|
||||
+ master = pScreen;
|
||||
+ mastersp = pScrPriv;
|
||||
+ }
|
||||
+
|
||||
+ mastersp->changed = TRUE;
|
||||
+}
|
||||
+
|
||||
/*
|
||||
* Something changed; send events and adjust pointer position
|
||||
*/
|
||||
@@ -484,7 +506,7 @@ RRTellChanged(ScreenPtr pScreen)
|
||||
mastersp = pScrPriv;
|
||||
}
|
||||
|
||||
- if (pScrPriv->changed) {
|
||||
+ if (mastersp->changed) {
|
||||
UpdateCurrentTimeIf();
|
||||
if (mastersp->configChanged) {
|
||||
mastersp->lastConfigTime = currentTime;
|
||||
diff --git a/randr/randrstr.h b/randr/randrstr.h
|
||||
index 2517479..2babfed 100644
|
||||
--- a/randr/randrstr.h
|
||||
+++ b/randr/randrstr.h
|
||||
@@ -486,6 +486,10 @@ extern _X_EXPORT void
|
||||
RRDeliverScreenEvent(ClientPtr client, WindowPtr pWin, ScreenPtr pScreen);
|
||||
|
||||
/* randr.c */
|
||||
+/* set a screen change on the primary screen */
|
||||
+extern _X_EXPORT void
|
||||
+RRSetChanged(ScreenPtr pScreen);
|
||||
+
|
||||
/*
|
||||
* Send all pending events
|
||||
*/
|
||||
diff --git a/randr/rrcrtc.c b/randr/rrcrtc.c
|
||||
index 6e2eca5..b3fb5bd 100644
|
||||
--- a/randr/rrcrtc.c
|
||||
+++ b/randr/rrcrtc.c
|
||||
@@ -39,7 +39,7 @@ RRCrtcChanged(RRCrtcPtr crtc, Bool layoutChanged)
|
||||
if (pScreen) {
|
||||
rrScrPriv(pScreen);
|
||||
|
||||
- pScrPriv->changed = TRUE;
|
||||
+ RRSetChanged(pScreen);
|
||||
/*
|
||||
* Send ConfigureNotify on any layout change
|
||||
*/
|
||||
diff --git a/randr/rrinfo.c b/randr/rrinfo.c
|
||||
index 1408d6f..fc57bd4 100644
|
||||
--- a/randr/rrinfo.c
|
||||
+++ b/randr/rrinfo.c
|
||||
@@ -225,7 +225,7 @@ RRScreenSetSizeRange(ScreenPtr pScreen,
|
||||
pScrPriv->minHeight = minHeight;
|
||||
pScrPriv->maxWidth = maxWidth;
|
||||
pScrPriv->maxHeight = maxHeight;
|
||||
- pScrPriv->changed = TRUE;
|
||||
+ RRSetChanged(pScreen);
|
||||
pScrPriv->configChanged = TRUE;
|
||||
}
|
||||
|
||||
diff --git a/randr/rroutput.c b/randr/rroutput.c
|
||||
index 88781ba..922d61f 100644
|
||||
--- a/randr/rroutput.c
|
||||
+++ b/randr/rroutput.c
|
||||
@@ -36,7 +36,7 @@ RROutputChanged(RROutputPtr output, Bool configChanged)
|
||||
output->changed = TRUE;
|
||||
if (pScreen) {
|
||||
rrScrPriv(pScreen);
|
||||
- pScrPriv->changed = TRUE;
|
||||
+ RRSetChanged(pScreen);
|
||||
if (configChanged)
|
||||
pScrPriv->configChanged = TRUE;
|
||||
}
|
||||
diff --git a/randr/rrscreen.c b/randr/rrscreen.c
|
||||
index 39340cc..36179ae 100644
|
||||
--- a/randr/rrscreen.c
|
||||
+++ b/randr/rrscreen.c
|
||||
@@ -143,7 +143,7 @@ RRScreenSizeNotify(ScreenPtr pScreen)
|
||||
pScrPriv->height = pScreen->height;
|
||||
pScrPriv->mmWidth = pScreen->mmWidth;
|
||||
pScrPriv->mmHeight = pScreen->mmHeight;
|
||||
- pScrPriv->changed = TRUE;
|
||||
+ RRSetChanged(pScreen);
|
||||
/* pScrPriv->sizeChanged = TRUE; */
|
||||
|
||||
RRTellChanged(pScreen);
|
||||
--
|
||||
1.8.2
|
||||
|
24
0001-xwayland-Port-to-new-damage-API.patch
Normal file
24
0001-xwayland-Port-to-new-damage-API.patch
Normal file
@ -0,0 +1,24 @@
|
||||
From cef3bbdd16e12c344e40e10ede0e511044e3a8df Mon Sep 17 00:00:00 2001
|
||||
From: Adam Jackson <ajax@redhat.com>
|
||||
Date: Fri, 25 Oct 2013 12:33:38 -0400
|
||||
Subject: [PATCH] xwayland: Port to new damage API
|
||||
|
||||
Signed-off-by: Adam Jackson <ajax@redhat.com>
|
||||
---
|
||||
hw/xfree86/xwayland/xwayland-window.c | 1 -
|
||||
1 file changed, 1 deletion(-)
|
||||
|
||||
diff --git a/hw/xfree86/xwayland/xwayland-window.c b/hw/xfree86/xwayland/xwayland-window.c
|
||||
index c03855c..0cb4f28 100644
|
||||
--- a/hw/xfree86/xwayland/xwayland-window.c
|
||||
+++ b/hw/xfree86/xwayland/xwayland-window.c
|
||||
@@ -190,7 +190,6 @@ xwl_unrealize_window(WindowPtr window)
|
||||
xorg_list_del(&xwl_window->link);
|
||||
if (RegionNotEmpty(DamageRegion(xwl_window->damage)))
|
||||
xorg_list_del(&xwl_window->link_damage);
|
||||
- DamageUnregister(&window->drawable, xwl_window->damage);
|
||||
DamageDestroy(xwl_window->damage);
|
||||
free(xwl_window);
|
||||
dixSetPrivate(&window->devPrivates, &xwl_window_private_key, NULL);
|
||||
--
|
||||
1.8.3.1
|
@ -1,7 +1,7 @@
|
||||
From 0620164c0ef62eea27f429f7a670c9bf9df2c23c Mon Sep 17 00:00:00 2001
|
||||
From e262b6e2a6664298e68ca01154c1a16115f24ee2 Mon Sep 17 00:00:00 2001
|
||||
From: =?UTF-8?q?Kristian=20H=C3=B8gsberg?= <krh@bitplanet.net>
|
||||
Date: Tue, 9 Apr 2013 16:54:55 -0400
|
||||
Subject: [PATCH 02/30] xkb: Add struct XkbCompContext
|
||||
Subject: [PATCH 02/39] xkb: Add struct XkbCompContext
|
||||
|
||||
This commit adds a struct that contains most of the context for starting,
|
||||
running and cleaning up after xkbcomp.
|
||||
|
@ -1,7 +1,7 @@
|
||||
From 0a6e38c446258060bd49536f0ddad165c6fd367e Mon Sep 17 00:00:00 2001
|
||||
From c2e072d4eeeaa15bfe4b963617688a1f25230ab7 Mon Sep 17 00:00:00 2001
|
||||
From: =?UTF-8?q?Kristian=20H=C3=B8gsberg?= <krh@bitplanet.net>
|
||||
Date: Tue, 9 Apr 2013 17:11:03 -0400
|
||||
Subject: [PATCH 03/30] xkb: Split out code to start and finish xkbcomp
|
||||
Subject: [PATCH 03/39] xkb: Split out code to start and finish xkbcomp
|
||||
|
||||
Using the context struct from previous commit, we can now split out
|
||||
code to start xkbcomp and to finish and clean up after it.
|
||||
|
@ -1,103 +0,0 @@
|
||||
From 14d89b9a466b521b985bc95fc4994637367362a8 Mon Sep 17 00:00:00 2001
|
||||
From: Peter Hutterer <peter.hutterer@who-t.net>
|
||||
Date: Sat, 9 Mar 2013 20:43:51 +1000
|
||||
Subject: [PATCH 04/35] dix: pre-scale x by the screen:device:resolution ratio
|
||||
|
||||
commit 61a99aff9d33728a0b67920254d2d4d79f80cf39
|
||||
dix: pre-scale relative events from abs devices to desktop ratio (#31636)
|
||||
|
||||
added pre-scaling of relative coordinates coming from absolute devices to
|
||||
undo uneven scaling based on the screen dimensions.
|
||||
|
||||
Devices have their own device width/height ratio as well (in a specific
|
||||
resolution) and this must be applied for relative devices as well to avoid
|
||||
scaling of the relative events into the device's ratio.
|
||||
|
||||
e.g. a Wacom Intuos4 6x9 is in 16:10 format with equal horiz/vert
|
||||
resolution (dpi). A movement by 1000/1000 coordinates is a perfect diagonal
|
||||
on the tablet and must be reflected as such on the screen.
|
||||
|
||||
However, we map the relative device-coordinate events to absolute screen
|
||||
coordinates based on the axis ranges. This results in an effective scaling
|
||||
of 1000/(1000 * 1.6) and thus an uneven x/y axis movement - the y
|
||||
axis is always faster.
|
||||
|
||||
So we need to pre-scale not only by the desktop dimenstions but also by the
|
||||
device width/height ratio _and_ the resolution ratio.
|
||||
|
||||
Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
|
||||
(cherry picked from commit 5cc2c96f824dbb28b9f8da61efc41596f8bd0561)
|
||||
---
|
||||
dix/getevents.c | 46 ++++++++++++++++++++++++++++------------------
|
||||
1 file changed, 28 insertions(+), 18 deletions(-)
|
||||
|
||||
diff --git a/dix/getevents.c b/dix/getevents.c
|
||||
index 241c7ec..ac0ccb2 100644
|
||||
--- a/dix/getevents.c
|
||||
+++ b/dix/getevents.c
|
||||
@@ -770,6 +770,29 @@ add_to_scroll_valuator(DeviceIntPtr dev, ValuatorMask *mask, int valuator, doubl
|
||||
}
|
||||
|
||||
|
||||
+static void
|
||||
+scale_for_device_resolution(DeviceIntPtr dev, ValuatorMask *mask)
|
||||
+{
|
||||
+ double x;
|
||||
+ ValuatorClassPtr v = dev->valuator;
|
||||
+ int xrange = v->axes[0].max_value - v->axes[0].min_value + 1;
|
||||
+ int yrange = v->axes[1].max_value - v->axes[1].min_value + 1;
|
||||
+
|
||||
+ double screen_ratio = 1.0 * screenInfo.width/screenInfo.height;
|
||||
+ double device_ratio = 1.0 * xrange/yrange;
|
||||
+ double resolution_ratio = 1.0;
|
||||
+ double ratio;
|
||||
+
|
||||
+ if (!valuator_mask_fetch_double(mask, 0, &x))
|
||||
+ return;
|
||||
+
|
||||
+ if (v->axes[0].resolution != 0 && v->axes[1].resolution != 0)
|
||||
+ resolution_ratio = 1.0 * v->axes[0].resolution/v->axes[1].resolution;
|
||||
+
|
||||
+ ratio = device_ratio/resolution_ratio/screen_ratio;
|
||||
+ valuator_mask_set_double(mask, 0, x * ratio);
|
||||
+}
|
||||
+
|
||||
/**
|
||||
* Move the device's pointer by the values given in @valuators.
|
||||
*
|
||||
@@ -781,27 +804,14 @@ moveRelative(DeviceIntPtr dev, int flags, ValuatorMask *mask)
|
||||
{
|
||||
int i;
|
||||
Bool clip_xy = IsMaster(dev) || !IsFloating(dev);
|
||||
+ ValuatorClassPtr v = dev->valuator;
|
||||
|
||||
/* for abs devices in relative mode, we've just scaled wrong, since we
|
||||
mapped the device's shape into the screen shape. Undo this. */
|
||||
- if ((flags & POINTER_ABSOLUTE) == 0 && dev->valuator &&
|
||||
- dev->valuator->axes[0].min_value < dev->valuator->axes[0].max_value) {
|
||||
-
|
||||
- double ratio = 1.0 * screenInfo.width/screenInfo.height;
|
||||
-
|
||||
- if (ratio > 1.0) {
|
||||
- double y;
|
||||
- if (valuator_mask_fetch_double(mask, 1, &y)) {
|
||||
- y *= ratio;
|
||||
- valuator_mask_set_double(mask, 1, y);
|
||||
- }
|
||||
- } else {
|
||||
- double x;
|
||||
- if (valuator_mask_fetch_double(mask, 0, &x)) {
|
||||
- x *= ratio;
|
||||
- valuator_mask_set_double(mask, 0, x);
|
||||
- }
|
||||
- }
|
||||
+ if ((flags & POINTER_ABSOLUTE) == 0 && v && v->numAxes > 1 &&
|
||||
+ v->axes[0].min_value < v->axes[0].max_value &&
|
||||
+ v->axes[1].min_value < v->axes[1].max_value) {
|
||||
+ scale_for_device_resolution(dev, mask);
|
||||
}
|
||||
|
||||
/* calc other axes, clip, drop back into valuators */
|
||||
--
|
||||
1.8.2.1
|
||||
|
@ -1,7 +1,7 @@
|
||||
From 927cff328c2b920a04c78c4ee23bd6908ad46ea5 Mon Sep 17 00:00:00 2001
|
||||
From a8d1deb17d69dd8a5aa923edf6640173a5a2191b Mon Sep 17 00:00:00 2001
|
||||
From: =?UTF-8?q?Kristian=20H=C3=B8gsberg?= <krh@bitplanet.net>
|
||||
Date: Tue, 9 Apr 2013 17:45:08 -0400
|
||||
Subject: [PATCH 04/30] xkb: Add XkbCompileKeymapFromString()
|
||||
Subject: [PATCH 04/39] xkb: Add XkbCompileKeymapFromString()
|
||||
|
||||
This new function compiles a keymap from an in-memory string. We use it
|
||||
to add a new keyooard device init function,
|
||||
@ -17,7 +17,7 @@ Reviewed-by: Daniel Stone <daniel@fooishbar.org>
|
||||
4 files changed, 144 insertions(+), 39 deletions(-)
|
||||
|
||||
diff --git a/include/input.h b/include/input.h
|
||||
index 7eed60b..9e98e1c 100644
|
||||
index 350daba..6573a3a 100644
|
||||
--- a/include/input.h
|
||||
+++ b/include/input.h
|
||||
@@ -385,6 +385,12 @@ extern _X_EXPORT Bool InitKeyboardDeviceStruct(DeviceIntPtr /*device */ ,
|
||||
@ -34,10 +34,10 @@ index 7eed60b..9e98e1c 100644
|
||||
CARD8 * /* map */ ,
|
||||
int /* len */ ,
|
||||
diff --git a/include/xkbsrv.h b/include/xkbsrv.h
|
||||
index 45e2e8c..38cdd7b 100644
|
||||
index 346ebcc..bef98ef 100644
|
||||
--- a/include/xkbsrv.h
|
||||
+++ b/include/xkbsrv.h
|
||||
@@ -858,4 +858,8 @@ extern _X_EXPORT XkbDescPtr XkbCompileKeymap(DeviceIntPtr /* dev */ ,
|
||||
@@ -861,4 +861,8 @@ extern _X_EXPORT XkbDescPtr XkbCompileKeymap(DeviceIntPtr /* dev */ ,
|
||||
XkbRMLVOSet * /* rmlvo */
|
||||
);
|
||||
|
||||
@ -221,10 +221,10 @@ index 001ff46..7a7cf1e 100644
|
||||
+ return KeymapOrDefaults(dev, xkb);
|
||||
}
|
||||
diff --git a/xkb/xkbInit.c b/xkb/xkbInit.c
|
||||
index ed01114..7d06fa7 100644
|
||||
index f72655f..f3f0d8f 100644
|
||||
--- a/xkb/xkbInit.c
|
||||
+++ b/xkb/xkbInit.c
|
||||
@@ -475,9 +475,10 @@ XkbInitControls(DeviceIntPtr pXDev, XkbSrvInfoPtr xkbi)
|
||||
@@ -490,9 +490,10 @@ XkbInitControls(DeviceIntPtr pXDev, XkbSrvInfoPtr xkbi)
|
||||
return Success;
|
||||
}
|
||||
|
||||
@ -238,16 +238,16 @@ index ed01114..7d06fa7 100644
|
||||
{
|
||||
int i;
|
||||
unsigned int check;
|
||||
@@ -491,7 +492,7 @@ InitKeyboardDeviceStruct(DeviceIntPtr dev, XkbRMLVOSet * rmlvo,
|
||||
if (dev->key || dev->kbdfeed)
|
||||
return FALSE;
|
||||
@@ -507,7 +508,7 @@ InitKeyboardDeviceStruct(DeviceIntPtr dev, XkbRMLVOSet * rmlvo,
|
||||
BUG_RETURN_VAL(dev->key != NULL, FALSE);
|
||||
BUG_RETURN_VAL(dev->kbdfeed != NULL, FALSE);
|
||||
|
||||
- if (!rmlvo) {
|
||||
+ if (!rmlvo && !keymap) {
|
||||
rmlvo = &rmlvo_dflts;
|
||||
XkbGetRulesDflts(rmlvo);
|
||||
}
|
||||
@@ -519,19 +520,26 @@ InitKeyboardDeviceStruct(DeviceIntPtr dev, XkbRMLVOSet * rmlvo,
|
||||
@@ -535,19 +536,26 @@ InitKeyboardDeviceStruct(DeviceIntPtr dev, XkbRMLVOSet * rmlvo,
|
||||
}
|
||||
dev->key->xkbInfo = xkbi;
|
||||
|
||||
@ -276,7 +276,7 @@ index ed01114..7d06fa7 100644
|
||||
}
|
||||
|
||||
xkb = XkbAllocKeyboard();
|
||||
@@ -596,8 +604,10 @@ InitKeyboardDeviceStruct(DeviceIntPtr dev, XkbRMLVOSet * rmlvo,
|
||||
@@ -612,8 +620,10 @@ InitKeyboardDeviceStruct(DeviceIntPtr dev, XkbRMLVOSet * rmlvo,
|
||||
|
||||
dev->kbdfeed->CtrlProc(dev, &dev->kbdfeed->ctrl);
|
||||
|
||||
@ -289,7 +289,7 @@ index ed01114..7d06fa7 100644
|
||||
XkbFreeRMLVOSet(&rmlvo_dflts, FALSE);
|
||||
|
||||
return TRUE;
|
||||
@@ -616,6 +626,24 @@ InitKeyboardDeviceStruct(DeviceIntPtr dev, XkbRMLVOSet * rmlvo,
|
||||
@@ -632,6 +642,24 @@ InitKeyboardDeviceStruct(DeviceIntPtr dev, XkbRMLVOSet * rmlvo,
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
|
@ -1,7 +1,7 @@
|
||||
From 3e23ef6269cfbcd2a3fb7e56bfed347ad6c1f3b9 Mon Sep 17 00:00:00 2001
|
||||
From 513821c7014ad999033b273f76a521710f8f6116 Mon Sep 17 00:00:00 2001
|
||||
From: Tiago Vignatti <tiago.vignatti@intel.com>
|
||||
Date: Thu, 22 Nov 2012 20:22:56 -0200
|
||||
Subject: [PATCH 05/30] configure: Track updated version of libxtrans
|
||||
Subject: [PATCH 05/39] configure: Track updated version of libxtrans
|
||||
|
||||
XWayland fails to initialize in some systems complaining about realloc
|
||||
problems on libxtrans (when ListenOnOpenFD() is called). It got fixed in
|
||||
@ -18,7 +18,7 @@ Signed-off-by: Tiago Vignatti <tiago.vignatti@intel.com>
|
||||
1 file changed, 1 insertion(+), 1 deletion(-)
|
||||
|
||||
diff --git a/configure.ac b/configure.ac
|
||||
index ac24cb6..737025c 100644
|
||||
index 7b4e70f..7f99d2f 100644
|
||||
--- a/configure.ac
|
||||
+++ b/configure.ac
|
||||
@@ -802,7 +802,7 @@ FIXESPROTO="fixesproto >= 5.0"
|
||||
|
@ -1,74 +0,0 @@
|
||||
From 9d3cf2e519291f1931fb25ef6a3b2c609e48a787 Mon Sep 17 00:00:00 2001
|
||||
From: Peter Hutterer <peter.hutterer@who-t.net>
|
||||
Date: Fri, 19 Jul 2013 08:56:38 +1000
|
||||
Subject: [PATCH] dix: scale y back instead of x up when pre-scaling
|
||||
coordinates
|
||||
|
||||
The peculiar way we handle coordinates results in relative coordinates on
|
||||
absolute devices being added to the last value, then that value is mapped to
|
||||
the screen (taking the device dimensions into account). From that mapped
|
||||
value we get the final coordinates, both screen and device coordinates.
|
||||
|
||||
To avoid uneven scaling on relative coordinates, they are pre-scaled by
|
||||
screen ratio:resolution:device ratio factor before being mapped. This
|
||||
ensures that a circle drawn on the device is a circle on the screen.
|
||||
|
||||
Previously, we used the ratio to scale x up. Synaptics already does its own
|
||||
scaling based on the resolution and that is done by scaling y down by the
|
||||
ratio. So we can remove the code from the driver and get approximately the
|
||||
same behaviour here.
|
||||
|
||||
Minor ABI bump, so we can remove this from synaptics.
|
||||
|
||||
Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
|
||||
---
|
||||
dix/getevents.c | 6 +++---
|
||||
hw/xfree86/common/xf86Module.h | 2 +-
|
||||
2 files changed, 4 insertions(+), 4 deletions(-)
|
||||
|
||||
diff --git a/dix/getevents.c b/dix/getevents.c
|
||||
index 51d4fd4..f5ab8c4 100644
|
||||
--- a/dix/getevents.c
|
||||
+++ b/dix/getevents.c
|
||||
@@ -773,7 +773,7 @@ add_to_scroll_valuator(DeviceIntPtr dev, ValuatorMask *mask, int valuator, doubl
|
||||
static void
|
||||
scale_for_device_resolution(DeviceIntPtr dev, ValuatorMask *mask)
|
||||
{
|
||||
- double x;
|
||||
+ double y;
|
||||
ValuatorClassPtr v = dev->valuator;
|
||||
int xrange = v->axes[0].max_value - v->axes[0].min_value + 1;
|
||||
int yrange = v->axes[1].max_value - v->axes[1].min_value + 1;
|
||||
@@ -783,14 +783,14 @@ scale_for_device_resolution(DeviceIntPtr dev, ValuatorMask *mask)
|
||||
double resolution_ratio = 1.0;
|
||||
double ratio;
|
||||
|
||||
- if (!valuator_mask_fetch_double(mask, 0, &x))
|
||||
+ if (!valuator_mask_fetch_double(mask, 1, &y))
|
||||
return;
|
||||
|
||||
if (v->axes[0].resolution != 0 && v->axes[1].resolution != 0)
|
||||
resolution_ratio = 1.0 * v->axes[0].resolution/v->axes[1].resolution;
|
||||
|
||||
ratio = device_ratio/resolution_ratio/screen_ratio;
|
||||
- valuator_mask_set_double(mask, 0, x * ratio);
|
||||
+ valuator_mask_set_double(mask, 1, y / ratio);
|
||||
}
|
||||
|
||||
/**
|
||||
diff --git a/hw/xfree86/common/xf86Module.h b/hw/xfree86/common/xf86Module.h
|
||||
index 1393427..e0cec05 100644
|
||||
--- a/hw/xfree86/common/xf86Module.h
|
||||
+++ b/hw/xfree86/common/xf86Module.h
|
||||
@@ -81,7 +81,7 @@ typedef enum {
|
||||
*/
|
||||
#define ABI_ANSIC_VERSION SET_ABI_VERSION(0, 4)
|
||||
#define ABI_VIDEODRV_VERSION SET_ABI_VERSION(14, 1)
|
||||
-#define ABI_XINPUT_VERSION SET_ABI_VERSION(19, 1)
|
||||
+#define ABI_XINPUT_VERSION SET_ABI_VERSION(19, 2)
|
||||
#define ABI_EXTENSION_VERSION SET_ABI_VERSION(7, 0)
|
||||
#define ABI_FONT_VERSION SET_ABI_VERSION(0, 6)
|
||||
|
||||
--
|
||||
1.8.2.1
|
||||
|
@ -1,7 +1,7 @@
|
||||
From e6d9ba7d490a08ffc553192e229d2488d7abbc9f Mon Sep 17 00:00:00 2001
|
||||
From 701261b0407926a34b6d23151f414d95b159c494 Mon Sep 17 00:00:00 2001
|
||||
From: =?UTF-8?q?Kristian=20H=C3=B8gsberg?= <krh@bitplanet.net>
|
||||
Date: Tue, 21 Jun 2011 21:28:31 -0400
|
||||
Subject: [PATCH 06/30] os: Add a function to create a client for an fd
|
||||
Subject: [PATCH 06/39] os: Add a function to create a client for an fd
|
||||
|
||||
---
|
||||
include/opaque.h | 1 +
|
||||
@ -116,10 +116,10 @@ index 6cd8bcf..499a4dd 100644
|
||||
+
|
||||
#endif
|
||||
diff --git a/os/utils.c b/os/utils.c
|
||||
index 60e828e..e56e4a4 100644
|
||||
index 97c3125..3e9f525 100644
|
||||
--- a/os/utils.c
|
||||
+++ b/os/utils.c
|
||||
@@ -780,7 +780,11 @@ ProcessCommandLine(int argc, char *argv[])
|
||||
@@ -778,7 +778,11 @@ ProcessCommandLine(int argc, char *argv[])
|
||||
#endif
|
||||
else if (strcmp(argv[i], "-nolisten") == 0) {
|
||||
if (++i < argc) {
|
||||
|
@ -1,7 +1,7 @@
|
||||
From a097d8905dcfeb799b003faf6aeea3826b5bb35b Mon Sep 17 00:00:00 2001
|
||||
From be359481c9c0947451d119efb643dcaef0529a42 Mon Sep 17 00:00:00 2001
|
||||
From: =?UTF-8?q?Kristian=20H=C3=B8gsberg?= <krh@bitplanet.net>
|
||||
Date: Thu, 21 Jul 2011 09:55:46 -0700
|
||||
Subject: [PATCH 07/30] Export xf86NewInputDevice and xf86AllocateInput
|
||||
Subject: [PATCH 07/39] Export xf86NewInputDevice and xf86AllocateInput
|
||||
|
||||
---
|
||||
hw/xfree86/common/xf86Xinput.c | 2 +-
|
||||
|
@ -1,7 +1,7 @@
|
||||
From e56c222b8e6e7f48e928770b1bd4dff20ad627a3 Mon Sep 17 00:00:00 2001
|
||||
From 2493a32018a467ff7a6b8420f1110eb5687a0526 Mon Sep 17 00:00:00 2001
|
||||
From: =?UTF-8?q?Kristian=20H=C3=B8gsberg?= <krh@redhat.com>
|
||||
Date: Fri, 18 Sep 2009 22:02:43 -0400
|
||||
Subject: [PATCH 08/30] Export CompositeRedirectSubwindows and
|
||||
Subject: [PATCH 08/39] Export CompositeRedirectSubwindows and
|
||||
CompositeUnRedirectSubwindows
|
||||
|
||||
---
|
||||
@ -10,7 +10,7 @@ Subject: [PATCH 08/30] Export CompositeRedirectSubwindows and
|
||||
2 files changed, 15 insertions(+)
|
||||
|
||||
diff --git a/composite/compalloc.c b/composite/compalloc.c
|
||||
index cc69c68..edee499 100644
|
||||
index b7d731e..98b27b1 100644
|
||||
--- a/composite/compalloc.c
|
||||
+++ b/composite/compalloc.c
|
||||
@@ -46,6 +46,7 @@
|
||||
|
@ -1,7 +1,7 @@
|
||||
From d2fcacc2ce6da5348a1ac519cac845270a658669 Mon Sep 17 00:00:00 2001
|
||||
From be8fccebacac8c209bbc6e42e5aba49bc8102491 Mon Sep 17 00:00:00 2001
|
||||
From: =?UTF-8?q?Kristian=20H=C3=B8gsberg?= <krh@redhat.com>
|
||||
Date: Fri, 18 Sep 2009 22:09:03 -0400
|
||||
Subject: [PATCH 09/30] Add redirect window for input device feature
|
||||
Subject: [PATCH 09/39] Add redirect window for input device feature
|
||||
|
||||
---
|
||||
Xi/exevents.c | 13 +++++++++++++
|
||||
@ -11,10 +11,10 @@ Subject: [PATCH 09/30] Add redirect window for input device feature
|
||||
4 files changed, 29 insertions(+), 1 deletion(-)
|
||||
|
||||
diff --git a/Xi/exevents.c b/Xi/exevents.c
|
||||
index 067e6b3..6dd182a 100644
|
||||
index fd4b80c..f510a9e 100644
|
||||
--- a/Xi/exevents.c
|
||||
+++ b/Xi/exevents.c
|
||||
@@ -2029,6 +2029,19 @@ DeliverTouchEvents(DeviceIntPtr dev, TouchPointInfoPtr ti,
|
||||
@@ -2025,6 +2025,19 @@ DeliverTouchEvents(DeviceIntPtr dev, TouchPointInfoPtr ti,
|
||||
}
|
||||
}
|
||||
|
||||
@ -35,10 +35,10 @@ index 067e6b3..6dd182a 100644
|
||||
InitProximityClassDeviceStruct(DeviceIntPtr dev)
|
||||
{
|
||||
diff --git a/dix/events.c b/dix/events.c
|
||||
index c079f97..a0c7060 100644
|
||||
index 4632bb7..9caa8b0 100644
|
||||
--- a/dix/events.c
|
||||
+++ b/dix/events.c
|
||||
@@ -2820,7 +2820,16 @@ XYToWindow(SpritePtr pSprite, int x, int y)
|
||||
@@ -2877,7 +2877,16 @@ XYToWindow(SpritePtr pSprite, int x, int y)
|
||||
BoxRec box;
|
||||
|
||||
pSprite->spriteTraceGood = 1; /* root window still there */
|
||||
@ -72,7 +72,7 @@ index 321fc42..ba93be3 100644
|
||||
CheckGrabValues(ClientPtr /* client */ ,
|
||||
GrabParameters * /* param */ );
|
||||
diff --git a/include/inputstr.h b/include/inputstr.h
|
||||
index 2da72c1..2ae6f5b 100644
|
||||
index dc36c5d..09471cf 100644
|
||||
--- a/include/inputstr.h
|
||||
+++ b/include/inputstr.h
|
||||
@@ -246,6 +246,8 @@ typedef struct _SpriteRec {
|
||||
|
@ -1,7 +1,7 @@
|
||||
From 5c3fe524e192c878278c650c337b52044daf144a Mon Sep 17 00:00:00 2001
|
||||
From 53821bf2c6e95332e3141cafe2fe26527f5dd543 Mon Sep 17 00:00:00 2001
|
||||
From: Tiago Vignatti <tiago.vignatti@intel.com>
|
||||
Date: Wed, 21 Aug 2013 21:23:09 -0700
|
||||
Subject: [PATCH 10/30] dri2: Introduce a third version of the AuthMagic
|
||||
Subject: [PATCH 10/39] dri2: Introduce a third version of the AuthMagic
|
||||
function
|
||||
|
||||
This most recent version takes a client pointer to allow xwayland to
|
||||
@ -13,10 +13,10 @@ asynchronously authenticate a client.
|
||||
3 files changed, 34 insertions(+), 12 deletions(-)
|
||||
|
||||
diff --git a/hw/xfree86/dri2/dri2.c b/hw/xfree86/dri2/dri2.c
|
||||
index 40963c3..8bf0392 100644
|
||||
index 0b047f0..efdcd66 100644
|
||||
--- a/hw/xfree86/dri2/dri2.c
|
||||
+++ b/hw/xfree86/dri2/dri2.c
|
||||
@@ -122,8 +122,9 @@ typedef struct _DRI2Screen {
|
||||
@@ -121,8 +121,9 @@ typedef struct _DRI2Screen {
|
||||
DRI2ScheduleSwapProcPtr ScheduleSwap;
|
||||
DRI2GetMSCProcPtr GetMSC;
|
||||
DRI2ScheduleWaitMSCProcPtr ScheduleWaitMSC;
|
||||
@ -27,7 +27,7 @@ index 40963c3..8bf0392 100644
|
||||
DRI2ReuseBufferNotifyProcPtr ReuseBufferNotify;
|
||||
DRI2SwapLimitValidateProcPtr SwapLimitValidate;
|
||||
DRI2GetParamProcPtr GetParam;
|
||||
@@ -1369,7 +1370,7 @@ DRI2Authenticate(ClientPtr client, ScreenPtr pScreen, uint32_t magic)
|
||||
@@ -1352,7 +1353,7 @@ DRI2Authenticate(ClientPtr client, ScreenPtr pScreen, uint32_t magic)
|
||||
return FALSE;
|
||||
|
||||
primescreen = GetScreenPrime(pScreen, dri2_client->prime_id);
|
||||
@ -36,7 +36,7 @@ index 40963c3..8bf0392 100644
|
||||
return FALSE;
|
||||
return TRUE;
|
||||
}
|
||||
@@ -1474,8 +1475,11 @@ DRI2ScreenInit(ScreenPtr pScreen, DRI2InfoPtr info)
|
||||
@@ -1457,8 +1458,11 @@ DRI2ScreenInit(ScreenPtr pScreen, DRI2InfoPtr info)
|
||||
cur_minor = 1;
|
||||
}
|
||||
|
||||
@ -49,7 +49,7 @@ index 40963c3..8bf0392 100644
|
||||
}
|
||||
if (info->version >= 5) {
|
||||
ds->LegacyAuthMagic = info->AuthMagic;
|
||||
@@ -1514,7 +1518,7 @@ DRI2ScreenInit(ScreenPtr pScreen, DRI2InfoPtr info)
|
||||
@@ -1497,7 +1501,7 @@ DRI2ScreenInit(ScreenPtr pScreen, DRI2InfoPtr info)
|
||||
* If the driver doesn't provide an AuthMagic function
|
||||
* it relies on the old method (using libdrm) or fails
|
||||
*/
|
||||
|
File diff suppressed because it is too large
Load Diff
@ -1,7 +1,7 @@
|
||||
From 69def850b10580bcb3b67b5bfcb1d8bc0cb188f4 Mon Sep 17 00:00:00 2001
|
||||
From b1439c7708dae1b0f68f6e53264d5be1f636bd82 Mon Sep 17 00:00:00 2001
|
||||
From: =?UTF-8?q?Kristian=20H=C3=B8gsberg?= <krh@bitplanet.net>
|
||||
Date: Wed, 21 Aug 2013 23:02:58 -0700
|
||||
Subject: [PATCH 12/30] xwayland: Add a HW_WAYLAND flag to let drivers
|
||||
Subject: [PATCH 12/39] xwayland: Add a HW_WAYLAND flag to let drivers
|
||||
explicitly opt-in
|
||||
|
||||
---
|
||||
@ -10,10 +10,10 @@ Subject: [PATCH 12/30] xwayland: Add a HW_WAYLAND flag to let drivers
|
||||
2 files changed, 8 insertions(+), 4 deletions(-)
|
||||
|
||||
diff --git a/hw/xfree86/common/xf86Init.c b/hw/xfree86/common/xf86Init.c
|
||||
index 629d892..5ac97cc 100644
|
||||
index 98adaab..2d3bb01 100644
|
||||
--- a/hw/xfree86/common/xf86Init.c
|
||||
+++ b/hw/xfree86/common/xf86Init.c
|
||||
@@ -557,11 +557,14 @@ InitOutput(ScreenInfo * pScreenInfo, int argc, char **argv)
|
||||
@@ -547,11 +547,14 @@ InitOutput(ScreenInfo * pScreenInfo, int argc, char **argv)
|
||||
if (!(flags & HW_SKIP_CONSOLE))
|
||||
xorgHWOpenConsole = TRUE;
|
||||
|
||||
@ -33,7 +33,7 @@ index 629d892..5ac97cc 100644
|
||||
}
|
||||
|
||||
diff --git a/hw/xfree86/common/xf86str.h b/hw/xfree86/common/xf86str.h
|
||||
index f1dbfc5..14b013f 100644
|
||||
index 4c2d147..976fa30 100644
|
||||
--- a/hw/xfree86/common/xf86str.h
|
||||
+++ b/hw/xfree86/common/xf86str.h
|
||||
@@ -288,6 +288,7 @@ typedef struct {
|
||||
|
@ -1,7 +1,7 @@
|
||||
From ef9f67ee52b6a49e3a4901704e51f2f6cde9698a Mon Sep 17 00:00:00 2001
|
||||
From 2d673d0606ca79ede96c019670286338949e59ec Mon Sep 17 00:00:00 2001
|
||||
From: Giovanni Campagna <gcampagn@redhat.com>
|
||||
Date: Wed, 21 Aug 2013 09:53:25 +0200
|
||||
Subject: [PATCH 13/30] xwayland-shm: don't create alpha buffers if the window
|
||||
Subject: [PATCH 13/39] xwayland-shm: don't create alpha buffers if the window
|
||||
doesn't have alpha
|
||||
|
||||
If the window is using a 24 bit visual, we must request a buffer
|
||||
|
@ -1,7 +1,7 @@
|
||||
From 5ec1f1446acf1bb7ed04c2844ac62325fc125b91 Mon Sep 17 00:00:00 2001
|
||||
From 8608443b26b21991e27bc26fa83cd14b30ee9a01 Mon Sep 17 00:00:00 2001
|
||||
From: Giovanni Campagna <gcampagn@redhat.com>
|
||||
Date: Wed, 21 Aug 2013 09:53:26 +0200
|
||||
Subject: [PATCH 14/30] xwayland: handle global object destruction
|
||||
Subject: [PATCH 14/39] xwayland: handle global object destruction
|
||||
|
||||
Certain global objects, such as outputs, can be destroyed during
|
||||
the session. We must handle that and not crash.
|
||||
|
@ -1,7 +1,7 @@
|
||||
From cf0293df1032b3646ed77b5c1981d6346577f678 Mon Sep 17 00:00:00 2001
|
||||
From 99b250c3246d6547cbc6bc84f7f42b9aec5b3a4f Mon Sep 17 00:00:00 2001
|
||||
From: Giovanni Campagna <gcampagn@redhat.com>
|
||||
Date: Thu, 22 Aug 2013 16:23:48 +0200
|
||||
Subject: [PATCH 15/30] xwayland: add support for multiple outputs
|
||||
Subject: [PATCH 15/39] xwayland: add support for multiple outputs
|
||||
|
||||
Drop xf86InitialConfiguration, which just gets in the way
|
||||
of the compositor doing its own output arrangement, and transform
|
||||
|
@ -1,7 +1,7 @@
|
||||
From 20a6f974f413757da649dcc984fd6c759096dd54 Mon Sep 17 00:00:00 2001
|
||||
From 796e417ebb9c2f796ce9588a6a8d7b2cd29c7af3 Mon Sep 17 00:00:00 2001
|
||||
From: =?UTF-8?q?Jonas=20=C3=85dahl?= <jadahl@gmail.com>
|
||||
Date: Sun, 1 Sep 2013 23:14:43 +0200
|
||||
Subject: [PATCH 16/30] xwayland: Probe outputs on preinit
|
||||
Subject: [PATCH 16/39] xwayland: Probe outputs on preinit
|
||||
MIME-Version: 1.0
|
||||
Content-Type: text/plain; charset=UTF-8
|
||||
Content-Transfer-Encoding: 8bit
|
||||
|
@ -1,7 +1,7 @@
|
||||
From 2ef0364d48a6be3ef69328045ab85d3167840402 Mon Sep 17 00:00:00 2001
|
||||
From 400d9b22c0927a20b7255100a4ba8d3d11bef262 Mon Sep 17 00:00:00 2001
|
||||
From: Daniel Stone <daniel@fooishbar.org>
|
||||
Date: Fri, 16 Aug 2013 13:21:21 +0100
|
||||
Subject: [PATCH 17/30] XFree86: Load wlshm driver as fallback for Wayland
|
||||
Subject: [PATCH 17/39] XFree86: Load wlshm driver as fallback for Wayland
|
||||
|
||||
Since fbdev or vesa are unlikely to be too useful there ...
|
||||
|
||||
@ -34,10 +34,10 @@ index 95d58fe..d5a3370 100644
|
||||
}
|
||||
#endif /* !sun */
|
||||
diff --git a/hw/xfree86/common/xf86Config.c b/hw/xfree86/common/xf86Config.c
|
||||
index 55f9883..434249b 100644
|
||||
index 39cd58c..c65cb80 100644
|
||||
--- a/hw/xfree86/common/xf86Config.c
|
||||
+++ b/hw/xfree86/common/xf86Config.c
|
||||
@@ -518,7 +518,11 @@ xf86InputDriverlistFromConfig(void)
|
||||
@@ -519,7 +519,11 @@ xf86InputDriverlistFromConfig(void)
|
||||
static void
|
||||
fixup_video_driver_list(char **drivers)
|
||||
{
|
||||
@ -50,7 +50,7 @@ index 55f9883..434249b 100644
|
||||
char **end, **drv;
|
||||
char *x;
|
||||
int i;
|
||||
@@ -531,9 +535,15 @@ fixup_video_driver_list(char **drivers)
|
||||
@@ -532,9 +536,15 @@ fixup_video_driver_list(char **drivers)
|
||||
* for each of the fallback drivers, if we find it in the list,
|
||||
* swap it with the last available non-fallback driver.
|
||||
*/
|
||||
|
@ -1,7 +1,7 @@
|
||||
From 007b3b673d7bef6138b3e8a6c2342c1f569c8de8 Mon Sep 17 00:00:00 2001
|
||||
From 55f33977d3753f357c407def598647698d5b05a4 Mon Sep 17 00:00:00 2001
|
||||
From: Daniel Stone <daniel@fooishbar.org>
|
||||
Date: Wed, 7 Nov 2012 17:22:42 +1100
|
||||
Subject: [PATCH 18/30] XWayland: Don't send out-of-bounds damage co-ordinates
|
||||
Subject: [PATCH 18/39] XWayland: Don't send out-of-bounds damage co-ordinates
|
||||
|
||||
Make sure we don't send damage regions larger than the buffer.
|
||||
|
||||
|
@ -1,7 +1,7 @@
|
||||
From ee97e732bcb1b2eafdaa6339a177ec2bbb6bd574 Mon Sep 17 00:00:00 2001
|
||||
From cf0846ea962e60ae1229dba6ee25b067ebafe906 Mon Sep 17 00:00:00 2001
|
||||
From: Daniel Stone <daniel@fooishbar.org>
|
||||
Date: Tue, 16 Oct 2012 17:14:01 +1100
|
||||
Subject: [PATCH 19/30] xwayland: Introduce an auto mode for --enable-wayland
|
||||
Subject: [PATCH 19/39] xwayland: Introduce an auto mode for --enable-wayland
|
||||
|
||||
Signed-off-by: Daniel Stone <daniel@fooishbar.org>
|
||||
---
|
||||
@ -9,7 +9,7 @@ Signed-off-by: Daniel Stone <daniel@fooishbar.org>
|
||||
1 file changed, 7 insertions(+), 3 deletions(-)
|
||||
|
||||
diff --git a/configure.ac b/configure.ac
|
||||
index c65e1a7..4637c41 100644
|
||||
index da10573..a74d607 100644
|
||||
--- a/configure.ac
|
||||
+++ b/configure.ac
|
||||
@@ -635,7 +635,7 @@ AC_ARG_ENABLE(windowswm, AS_HELP_STRING([--enable-windowswm], [Build XWin w
|
||||
|
@ -1,7 +1,7 @@
|
||||
From ee550427e188cad38ed5c77899372bf3cc782ece Mon Sep 17 00:00:00 2001
|
||||
From b207060d767d908eb4b70607f280d67854a4f161 Mon Sep 17 00:00:00 2001
|
||||
From: Daniel Stone <daniel@fooishbar.org>
|
||||
Date: Wed, 7 Nov 2012 17:15:13 +1100
|
||||
Subject: [PATCH 20/30] XWayland: Don't hardcode DRM libs and -lwayland-client
|
||||
Subject: [PATCH 20/39] XWayland: Don't hardcode DRM libs and -lwayland-client
|
||||
|
||||
Take -lwayland-client from configure.ac, and only use DRM if we've
|
||||
actually asked for it.
|
||||
|
@ -1,7 +1,7 @@
|
||||
From b5d5a1cdb7454f6ed33ba68c79da79504846e568 Mon Sep 17 00:00:00 2001
|
||||
From 7d66d6b1bceebea3bdb49886e1f6980d480713df Mon Sep 17 00:00:00 2001
|
||||
From: Daniel Stone <daniel@fooishbar.org>
|
||||
Date: Fri, 16 Aug 2013 13:51:08 +0100
|
||||
Subject: [PATCH 21/30] XWayland: Support 16bpp X surfaces in DRM/SHM
|
||||
Subject: [PATCH 21/39] XWayland: Support 16bpp X surfaces in DRM/SHM
|
||||
|
||||
Properly look at the window's visual to determine which format we should
|
||||
use for allocation.
|
||||
|
@ -1,7 +1,7 @@
|
||||
From 555c7ef6ca7846f68ec8d2ac680e50558b043f39 Mon Sep 17 00:00:00 2001
|
||||
From 048c854b7332d19b0654e856c414115acfd456b1 Mon Sep 17 00:00:00 2001
|
||||
From: =?UTF-8?q?Kristian=20H=C3=B8gsberg?= <krh@bitplanet.net>
|
||||
Date: Wed, 11 Sep 2013 11:15:18 -0700
|
||||
Subject: [PATCH 22/30] xwayland: Remove Xdnd selection watching code
|
||||
Subject: [PATCH 22/39] xwayland: Remove Xdnd selection watching code
|
||||
|
||||
We don't need this in the server, the wm can manage dnd proxying.
|
||||
---
|
||||
|
@ -1,7 +1,7 @@
|
||||
From 1173a0b6937bda0e684d75111242c2f513b3d072 Mon Sep 17 00:00:00 2001
|
||||
From 7865d8abc9fe47ccde165f37c4a887fb398f7216 Mon Sep 17 00:00:00 2001
|
||||
From: Ray Strode <rstrode@redhat.com>
|
||||
Date: Fri, 13 Sep 2013 17:17:16 -0400
|
||||
Subject: [PATCH 23/30] xf86Init: trim out non-wayland capable servers from
|
||||
Subject: [PATCH 23/39] xf86Init: trim out non-wayland capable servers from
|
||||
drive list
|
||||
|
||||
Otherwise they'll cause the server to crash when run in wayland mode.
|
||||
@ -10,10 +10,10 @@ Otherwise they'll cause the server to crash when run in wayland mode.
|
||||
1 file changed, 9 insertions(+)
|
||||
|
||||
diff --git a/hw/xfree86/common/xf86Init.c b/hw/xfree86/common/xf86Init.c
|
||||
index 5ac97cc..a5a7daf 100644
|
||||
index 2d3bb01..6282252 100644
|
||||
--- a/hw/xfree86/common/xf86Init.c
|
||||
+++ b/hw/xfree86/common/xf86Init.c
|
||||
@@ -568,6 +568,15 @@ InitOutput(ScreenInfo * pScreenInfo, int argc, char **argv)
|
||||
@@ -558,6 +558,15 @@ InitOutput(ScreenInfo * pScreenInfo, int argc, char **argv)
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -1,7 +1,7 @@
|
||||
From 6c2b9647f370b0381756b2b2438c4d69d3327c92 Mon Sep 17 00:00:00 2001
|
||||
From 58a429b667443eb2c38bad82358edc1d3df045c5 Mon Sep 17 00:00:00 2001
|
||||
From: Giovanni Campagna <gcampagn@redhat.com>
|
||||
Date: Fri, 13 Sep 2013 15:52:29 +0200
|
||||
Subject: [PATCH 24/30] Add XORG_WAYLAND symbol to xorg-config.h.in
|
||||
Subject: [PATCH 24/39] Add XORG_WAYLAND symbol to xorg-config.h.in
|
||||
|
||||
We manually duplicate symbols that we want in both xorg-server.h and
|
||||
xorg-config.h. XORG_WAYLAND is one such symbol, but it was missing from
|
||||
@ -11,12 +11,12 @@ xorg-config.h.in.
|
||||
1 file changed, 3 insertions(+)
|
||||
|
||||
diff --git a/include/xorg-config.h.in b/include/xorg-config.h.in
|
||||
index a71b25d..b77e72c 100644
|
||||
index 0df31ae..8aec1d8 100644
|
||||
--- a/include/xorg-config.h.in
|
||||
+++ b/include/xorg-config.h.in
|
||||
@@ -139,4 +139,7 @@
|
||||
/* Have X server platform bus support */
|
||||
#undef XSERVER_PLATFORM_BUS
|
||||
@@ -142,4 +142,7 @@
|
||||
/* Define to 1 if you have the `seteuid' function. */
|
||||
#undef HAVE_SETEUID
|
||||
|
||||
+/* Building Xorg server. */
|
||||
+#undef XORG_WAYLAND
|
||||
|
@ -1,7 +1,7 @@
|
||||
From ba1428dcb8cdeb22f93c1e3739a7bb8384ec705a Mon Sep 17 00:00:00 2001
|
||||
From b04cf1f3df9627b804de1c0c2a2436a608992333 Mon Sep 17 00:00:00 2001
|
||||
From: Giovanni Campagna <gcampagn@redhat.com>
|
||||
Date: Fri, 13 Sep 2013 15:52:30 +0200
|
||||
Subject: [PATCH 25/30] Fix fallback loading of the wayland driver
|
||||
Subject: [PATCH 25/39] Fix fallback loading of the wayland driver
|
||||
|
||||
Fix the array name to actually compile, and fix the driver name
|
||||
with the new upstream.
|
||||
@ -24,10 +24,10 @@ index d5a3370..b35cb96 100644
|
||||
#endif
|
||||
#if !defined(__linux__) && defined(__sparc__)
|
||||
diff --git a/hw/xfree86/common/xf86Config.c b/hw/xfree86/common/xf86Config.c
|
||||
index 434249b..ffbea8f 100644
|
||||
index c65cb80..8255d8d 100644
|
||||
--- a/hw/xfree86/common/xf86Config.c
|
||||
+++ b/hw/xfree86/common/xf86Config.c
|
||||
@@ -520,7 +520,7 @@ fixup_video_driver_list(char **drivers)
|
||||
@@ -521,7 +521,7 @@ fixup_video_driver_list(char **drivers)
|
||||
{
|
||||
static const char *fallback_hw[4] = { "vesa", "fbdev", "wsfb", NULL };
|
||||
#ifdef XORG_WAYLAND
|
||||
|
@ -1,7 +1,7 @@
|
||||
From cf5cf51ba3c19b2a736aa30eaf6f43c6f0b971f4 Mon Sep 17 00:00:00 2001
|
||||
From 043aa3410eaebb0bf97b6efd2e1897f53d69e76d Mon Sep 17 00:00:00 2001
|
||||
From: =?UTF-8?q?Kristian=20H=C3=B8gsberg?= <krh@bitplanet.net>
|
||||
Date: Fri, 13 Sep 2013 14:52:13 -0700
|
||||
Subject: [PATCH 26/30] xwayland: Don't include xorg-server.h
|
||||
Subject: [PATCH 26/39] xwayland: Don't include xorg-server.h
|
||||
|
||||
xorg-config.h now has the XORG_WAYLAND define.
|
||||
---
|
||||
|
@ -1,7 +1,7 @@
|
||||
From 9e3f213572e83f38cc86dc4b68c5ccb547a6b0fe Mon Sep 17 00:00:00 2001
|
||||
From 77e8c128a8f939895907060126539b2913326e75 Mon Sep 17 00:00:00 2001
|
||||
From: =?UTF-8?q?Kristian=20H=C3=B8gsberg?= <krh@bitplanet.net>
|
||||
Date: Fri, 13 Sep 2013 14:53:16 -0700
|
||||
Subject: [PATCH 27/30] os: Don't include xorg-server.h
|
||||
Subject: [PATCH 27/39] os: Don't include xorg-server.h
|
||||
|
||||
Just always compile in ListenOnOpenFD and AddClientOnOpenFD, they
|
||||
don't depend on anything from Quartz or Wayland.
|
||||
|
@ -1,7 +1,7 @@
|
||||
From cc086626e1e02a0639f6107ae10fdbffc9640551 Mon Sep 17 00:00:00 2001
|
||||
From 31d81fa77db3989a987b12a822130f8f12cc2276 Mon Sep 17 00:00:00 2001
|
||||
From: =?UTF-8?q?Kristian=20H=C3=B8gsberg?= <krh@bitplanet.net>
|
||||
Date: Fri, 13 Sep 2013 15:16:31 -0700
|
||||
Subject: [PATCH 28/30] os: Also define ListenOnOpenFD and AddClientOnOpenFD
|
||||
Subject: [PATCH 28/39] os: Also define ListenOnOpenFD and AddClientOnOpenFD
|
||||
unconditionally
|
||||
|
||||
Remove the #ifdef from the header file as well.
|
||||
|
@ -1,7 +1,7 @@
|
||||
From ad867da0bccaf1b1d0c726e0e44721ea9cb299bf Mon Sep 17 00:00:00 2001
|
||||
From 6e37c4facede1739b5e4e84d775f480d5ebd67ef Mon Sep 17 00:00:00 2001
|
||||
From: =?UTF-8?q?Kristian=20H=C3=B8gsberg?= <krh@bitplanet.net>
|
||||
Date: Mon, 16 Sep 2013 11:51:57 -0700
|
||||
Subject: [PATCH 29/30] xwayland: Remove unused variables
|
||||
Subject: [PATCH 29/39] xwayland: Remove unused variables
|
||||
|
||||
---
|
||||
hw/xfree86/xwayland/xwayland-window.c | 3 ---
|
||||
|
@ -1,7 +1,7 @@
|
||||
From 696902dbd5a87b09e2972066d9d87928fdc2f61d Mon Sep 17 00:00:00 2001
|
||||
From ce5be44c0556b9b097b4800aee75025feef9e2ff Mon Sep 17 00:00:00 2001
|
||||
From: =?UTF-8?q?Kristian=20H=C3=B8gsberg?= <krh@bitplanet.net>
|
||||
Date: Mon, 16 Sep 2013 12:05:19 -0700
|
||||
Subject: [PATCH 30/30] xwayland: Use a per-screen private key for cursor
|
||||
Subject: [PATCH 30/39] xwayland: Use a per-screen private key for cursor
|
||||
privates
|
||||
|
||||
The cursor is a per-display object, so we need to set private data on it
|
||||
|
31
0031-XWayland-Don-t-commit-empty-surfaces.patch
Normal file
31
0031-XWayland-Don-t-commit-empty-surfaces.patch
Normal file
@ -0,0 +1,31 @@
|
||||
From fc45cb4efcb5dd4de3e90911b44c6d66ef6e6618 Mon Sep 17 00:00:00 2001
|
||||
From: Daniel Stone <daniels@collabora.com>
|
||||
Date: Thu, 12 Sep 2013 16:58:00 -0400
|
||||
Subject: [PATCH 31/39] XWayland: Don't commit empty surfaces
|
||||
|
||||
Instead of attaching, damaging and then committing a new buffer as soon
|
||||
as we allocate a pixmap, just attach and damage the entire buffer. When
|
||||
the buffer is changed, we'll commit the changes.
|
||||
|
||||
This avoids an ugly black (on SHM) flash when a window is mapped or
|
||||
resized.
|
||||
|
||||
Signed-off-by: Daniel Stone <daniels@collabora.com>
|
||||
---
|
||||
hw/xfree86/xwayland/xwayland-window.c | 1 -
|
||||
1 file changed, 1 deletion(-)
|
||||
|
||||
diff --git a/hw/xfree86/xwayland/xwayland-window.c b/hw/xfree86/xwayland/xwayland-window.c
|
||||
index 20db80c..5045e65 100644
|
||||
--- a/hw/xfree86/xwayland/xwayland-window.c
|
||||
+++ b/hw/xfree86/xwayland/xwayland-window.c
|
||||
@@ -80,7 +80,6 @@ xwl_window_attach(struct xwl_window *xwl_window, PixmapPtr pixmap)
|
||||
wl_surface_damage(xwl_window->surface, 0, 0,
|
||||
pixmap->drawable.width,
|
||||
pixmap->drawable.height);
|
||||
- wl_surface_commit(xwl_window->surface);
|
||||
|
||||
callback = wl_display_sync(xwl_screen->display);
|
||||
wl_callback_add_listener(callback, &free_pixmap_listener, pixmap);
|
||||
--
|
||||
1.8.3.1
|
23
0032-xwayland-Also-look-for-wlglamor.patch
Normal file
23
0032-xwayland-Also-look-for-wlglamor.patch
Normal file
@ -0,0 +1,23 @@
|
||||
From f6f1c358958303aaa0cb2ae40044dd8cdc756618 Mon Sep 17 00:00:00 2001
|
||||
From: =?UTF-8?q?Kristian=20H=C3=B8gsberg?= <krh@bitplanet.net>
|
||||
Date: Fri, 11 Oct 2013 16:14:54 -0700
|
||||
Subject: [PATCH 32/39] xwayland: Also look for wlglamor
|
||||
|
||||
---
|
||||
hw/xfree86/common/xf86AutoConfig.c | 1 +
|
||||
1 file changed, 1 insertion(+)
|
||||
|
||||
diff --git a/hw/xfree86/common/xf86AutoConfig.c b/hw/xfree86/common/xf86AutoConfig.c
|
||||
index b35cb96..9576b86 100644
|
||||
--- a/hw/xfree86/common/xf86AutoConfig.c
|
||||
+++ b/hw/xfree86/common/xf86AutoConfig.c
|
||||
@@ -285,6 +285,7 @@ listPossibleVideoDrivers(char *matches[], int nmatches)
|
||||
if (i < (nmatches - 1)) {
|
||||
#ifdef XORG_WAYLAND
|
||||
if (xorgWayland)
|
||||
+ matches[i++] = xnfstrdup("wlglamor");
|
||||
matches[i++] = xnfstrdup("wayland");
|
||||
else
|
||||
#endif
|
||||
--
|
||||
1.8.3.1
|
32
0033-xwayland-Add-wlglamor-the-right-way.patch
Normal file
32
0033-xwayland-Add-wlglamor-the-right-way.patch
Normal file
@ -0,0 +1,32 @@
|
||||
From 6ed319fdf521f3a36eb9635297beec3d3d23be8d Mon Sep 17 00:00:00 2001
|
||||
From: =?UTF-8?q?Kristian=20H=C3=B8gsberg?= <krh@bitplanet.net>
|
||||
Date: Fri, 11 Oct 2013 16:29:02 -0700
|
||||
Subject: [PATCH 33/39] xwayland: Add wlglamor the right way
|
||||
|
||||
Defeated by #ifdefs.
|
||||
---
|
||||
hw/xfree86/common/xf86AutoConfig.c | 6 +++---
|
||||
1 file changed, 3 insertions(+), 3 deletions(-)
|
||||
|
||||
diff --git a/hw/xfree86/common/xf86AutoConfig.c b/hw/xfree86/common/xf86AutoConfig.c
|
||||
index 9576b86..cc6dcce 100644
|
||||
--- a/hw/xfree86/common/xf86AutoConfig.c
|
||||
+++ b/hw/xfree86/common/xf86AutoConfig.c
|
||||
@@ -282,12 +282,12 @@ listPossibleVideoDrivers(char *matches[], int nmatches)
|
||||
|
||||
#if !defined(sun)
|
||||
/* Fallback to platform default frame buffer driver */
|
||||
- if (i < (nmatches - 1)) {
|
||||
+ if (i < (nmatches - 2)) {
|
||||
#ifdef XORG_WAYLAND
|
||||
- if (xorgWayland)
|
||||
+ if (xorgWayland) {
|
||||
matches[i++] = xnfstrdup("wlglamor");
|
||||
matches[i++] = xnfstrdup("wayland");
|
||||
- else
|
||||
+ } else
|
||||
#endif
|
||||
#if !defined(__linux__) && defined(__sparc__)
|
||||
matches[i++] = xnfstrdup("wsfb");
|
||||
--
|
||||
1.8.3.1
|
@ -0,0 +1,90 @@
|
||||
From 0f0a11b4d5d573080e9db39d150eb66d78a9aab2 Mon Sep 17 00:00:00 2001
|
||||
From: =?UTF-8?q?Kristian=20H=C3=B8gsberg?= <krh@bitplanet.net>
|
||||
Date: Fri, 11 Oct 2013 15:41:59 -0700
|
||||
Subject: [PATCH 34/39] xwayland: Don't redirect windows, leave it to the wm
|
||||
|
||||
---
|
||||
hw/xfree86/xwayland/xwayland-window.c | 51 -----------------------------------
|
||||
1 file changed, 51 deletions(-)
|
||||
|
||||
diff --git a/hw/xfree86/xwayland/xwayland-window.c b/hw/xfree86/xwayland/xwayland-window.c
|
||||
index 5045e65..c03855c 100644
|
||||
--- a/hw/xfree86/xwayland/xwayland-window.c
|
||||
+++ b/hw/xfree86/xwayland/xwayland-window.c
|
||||
@@ -31,11 +31,9 @@
|
||||
#include <errno.h>
|
||||
#include <sys/mman.h>
|
||||
#include <wayland-client.h>
|
||||
-#include <X11/extensions/compositeproto.h>
|
||||
|
||||
#include <xf86Crtc.h>
|
||||
#include <selection.h>
|
||||
-#include <compositeext.h>
|
||||
#include <exevents.h>
|
||||
|
||||
#include "xwayland.h"
|
||||
@@ -86,49 +84,6 @@ xwl_window_attach(struct xwl_window *xwl_window, PixmapPtr pixmap)
|
||||
pixmap->refcnt++;
|
||||
}
|
||||
|
||||
-static Bool
|
||||
-xwl_create_window(WindowPtr window)
|
||||
-{
|
||||
- ScreenPtr screen = window->drawable.pScreen;
|
||||
- struct xwl_screen *xwl_screen;
|
||||
- Bool ret;
|
||||
-
|
||||
- xwl_screen = xwl_screen_get(screen);
|
||||
-
|
||||
- screen->CreateWindow = xwl_screen->CreateWindow;
|
||||
- ret = (*screen->CreateWindow)(window);
|
||||
- xwl_screen->CreateWindow = screen->CreateWindow;
|
||||
- screen->CreateWindow = xwl_create_window;
|
||||
-
|
||||
- if (!(xwl_screen->flags & XWL_FLAGS_ROOTLESS) ||
|
||||
- window->parent != NULL)
|
||||
- return ret;
|
||||
-
|
||||
- CompositeRedirectSubwindows(window, CompositeRedirectManual);
|
||||
-
|
||||
- return ret;
|
||||
-}
|
||||
-
|
||||
-static int
|
||||
-xwl_destroy_window (WindowPtr window)
|
||||
-{
|
||||
- ScreenPtr screen = window->drawable.pScreen;
|
||||
- struct xwl_screen *xwl_screen;
|
||||
- Bool ret;
|
||||
-
|
||||
- if (window->parent == NULL)
|
||||
- CompositeUnRedirectSubwindows (window, CompositeRedirectManual);
|
||||
-
|
||||
- xwl_screen = xwl_screen_get(screen);
|
||||
-
|
||||
- screen->DestroyWindow = xwl_screen->DestroyWindow;
|
||||
- ret = (*screen->DestroyWindow)(window);
|
||||
- xwl_screen->DestroyWindow = screen->DestroyWindow;
|
||||
- screen->DestroyWindow = xwl_destroy_window;
|
||||
-
|
||||
- return ret;
|
||||
-}
|
||||
-
|
||||
static void
|
||||
damage_report(DamagePtr pDamage, RegionPtr pRegion, void *data)
|
||||
{
|
||||
@@ -290,12 +245,6 @@ xwl_screen_init_window(struct xwl_screen *xwl_screen, ScreenPtr screen)
|
||||
if (!dixRegisterPrivateKey(&xwl_window_private_key, PRIVATE_WINDOW, 0))
|
||||
return BadAlloc;
|
||||
|
||||
- xwl_screen->CreateWindow = screen->CreateWindow;
|
||||
- screen->CreateWindow = xwl_create_window;
|
||||
-
|
||||
- xwl_screen->DestroyWindow = screen->DestroyWindow;
|
||||
- screen->DestroyWindow = xwl_destroy_window;
|
||||
-
|
||||
xwl_screen->RealizeWindow = screen->RealizeWindow;
|
||||
screen->RealizeWindow = xwl_realize_window;
|
||||
|
||||
--
|
||||
1.8.3.1
|
@ -0,0 +1,67 @@
|
||||
From 15a94f4f263cfe848382e0587a68d48da31a24b3 Mon Sep 17 00:00:00 2001
|
||||
From: =?UTF-8?q?Kristian=20H=C3=B8gsberg?= <krh@bitplanet.net>
|
||||
Date: Fri, 11 Oct 2013 16:40:39 -0700
|
||||
Subject: [PATCH 35/39] Revert "Export CompositeRedirectSubwindows and
|
||||
CompositeUnRedirectSubwindows"
|
||||
|
||||
This reverts commit 15a7e62a9848f2089180c49b02887565d29bb896.
|
||||
|
||||
Now that we don't redirect windows on behalf of the wm, we don't need this.
|
||||
---
|
||||
composite/compalloc.c | 11 -----------
|
||||
composite/compositeext.h | 4 ----
|
||||
2 files changed, 15 deletions(-)
|
||||
|
||||
diff --git a/composite/compalloc.c b/composite/compalloc.c
|
||||
index 98b27b1..b7d731e 100644
|
||||
--- a/composite/compalloc.c
|
||||
+++ b/composite/compalloc.c
|
||||
@@ -46,7 +46,6 @@
|
||||
#endif
|
||||
|
||||
#include "compint.h"
|
||||
-#include "compositeext.h"
|
||||
|
||||
static void
|
||||
compScreenUpdate(ScreenPtr pScreen)
|
||||
@@ -412,11 +411,6 @@ compRedirectSubwindows(ClientPtr pClient, WindowPtr pWin, int update)
|
||||
return Success;
|
||||
}
|
||||
|
||||
-int CompositeRedirectSubwindows (WindowPtr pWin, int update)
|
||||
-{
|
||||
- return compRedirectSubwindows (serverClient, pWin, update);
|
||||
-}
|
||||
-
|
||||
/*
|
||||
* Free one of the per-client per-subwindows resources,
|
||||
* which frees one redirect per subwindow
|
||||
@@ -488,11 +482,6 @@ compUnredirectSubwindows(ClientPtr pClient, WindowPtr pWin, int update)
|
||||
return BadValue;
|
||||
}
|
||||
|
||||
-int CompositeUnRedirectSubwindows (WindowPtr pWin, int update)
|
||||
-{
|
||||
- return compUnredirectSubwindows (serverClient, pWin, update);
|
||||
-}
|
||||
-
|
||||
/*
|
||||
* Add redirection information for one subwindow (during reparent)
|
||||
*/
|
||||
diff --git a/composite/compositeext.h b/composite/compositeext.h
|
||||
index a072966..0b148f0 100644
|
||||
--- a/composite/compositeext.h
|
||||
+++ b/composite/compositeext.h
|
||||
@@ -34,10 +34,6 @@
|
||||
extern _X_EXPORT Bool CompositeRegisterAlternateVisuals(ScreenPtr pScreen,
|
||||
VisualID * vids,
|
||||
int nVisuals);
|
||||
-extern _X_EXPORT int CompositeRedirectSubwindows(WindowPtr pWin,
|
||||
- int update);
|
||||
-extern _X_EXPORT int CompositeUnRedirectSubwindows (WindowPtr pWin,
|
||||
- int update);
|
||||
|
||||
extern _X_EXPORT RESTYPE CompositeClientWindowType;
|
||||
|
||||
--
|
||||
1.8.3.1
|
37
0036-xwayland-Fix-hidden-cursor.patch
Normal file
37
0036-xwayland-Fix-hidden-cursor.patch
Normal file
@ -0,0 +1,37 @@
|
||||
From 00e15ddb814dd39bbe7915fff7920aa90ca52cea Mon Sep 17 00:00:00 2001
|
||||
From: Trevor McCort <tjmccort@gmail.com>
|
||||
Date: Tue, 15 Oct 2013 19:41:12 -0500
|
||||
Subject: [PATCH 36/39] xwayland: Fix hidden cursor
|
||||
|
||||
If a cursor is set when bits->emptyMask is true, the xserver
|
||||
sets a NULL cursor instead.
|
||||
|
||||
Signed-off-by: Trevor McCort <tjmccort@gmail.com>
|
||||
---
|
||||
hw/xfree86/xwayland/xwayland-cursor.c | 9 ++++++++-
|
||||
1 file changed, 8 insertions(+), 1 deletion(-)
|
||||
|
||||
diff --git a/hw/xfree86/xwayland/xwayland-cursor.c b/hw/xfree86/xwayland/xwayland-cursor.c
|
||||
index 2cdd248..2b3cb5e 100644
|
||||
--- a/hw/xfree86/xwayland/xwayland-cursor.c
|
||||
+++ b/hw/xfree86/xwayland/xwayland-cursor.c
|
||||
@@ -153,9 +153,16 @@ xwl_seat_set_cursor(struct xwl_seat *xwl_seat)
|
||||
{
|
||||
struct wl_buffer *buffer;
|
||||
|
||||
- if (!xwl_seat->x_cursor || !xwl_seat->wl_pointer)
|
||||
+ if (!xwl_seat->wl_pointer)
|
||||
return;
|
||||
|
||||
+ if (!xwl_seat->x_cursor) {
|
||||
+ wl_pointer_set_cursor(xwl_seat->wl_pointer,
|
||||
+ xwl_seat->pointer_enter_serial,
|
||||
+ NULL, 0, 0);
|
||||
+ return;
|
||||
+ }
|
||||
+
|
||||
buffer = dixGetPrivate(&xwl_seat->x_cursor->devPrivates,
|
||||
&xwl_seat->xwl_screen->cursor_private_key);
|
||||
|
||||
--
|
||||
1.8.3.1
|
@ -0,0 +1,98 @@
|
||||
From 1af712071d2cf7aac5232da166276d38cded68e7 Mon Sep 17 00:00:00 2001
|
||||
From: Rui Matos <tiagomatos@gmail.com>
|
||||
Date: Tue, 22 Oct 2013 16:50:29 +0200
|
||||
Subject: [PATCH 37/39] xkb: Repurpose XkbCopyDeviceKeymap to apply a given
|
||||
keymap to a device
|
||||
|
||||
This will also make it useful for cases when we have a new keymap to
|
||||
apply to a device but don't have a source device.
|
||||
---
|
||||
Xi/exevents.c | 2 +-
|
||||
include/xkbsrv.h | 4 ++--
|
||||
xkb/xkb.c | 2 +-
|
||||
xkb/xkbUtils.c | 14 +++++++-------
|
||||
4 files changed, 11 insertions(+), 11 deletions(-)
|
||||
|
||||
diff --git a/Xi/exevents.c b/Xi/exevents.c
|
||||
index f510a9e..5b6d370 100644
|
||||
--- a/Xi/exevents.c
|
||||
+++ b/Xi/exevents.c
|
||||
@@ -230,7 +230,7 @@ CopyKeyClass(DeviceIntPtr device, DeviceIntPtr master)
|
||||
|
||||
mk->sourceid = device->id;
|
||||
|
||||
- if (!XkbCopyDeviceKeymap(master, device))
|
||||
+ if (!XkbDeviceApplyKeymap(master, device->key->xkbInfo->desc))
|
||||
FatalError("Couldn't pivot keymap from device to core!\n");
|
||||
}
|
||||
|
||||
diff --git a/include/xkbsrv.h b/include/xkbsrv.h
|
||||
index bef98ef..83ee1d0 100644
|
||||
--- a/include/xkbsrv.h
|
||||
+++ b/include/xkbsrv.h
|
||||
@@ -812,8 +812,8 @@ extern _X_EXPORT void XkbSendNewKeyboardNotify(DeviceIntPtr /* kbd */ ,
|
||||
extern Bool XkbCopyKeymap(XkbDescPtr /* dst */ ,
|
||||
XkbDescPtr /* src */ );
|
||||
|
||||
-extern _X_EXPORT Bool XkbCopyDeviceKeymap(DeviceIntPtr /* dst */ ,
|
||||
- DeviceIntPtr /* src */ );
|
||||
+extern _X_EXPORT Bool XkbDeviceApplyKeymap(DeviceIntPtr /* dst */ ,
|
||||
+ XkbDescPtr /* src */ );
|
||||
|
||||
extern void XkbFilterEvents(ClientPtr /* pClient */ ,
|
||||
int /* nEvents */ ,
|
||||
diff --git a/xkb/xkb.c b/xkb/xkb.c
|
||||
index c78aceb..7a631b8 100644
|
||||
--- a/xkb/xkb.c
|
||||
+++ b/xkb/xkb.c
|
||||
@@ -5991,7 +5991,7 @@ ProcXkbGetKbdByName(ClientPtr client)
|
||||
continue;
|
||||
|
||||
if (tmpd != dev)
|
||||
- XkbCopyDeviceKeymap(tmpd, dev);
|
||||
+ XkbDeviceApplyKeymap(tmpd, xkb);
|
||||
|
||||
if (tmpd->kbdfeed && tmpd->kbdfeed->xkb_sli) {
|
||||
old_sli = tmpd->kbdfeed->xkb_sli;
|
||||
diff --git a/xkb/xkbUtils.c b/xkb/xkbUtils.c
|
||||
index 6c6af60..1f8a839 100644
|
||||
--- a/xkb/xkbUtils.c
|
||||
+++ b/xkb/xkbUtils.c
|
||||
@@ -1999,28 +1999,28 @@ XkbCopyKeymap(XkbDescPtr dst, XkbDescPtr src)
|
||||
}
|
||||
|
||||
Bool
|
||||
-XkbCopyDeviceKeymap(DeviceIntPtr dst, DeviceIntPtr src)
|
||||
+XkbDeviceApplyKeymap(DeviceIntPtr dst, XkbDescPtr desc)
|
||||
{
|
||||
xkbNewKeyboardNotify nkn;
|
||||
Bool ret;
|
||||
|
||||
- if (!dst->key || !src->key)
|
||||
+ if (!dst->key || !desc)
|
||||
return FALSE;
|
||||
|
||||
memset(&nkn, 0, sizeof(xkbNewKeyboardNotify));
|
||||
nkn.oldMinKeyCode = dst->key->xkbInfo->desc->min_key_code;
|
||||
nkn.oldMaxKeyCode = dst->key->xkbInfo->desc->max_key_code;
|
||||
nkn.deviceID = dst->id;
|
||||
- nkn.oldDeviceID = dst->id; /* maybe src->id? */
|
||||
- nkn.minKeyCode = src->key->xkbInfo->desc->min_key_code;
|
||||
- nkn.maxKeyCode = src->key->xkbInfo->desc->max_key_code;
|
||||
+ nkn.oldDeviceID = dst->id;
|
||||
+ nkn.minKeyCode = desc->min_key_code;
|
||||
+ nkn.maxKeyCode = desc->max_key_code;
|
||||
nkn.requestMajor = XkbReqCode;
|
||||
nkn.requestMinor = X_kbSetMap; /* Near enough's good enough. */
|
||||
nkn.changed = XkbNKN_KeycodesMask;
|
||||
- if (src->key->xkbInfo->desc->geom)
|
||||
+ if (desc->geom)
|
||||
nkn.changed |= XkbNKN_GeometryMask;
|
||||
|
||||
- ret = XkbCopyKeymap(dst->key->xkbInfo->desc, src->key->xkbInfo->desc);
|
||||
+ ret = XkbCopyKeymap(dst->key->xkbInfo->desc, desc);
|
||||
if (ret)
|
||||
XkbSendNewKeyboardNotify(dst, &nkn);
|
||||
|
||||
--
|
||||
1.8.3.1
|
@ -0,0 +1,90 @@
|
||||
From 50904d21bffcd88bede056d10e7826d5f6c83278 Mon Sep 17 00:00:00 2001
|
||||
From: Rui Matos <tiagomatos@gmail.com>
|
||||
Date: Mon, 21 Oct 2013 14:41:53 +0200
|
||||
Subject: [PATCH 38/39] xkb: Factor out a function to copy a keymap's controls
|
||||
unto another
|
||||
|
||||
---
|
||||
include/xkbsrv.h | 3 +++
|
||||
xkb/xkb.c | 14 +-------------
|
||||
xkb/xkbUtils.c | 23 +++++++++++++++++++++++
|
||||
3 files changed, 27 insertions(+), 13 deletions(-)
|
||||
|
||||
diff --git a/include/xkbsrv.h b/include/xkbsrv.h
|
||||
index 83ee1d0..6a2e96e 100644
|
||||
--- a/include/xkbsrv.h
|
||||
+++ b/include/xkbsrv.h
|
||||
@@ -829,6 +829,9 @@ extern void XkbFakeDeviceButton(DeviceIntPtr /* dev */ ,
|
||||
int /* press */ ,
|
||||
int /* button */ );
|
||||
|
||||
+extern _X_EXPORT void XkbCopyControls(XkbDescPtr /* dst */ ,
|
||||
+ XkbDescPtr /* src */ );
|
||||
+
|
||||
#include "xkbfile.h"
|
||||
#include "xkbrules.h"
|
||||
|
||||
diff --git a/xkb/xkb.c b/xkb/xkb.c
|
||||
index 7a631b8..6a68e81 100644
|
||||
--- a/xkb/xkb.c
|
||||
+++ b/xkb/xkb.c
|
||||
@@ -5950,25 +5950,13 @@ ProcXkbGetKbdByName(ClientPtr client)
|
||||
if (rep.loaded) {
|
||||
XkbDescPtr old_xkb;
|
||||
xkbNewKeyboardNotify nkn;
|
||||
- int i, nG, nTG;
|
||||
|
||||
old_xkb = xkb;
|
||||
xkb = new;
|
||||
dev->key->xkbInfo->desc = xkb;
|
||||
new = old_xkb; /* so it'll get freed automatically */
|
||||
|
||||
- *xkb->ctrls = *old_xkb->ctrls;
|
||||
- for (nG = nTG = 0, i = xkb->min_key_code; i <= xkb->max_key_code; i++) {
|
||||
- nG = XkbKeyNumGroups(xkb, i);
|
||||
- if (nG >= XkbNumKbdGroups) {
|
||||
- nTG = XkbNumKbdGroups;
|
||||
- break;
|
||||
- }
|
||||
- if (nG > nTG) {
|
||||
- nTG = nG;
|
||||
- }
|
||||
- }
|
||||
- xkb->ctrls->num_groups = nTG;
|
||||
+ XkbCopyControls(xkb, old_xkb);
|
||||
|
||||
nkn.deviceID = nkn.oldDeviceID = dev->id;
|
||||
nkn.minKeyCode = new->min_key_code;
|
||||
diff --git a/xkb/xkbUtils.c b/xkb/xkbUtils.c
|
||||
index 1f8a839..6cf6e79 100644
|
||||
--- a/xkb/xkbUtils.c
|
||||
+++ b/xkb/xkbUtils.c
|
||||
@@ -2090,3 +2090,26 @@ XkbMergeLockedPtrBtns(DeviceIntPtr master)
|
||||
xkbi->lockedPtrButtons |= d->key->xkbInfo->lockedPtrButtons;
|
||||
}
|
||||
}
|
||||
+
|
||||
+void
|
||||
+XkbCopyControls(XkbDescPtr dst, XkbDescPtr src)
|
||||
+{
|
||||
+ int i, nG, nTG;
|
||||
+
|
||||
+ if (!dst || !src)
|
||||
+ return;
|
||||
+
|
||||
+ *dst->ctrls = *src->ctrls;
|
||||
+
|
||||
+ for (nG = nTG = 0, i = dst->min_key_code; i <= dst->max_key_code; i++) {
|
||||
+ nG = XkbKeyNumGroups(dst, i);
|
||||
+ if (nG >= XkbNumKbdGroups) {
|
||||
+ nTG = XkbNumKbdGroups;
|
||||
+ break;
|
||||
+ }
|
||||
+ if (nG > nTG) {
|
||||
+ nTG = nG;
|
||||
+ }
|
||||
+ }
|
||||
+ dst->ctrls->num_groups = nTG;
|
||||
+}
|
||||
--
|
||||
1.8.3.1
|
86
0039-xwayland-Handle-keymap-changes.patch
Normal file
86
0039-xwayland-Handle-keymap-changes.patch
Normal file
@ -0,0 +1,86 @@
|
||||
From f56320a89c3da88bc844069e33edf34cca09e39a Mon Sep 17 00:00:00 2001
|
||||
From: Rui Matos <tiagomatos@gmail.com>
|
||||
Date: Mon, 21 Oct 2013 14:41:54 +0200
|
||||
Subject: [PATCH 39/39] xwayland: Handle keymap changes
|
||||
|
||||
---
|
||||
hw/xfree86/xwayland/xwayland-input.c | 39 +++++++++++++++++++++++++++++++++---
|
||||
include/input.h | 2 +-
|
||||
2 files changed, 37 insertions(+), 4 deletions(-)
|
||||
|
||||
diff --git a/hw/xfree86/xwayland/xwayland-input.c b/hw/xfree86/xwayland/xwayland-input.c
|
||||
index d031b34..ebf1af1 100644
|
||||
--- a/hw/xfree86/xwayland/xwayland-input.c
|
||||
+++ b/hw/xfree86/xwayland/xwayland-input.c
|
||||
@@ -143,7 +143,10 @@ xwl_keyboard_proc(DeviceIntPtr device, int what)
|
||||
switch (what) {
|
||||
case DEVICE_INIT:
|
||||
device->public.on = FALSE;
|
||||
- len = strnlen(xwl_seat->keymap, xwl_seat->keymap_size);
|
||||
+ if (xwl_seat->keymap)
|
||||
+ len = strnlen(xwl_seat->keymap, xwl_seat->keymap_size);
|
||||
+ else
|
||||
+ len = 0;
|
||||
if (!InitKeyboardDeviceStructFromString(device, xwl_seat->keymap,
|
||||
len,
|
||||
NULL, xwl_keyboard_control))
|
||||
@@ -453,12 +456,42 @@ keyboard_handle_keymap(void *data, struct wl_keyboard *keyboard,
|
||||
uint32_t format, int fd, uint32_t size)
|
||||
{
|
||||
struct xwl_seat *xwl_seat = data;
|
||||
+ DeviceIntPtr master;
|
||||
+ XkbDescPtr xkb;
|
||||
+ XkbChangesRec changes = { 0 };
|
||||
+
|
||||
+ if (xwl_seat->keymap)
|
||||
+ munmap(xwl_seat->keymap, xwl_seat->keymap_size);
|
||||
|
||||
xwl_seat->keymap_size = size;
|
||||
xwl_seat->keymap = mmap(NULL, size, PROT_READ, MAP_SHARED, fd, 0);
|
||||
- if (xwl_seat->keymap == MAP_FAILED)
|
||||
- ; /* wah wah */
|
||||
+ if (xwl_seat->keymap == MAP_FAILED) {
|
||||
+ xwl_seat->keymap_size = 0;
|
||||
+ xwl_seat->keymap = NULL;
|
||||
+ goto out;
|
||||
+ }
|
||||
+
|
||||
+ if (!xwl_seat->keyboard)
|
||||
+ goto out;
|
||||
+
|
||||
+ xkb = XkbCompileKeymapFromString(xwl_seat->keyboard, xwl_seat->keymap,
|
||||
+ strnlen(xwl_seat->keymap, xwl_seat->keymap_size));
|
||||
+ if (!xkb)
|
||||
+ goto out;
|
||||
+
|
||||
+ XkbUpdateDescActions(xkb, xkb->min_key_code, XkbNumKeys(xkb), &changes);
|
||||
+ /* Keep the current controls */
|
||||
+ XkbCopyControls(xkb, xwl_seat->keyboard->key->xkbInfo->desc);
|
||||
+
|
||||
+ XkbDeviceApplyKeymap(xwl_seat->keyboard, xkb);
|
||||
+
|
||||
+ master = GetMaster(xwl_seat->keyboard, MASTER_KEYBOARD);
|
||||
+ if (master && master->lastSlave == xwl_seat->keyboard)
|
||||
+ XkbDeviceApplyKeymap(master, xkb);
|
||||
+
|
||||
+ XkbFreeKeyboard(xkb, XkbAllComponentsMask, TRUE);
|
||||
|
||||
+ out:
|
||||
close(fd);
|
||||
}
|
||||
|
||||
diff --git a/include/input.h b/include/input.h
|
||||
index 6573a3a..1edcedc 100644
|
||||
--- a/include/input.h
|
||||
+++ b/include/input.h
|
||||
@@ -508,7 +508,7 @@ extern int AttachDevice(ClientPtr client,
|
||||
DeviceIntPtr slave, DeviceIntPtr master);
|
||||
|
||||
extern _X_EXPORT DeviceIntPtr GetPairedDevice(DeviceIntPtr kbd);
|
||||
-extern DeviceIntPtr GetMaster(DeviceIntPtr dev, int type);
|
||||
+extern _X_EXPORT DeviceIntPtr GetMaster(DeviceIntPtr dev, int type);
|
||||
|
||||
extern _X_EXPORT int AllocDevicePair(ClientPtr client,
|
||||
const char *name,
|
||||
--
|
||||
1.8.3.1
|
@ -5,10 +5,10 @@
|
||||
|
||||
builddir="abi-rebuild"
|
||||
|
||||
if [ -e "$builddir" ]; then
|
||||
echo "Path '$builddir' exists. Move out of the way first"
|
||||
exit 1
|
||||
fi
|
||||
#if [ -e "$builddir" ]; then
|
||||
# echo "Path '$builddir' exists. Move out of the way first"
|
||||
# exit 1
|
||||
#fi
|
||||
|
||||
mkdir -p $builddir
|
||||
pushd $builddir
|
||||
@ -36,11 +36,15 @@ extradrivers="xorg-x11-drv-ivtv"
|
||||
rm -rf xorg-x11-drivers
|
||||
echo $driverlist $extradrivers | xargs -n1 $pkg co $branch
|
||||
|
||||
for i in */ ; do
|
||||
for i in xorg-x11-drv-*/ ; do
|
||||
[ -e $i/dead.package ] && continue
|
||||
pushd $i
|
||||
rpmdev-bumpspec -c "- ABI rebuild" *.spec
|
||||
$pkg commit -c -p && $pkg build --nowait
|
||||
#$pkg commit -c -p && $pkg build --nowait
|
||||
#$pkg mockbuild
|
||||
$pkg srpm
|
||||
#mockchain -r fedora-20-x86_64 -l $OLDPWD
|
||||
#mockchain -r rhel-7.0-candidate-x86_64 -l $OLDPWD
|
||||
popd
|
||||
done
|
||||
|
||||
|
@ -8,8 +8,8 @@
|
||||
# format, and add a PatchN: line. If you want to push something upstream,
|
||||
# check out the master branch, pull, cherry-pick, and push.
|
||||
|
||||
#global gitdate 20130215
|
||||
%global stable_abi 1
|
||||
%global gitdate 20131021
|
||||
%global stable_abi 0
|
||||
|
||||
%if !0%{?gitdate} || %{stable_abi}
|
||||
# Released ABI versions. Have to keep these manually in sync with the
|
||||
@ -41,8 +41,8 @@
|
||||
|
||||
Summary: X.Org X11 X server
|
||||
Name: xorg-x11-server
|
||||
Version: 1.14.3
|
||||
Release: 6%{?gitdate:.%{gitdate}}%{dist}
|
||||
Version: 1.14.99.3
|
||||
Release: 1%{?gitdate:.%{gitdate}}%{dist}
|
||||
URL: http://www.x.org
|
||||
License: MIT
|
||||
Group: User Interface/X
|
||||
@ -51,7 +51,8 @@ Group: User Interface/X
|
||||
%if 0%{?gitdate}
|
||||
# git snapshot. to recreate, run:
|
||||
# ./make-git-snapshot.sh `cat commitid`
|
||||
Source0: xorg-server-%{gitdate}.tar.xz
|
||||
#Source0: xorg-server-%{gitdate}.tar.xz
|
||||
Source0: http://www.x.org/pub/individual/xserver/%{pkgname}-%{version}.tar.bz2
|
||||
Source1: make-git-snapshot.sh
|
||||
Source2: commitid
|
||||
%else
|
||||
@ -73,6 +74,48 @@ Source31: xserver-sdk-abi-requires.git
|
||||
# maintainer convenience script
|
||||
Source40: driver-abi-rebuild.sh
|
||||
|
||||
# xwayland. trivial rebase onto master:
|
||||
# http://cgit.freedesktop.org/~ajax/xserver/log/?h=wl-rebase-for-f20
|
||||
Patch0000: 0001-dbe-Cleanup-in-CloseScreen-hook-not-ext-CloseDown.patch
|
||||
Patch0001: 0002-xkb-Add-struct-XkbCompContext.patch
|
||||
Patch0002: 0003-xkb-Split-out-code-to-start-and-finish-xkbcomp.patch
|
||||
Patch0003: 0004-xkb-Add-XkbCompileKeymapFromString.patch
|
||||
Patch0004: 0005-configure-Track-updated-version-of-libxtrans.patch
|
||||
Patch0005: 0006-os-Add-a-function-to-create-a-client-for-an-fd.patch
|
||||
Patch0006: 0007-Export-xf86NewInputDevice-and-xf86AllocateInput.patch
|
||||
Patch0007: 0008-Export-CompositeRedirectSubwindows-and-CompositeUnRe.patch
|
||||
Patch0008: 0009-Add-redirect-window-for-input-device-feature.patch
|
||||
Patch0009: 0010-dri2-Introduce-a-third-version-of-the-AuthMagic-func.patch
|
||||
Patch0010: 0011-Add-xwayland-module.patch
|
||||
Patch0011: 0012-xwayland-Add-a-HW_WAYLAND-flag-to-let-drivers-explic.patch
|
||||
Patch0012: 0013-xwayland-shm-don-t-create-alpha-buffers-if-the-windo.patch
|
||||
Patch0013: 0014-xwayland-handle-global-object-destruction.patch
|
||||
Patch0014: 0015-xwayland-add-support-for-multiple-outputs.patch
|
||||
Patch0015: 0016-xwayland-Probe-outputs-on-preinit.patch
|
||||
Patch0016: 0017-XFree86-Load-wlshm-driver-as-fallback-for-Wayland.patch
|
||||
Patch0017: 0018-XWayland-Don-t-send-out-of-bounds-damage-co-ordinate.patch
|
||||
Patch0018: 0019-xwayland-Introduce-an-auto-mode-for-enable-wayland.patch
|
||||
Patch0019: 0020-XWayland-Don-t-hardcode-DRM-libs-and-lwayland-client.patch
|
||||
Patch0020: 0021-XWayland-Support-16bpp-X-surfaces-in-DRM-SHM.patch
|
||||
Patch0021: 0022-xwayland-Remove-Xdnd-selection-watching-code.patch
|
||||
Patch0022: 0023-xf86Init-trim-out-non-wayland-capable-servers-from-d.patch
|
||||
Patch0023: 0024-Add-XORG_WAYLAND-symbol-to-xorg-config.h.in.patch
|
||||
Patch0024: 0025-Fix-fallback-loading-of-the-wayland-driver.patch
|
||||
Patch0025: 0026-xwayland-Don-t-include-xorg-server.h.patch
|
||||
Patch0026: 0027-os-Don-t-include-xorg-server.h.patch
|
||||
Patch0027: 0028-os-Also-define-ListenOnOpenFD-and-AddClientOnOpenFD-.patch
|
||||
Patch0028: 0029-xwayland-Remove-unused-variables.patch
|
||||
Patch0029: 0030-xwayland-Use-a-per-screen-private-key-for-cursor-pri.patch
|
||||
Patch0030: 0031-XWayland-Don-t-commit-empty-surfaces.patch
|
||||
Patch0031: 0032-xwayland-Also-look-for-wlglamor.patch
|
||||
Patch0032: 0033-xwayland-Add-wlglamor-the-right-way.patch
|
||||
Patch0033: 0034-xwayland-Don-t-redirect-windows-leave-it-to-the-wm.patch
|
||||
Patch0034: 0035-Revert-Export-CompositeRedirectSubwindows-and-Compos.patch
|
||||
Patch0035: 0036-xwayland-Fix-hidden-cursor.patch
|
||||
Patch0036: 0037-xkb-Repurpose-XkbCopyDeviceKeymap-to-apply-a-given-k.patch
|
||||
Patch0037: 0038-xkb-Factor-out-a-function-to-copy-a-keymap-s-control.patch
|
||||
Patch0038: 0039-xwayland-Handle-keymap-changes.patch
|
||||
|
||||
# Trivial things to never merge upstream ever:
|
||||
# This really could be done prettier.
|
||||
Patch5002: xserver-1.4.99-ssh-isnt-local.patch
|
||||
@ -84,9 +127,6 @@ Patch6011: xserver-1.6.0-less-acpi-brokenness.patch
|
||||
Patch6030: xserver-1.6.99-right-of.patch
|
||||
#Patch6044: xserver-1.6.99-hush-prerelease-warning.patch
|
||||
|
||||
# upstream submitted
|
||||
Patch6052: 0001-randr-upstream-set-changed-fixes.patch
|
||||
|
||||
# Fix libselinux-triggered build error
|
||||
# RedHat/Fedora-specific patch
|
||||
Patch7013: xserver-1.12-Xext-fix-selinux-build-failure.patch
|
||||
@ -104,56 +144,14 @@ Patch7052: 0001-xf86-return-NULL-for-compat-output-if-no-outputs.patch
|
||||
# mustard: make the default queue length bigger to calm abrt down
|
||||
Patch7064: 0001-mieq-Bump-default-queue-size-to-512.patch
|
||||
|
||||
# scale events from abs devices in relative mode to something useful
|
||||
Patch8003: 0004-dix-pre-scale-x-by-the-screen-device-resolution-rati.patch
|
||||
Patch8004: 0005-dix-scale-y-back-instead-of-x-up-when-pre-scaling-co.patch
|
||||
|
||||
# Bug 962572 - X-sandboxes are not resizeable
|
||||
Patch8038: 0001-ephyr-Add-resizeable-option.patch
|
||||
|
||||
# Fix multiple monitors in reverse optimus configurations
|
||||
Patch8040: 0001-rrcrtc-brackets-are-hard-lets-go-shopping.patch
|
||||
Patch8041: 0001-pixmap-fix-reverse-optimus-support-with-multiple-hea.patch
|
||||
|
||||
# upstream in -next for 1.15, e21e183059df5975e7086850d1931edb2c1bbd06
|
||||
%if !0%{?rhel}
|
||||
Patch7071: 0001-os-use-libunwind-to-generate-backtraces.patch
|
||||
%endif
|
||||
|
||||
# xwayland. trivial backport from master to 1.14:
|
||||
# http://cgit.freedesktop.org/~ajax/xserver/log/?h=xwayland-1.14
|
||||
Patch9001: 0001-dbe-Cleanup-in-CloseScreen-hook-not-ext-CloseDown.patch
|
||||
Patch9002: 0002-xkb-Add-struct-XkbCompContext.patch
|
||||
Patch9003: 0003-xkb-Split-out-code-to-start-and-finish-xkbcomp.patch
|
||||
Patch9004: 0004-xkb-Add-XkbCompileKeymapFromString.patch
|
||||
Patch9005: 0005-configure-Track-updated-version-of-libxtrans.patch
|
||||
Patch9006: 0006-os-Add-a-function-to-create-a-client-for-an-fd.patch
|
||||
Patch9007: 0007-Export-xf86NewInputDevice-and-xf86AllocateInput.patch
|
||||
Patch9008: 0008-Export-CompositeRedirectSubwindows-and-CompositeUnRe.patch
|
||||
Patch9009: 0009-Add-redirect-window-for-input-device-feature.patch
|
||||
Patch9010: 0010-dri2-Introduce-a-third-version-of-the-AuthMagic-func.patch
|
||||
Patch9011: 0011-Add-xwayland-module.patch
|
||||
Patch9012: 0012-xwayland-Add-a-HW_WAYLAND-flag-to-let-drivers-explic.patch
|
||||
Patch9013: 0013-xwayland-shm-don-t-create-alpha-buffers-if-the-windo.patch
|
||||
Patch9014: 0014-xwayland-handle-global-object-destruction.patch
|
||||
Patch9015: 0015-xwayland-add-support-for-multiple-outputs.patch
|
||||
Patch9016: 0016-xwayland-Probe-outputs-on-preinit.patch
|
||||
Patch9017: 0017-XFree86-Load-wlshm-driver-as-fallback-for-Wayland.patch
|
||||
Patch9018: 0018-XWayland-Don-t-send-out-of-bounds-damage-co-ordinate.patch
|
||||
Patch9019: 0019-xwayland-Introduce-an-auto-mode-for-enable-wayland.patch
|
||||
Patch9020: 0020-XWayland-Don-t-hardcode-DRM-libs-and-lwayland-client.patch
|
||||
Patch9021: 0021-XWayland-Support-16bpp-X-surfaces-in-DRM-SHM.patch
|
||||
Patch9022: 0022-xwayland-Remove-Xdnd-selection-watching-code.patch
|
||||
Patch9023: 0023-xf86Init-trim-out-non-wayland-capable-servers-from-d.patch
|
||||
Patch9024: 0024-Add-XORG_WAYLAND-symbol-to-xorg-config.h.in.patch
|
||||
Patch9025: 0025-Fix-fallback-loading-of-the-wayland-driver.patch
|
||||
Patch9026: 0026-xwayland-Don-t-include-xorg-server.h.patch
|
||||
Patch9027: 0027-os-Don-t-include-xorg-server.h.patch
|
||||
Patch9028: 0028-os-Also-define-ListenOnOpenFD-and-AddClientOnOpenFD-.patch
|
||||
Patch9029: 0029-xwayland-Remove-unused-variables.patch
|
||||
Patch9030: 0030-xwayland-Use-a-per-screen-private-key-for-cursor-pri.patch
|
||||
Patch9031: 0001-xfree86-Only-look-at-wayland-capable-drivers-when-wa.patch
|
||||
Patch9032: 0001-xwayland-Just-send-the-bounding-box-of-the-damage.patch
|
||||
# extra magic to be upstreamed
|
||||
Patch9001: 0001-xfree86-Only-look-at-wayland-capable-drivers-when-wa.patch
|
||||
Patch9002: 0001-xwayland-Just-send-the-bounding-box-of-the-damage.patch
|
||||
Patch9003: 0001-xwayland-Port-to-new-damage-API.patch
|
||||
|
||||
# Bug 1019821: Xdmx mouse after button-click goes to upper-left position
|
||||
Patch9040: 0001-dmx-queue-button-events-with-valid-valuators.patch
|
||||
@ -184,12 +182,12 @@ Patch9040: 0001-dmx-queue-button-events-with-valid-valuators.patch
|
||||
BuildRequires: systemtap-sdt-devel
|
||||
BuildRequires: git-core
|
||||
BuildRequires: automake autoconf libtool pkgconfig
|
||||
BuildRequires: xorg-x11-util-macros >= 1.1.5
|
||||
BuildRequires: xorg-x11-util-macros >= 1.17
|
||||
|
||||
BuildRequires: xorg-x11-proto-devel >= 7.6-20
|
||||
BuildRequires: xorg-x11-proto-devel >= 7.7-6
|
||||
BuildRequires: xorg-x11-font-utils >= 7.2-11
|
||||
|
||||
BuildRequires: xorg-x11-xtrans-devel >= 1.2.2-1
|
||||
BuildRequires: xorg-x11-xtrans-devel >= 1.2.7
|
||||
BuildRequires: libXfont-devel libXau-devel libxkbfile-devel libXres-devel
|
||||
BuildRequires: libfontenc-devel libXtst-devel libXdmcp-devel
|
||||
BuildRequires: libX11-devel libXext-devel
|
||||
@ -201,9 +199,9 @@ BuildRequires: libXi-devel libXpm-devel libXaw-devel libXfixes-devel
|
||||
|
||||
BuildRequires: libXv-devel
|
||||
BuildRequires: wayland-devel pkgconfig(wayland-client)
|
||||
BuildRequires: pixman-devel >= 0.21.8
|
||||
BuildRequires: libpciaccess-devel >= 0.12.901-1 openssl-devel byacc flex
|
||||
BuildRequires: mesa-libGL-devel >= 7.6-0.6
|
||||
BuildRequires: pixman-devel >= 0.30.0
|
||||
BuildRequires: libpciaccess-devel >= 0.13.1 openssl-devel byacc flex
|
||||
BuildRequires: mesa-libGL-devel >= 9.2
|
||||
# XXX silly...
|
||||
BuildRequires: libdrm-devel >= 2.4.0 kernel-headers
|
||||
|
||||
@ -216,6 +214,9 @@ BuildRequires: libunwind-devel
|
||||
%endif
|
||||
%endif
|
||||
|
||||
BuildRequires: pkgconfig(xcb-aux) pkgconfig(xcb-image) pkgconfig(xcb-icccm)
|
||||
BuildRequires: pkgconfig(xcb-keysyms)
|
||||
|
||||
# All server subpackages have a virtual provide for the name of the server
|
||||
# they deliver. The Xorg one is versioned, the others are intentionally
|
||||
# unversioned.
|
||||
@ -226,7 +227,7 @@ X.Org X11 X server
|
||||
%package common
|
||||
Summary: Xorg server common files
|
||||
Group: User Interface/X
|
||||
Requires: pixman >= 0.21.8
|
||||
Requires: pixman >= 0.30.0
|
||||
Requires: xkeyboard-config xkbcomp
|
||||
|
||||
%description common
|
||||
@ -255,14 +256,6 @@ Provides: xserver-abi(extension-%{git_extension_major}) = %{git_extension_minor}
|
||||
# need to do something lockstep between now and upstream merge
|
||||
Provides: xserver-abi(xwayland) = 1
|
||||
|
||||
# Dropped from F17, use evdev
|
||||
Obsoletes: xorg-x11-drv-acecad <= 1.5.0-2.fc16
|
||||
Obsoletes: xorg-x11-drv-aiptek <= 1.4.1-2.fc16
|
||||
Obsoletes: xorg-x11-drv-elographics <= 1.3.0-2.fc16
|
||||
Obsoletes: xorg-x11-drv-fpit <= 1.4.0-2.fc16
|
||||
Obsoletes: xorg-x11-drv-hyperpen <= 1.4.1-2.fc16
|
||||
Obsoletes: xorg-x11-drv-mutouch <= 1.3.0-2.fc16
|
||||
Obsoletes: xorg-x11-drv-penmount <= 1.5.0-3.fc16
|
||||
%if 0%{?fedora} > 17
|
||||
# Dropped from F18, use a video card instead
|
||||
# in F17 updates-testing: 0.7.4-1.fc17
|
||||
@ -374,9 +367,11 @@ BuildArch: noarch
|
||||
Xserver source code needed to build VNC server (Xvnc)
|
||||
|
||||
%prep
|
||||
%setup -q -n %{pkgname}-%{?gitdate:%{gitdate}}%{!?gitdate:%{version}}
|
||||
#setup -q -n %{pkgname}-%{?gitdate:%{gitdate}}%{!?gitdate:%{version}}
|
||||
%setup -q -n %{pkgname}-%{version}
|
||||
|
||||
%if 0%{?gitdate}
|
||||
#if 0%{?gitdate}
|
||||
%if 0
|
||||
git checkout -b fedora
|
||||
sed -i 's/git/&+ssh/' .git/config
|
||||
if [ -z "$GIT_COMMITTER_NAME" ]; then
|
||||
@ -460,7 +455,6 @@ rm -rf $RPM_BUILD_ROOT
|
||||
make install DESTDIR=$RPM_BUILD_ROOT moduledir=%{moduledir}
|
||||
|
||||
%if %{with_hw_servers}
|
||||
rm -f $RPM_BUILD_ROOT%{_libdir}/xorg/modules/libxf8_16bpp.so
|
||||
rm -rf $RPM_BUILD_ROOT%{_libdir}/xorg/modules/multimedia/
|
||||
mkdir -p $RPM_BUILD_ROOT%{_libdir}/xorg/modules/{drivers,input}
|
||||
|
||||
@ -636,6 +630,12 @@ rm -rf $RPM_BUILD_ROOT
|
||||
%{xserver_source_dir}
|
||||
|
||||
%changelog
|
||||
* Fri Oct 25 2013 Adam Jackson <ajax@redhat.com> 1.14.99.3-1
|
||||
- xserver 1.14.99.3
|
||||
- xwayland branch refresh
|
||||
- Drop some F17-era Obsoletes
|
||||
- Update BuildReqs to match reality
|
||||
|
||||
* Wed Oct 23 2013 Peter Hutterer <peter.hutterer@redhat.com> 1.14.3-6
|
||||
- Fix Xdmx cursor jumps (#1019821)
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user