xserver 1.14.99.3

- xwayland branch refresh
- Drop some F17-era Obsoletes
- Update BuildReqs to match reality
This commit is contained in:
Adam Jackson 2013-10-25 13:54:10 -04:00
parent b1203a2530
commit 973c76f74d
48 changed files with 825 additions and 5280 deletions

View File

@ -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

View File

@ -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;

View File

@ -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

View File

@ -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

View File

@ -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

View 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

View File

@ -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.

View File

@ -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.

View File

@ -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

View File

@ -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;
}

View File

@ -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"

View File

@ -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

View File

@ -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) {

View File

@ -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 +-

View File

@ -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 @@

View File

@ -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 {

View File

@ -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

View File

@ -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 {

View File

@ -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

View File

@ -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.

View File

@ -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

View File

@ -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

View File

@ -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.
*/

View File

@ -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.

View File

@ -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

View File

@ -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.

View File

@ -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.

View File

@ -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.
---

View File

@ -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)
}
}

View File

@ -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

View File

@ -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

View File

@ -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.
---

View File

@ -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.

View File

@ -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.

View File

@ -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 ---

View File

@ -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

View 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

View 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

View 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

View File

@ -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

View File

@ -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

View 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

View File

@ -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

View File

@ -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

View 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

View File

@ -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

View File

@ -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)