forked from pool/xorg-x11-server
Accepting request 731423 from home:iznogood:branches:X11:XOrg
- Add U_xwayland-Separate-DamagePtr-into-separate-window-data.patch and U_xwayland-Allow-passing-a-fd.patch: Needed for gnome 3.34 new and experimental xwayland on demand feature. - Rebase patches with quilt. OBS-URL: https://build.opensuse.org/request/show/731423 OBS-URL: https://build.opensuse.org/package/show/X11:XOrg/xorg-x11-server?expand=0&rev=744
This commit is contained in:
parent
418936d994
commit
c2276ffaed
@ -11,11 +11,11 @@ Signed-off-by: Egbert Eich <eich@suse.de>
|
|||||||
hw/xfree86/drivers/modesetting/driver.c | 11 +++++++++++
|
hw/xfree86/drivers/modesetting/driver.c | 11 +++++++++++
|
||||||
1 file changed, 11 insertions(+)
|
1 file changed, 11 insertions(+)
|
||||||
|
|
||||||
diff --git a/hw/xfree86/drivers/modesetting/driver.c b/hw/xfree86/drivers/modesetting/driver.c
|
Index: xorg-server-1.20.5/hw/xfree86/drivers/modesetting/driver.c
|
||||||
index 8f60eae..a81efaf 100644
|
===================================================================
|
||||||
--- a/hw/xfree86/drivers/modesetting/driver.c
|
--- xorg-server-1.20.5.orig/hw/xfree86/drivers/modesetting/driver.c
|
||||||
+++ b/hw/xfree86/drivers/modesetting/driver.c
|
+++ xorg-server-1.20.5/hw/xfree86/drivers/modesetting/driver.c
|
||||||
@@ -858,6 +858,17 @@ PreInit(ScrnInfoPtr pScrn, int flags)
|
@@ -980,6 +980,17 @@ PreInit(ScrnInfoPtr pScrn, int flags)
|
||||||
|
|
||||||
if (xf86ReturnOptValBool(ms->drmmode.Options, OPTION_SW_CURSOR, FALSE)) {
|
if (xf86ReturnOptValBool(ms->drmmode.Options, OPTION_SW_CURSOR, FALSE)) {
|
||||||
ms->drmmode.sw_cursor = TRUE;
|
ms->drmmode.sw_cursor = TRUE;
|
||||||
|
@ -14,11 +14,11 @@ Signed-off-by: Egbert Eich <eich@suse.de>
|
|||||||
hw/xfree86/Makefile.am | 7 ++++---
|
hw/xfree86/Makefile.am | 7 ++++---
|
||||||
1 file changed, 4 insertions(+), 3 deletions(-)
|
1 file changed, 4 insertions(+), 3 deletions(-)
|
||||||
|
|
||||||
diff --git a/hw/xfree86/Makefile.am b/hw/xfree86/Makefile.am
|
Index: xorg-server-1.20.5/hw/xfree86/Makefile.am
|
||||||
index 85bd0be..461e818 100644
|
===================================================================
|
||||||
--- a/hw/xfree86/Makefile.am
|
--- xorg-server-1.20.5.orig/hw/xfree86/Makefile.am
|
||||||
+++ b/hw/xfree86/Makefile.am
|
+++ xorg-server-1.20.5/hw/xfree86/Makefile.am
|
||||||
@@ -108,9 +108,10 @@ if INSTALL_SETUID
|
@@ -113,9 +113,10 @@ if INSTALL_SETUID
|
||||||
endif
|
endif
|
||||||
if SUID_WRAPPER
|
if SUID_WRAPPER
|
||||||
$(MKDIR_P) $(DESTDIR)$(SUID_WRAPPER_DIR)
|
$(MKDIR_P) $(DESTDIR)$(SUID_WRAPPER_DIR)
|
||||||
|
@ -8,7 +8,7 @@ Index: hw/xfree86/common/xf86pciBus.c
|
|||||||
===================================================================
|
===================================================================
|
||||||
--- hw/xfree86/common/xf86pciBus.c.orig
|
--- hw/xfree86/common/xf86pciBus.c.orig
|
||||||
+++ hw/xfree86/common/xf86pciBus.c
|
+++ hw/xfree86/common/xf86pciBus.c
|
||||||
@@ -1185,6 +1185,13 @@ xf86VideoPtrToDriverList(struct pci_devi
|
@@ -1186,6 +1186,13 @@ xf86VideoPtrToDriverList(struct pci_devi
|
||||||
driverList[0] = "neomagic";
|
driverList[0] = "neomagic";
|
||||||
break;
|
break;
|
||||||
case 0x10de:
|
case 0x10de:
|
||||||
@ -22,7 +22,7 @@ Index: hw/xfree86/common/xf86pciBus.c
|
|||||||
case 0x12d2:
|
case 0x12d2:
|
||||||
{
|
{
|
||||||
int idx = 0;
|
int idx = 0;
|
||||||
@@ -1196,7 +1203,8 @@ xf86VideoPtrToDriverList(struct pci_devi
|
@@ -1197,7 +1204,8 @@ xf86VideoPtrToDriverList(struct pci_devi
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
case 0x1106:
|
case 0x1106:
|
||||||
|
@ -6,7 +6,7 @@ Index: hw/xfree86/common/xf86Helper.c
|
|||||||
===================================================================
|
===================================================================
|
||||||
--- hw/xfree86/common/xf86Helper.c.orig
|
--- hw/xfree86/common/xf86Helper.c.orig
|
||||||
+++ hw/xfree86/common/xf86Helper.c
|
+++ hw/xfree86/common/xf86Helper.c
|
||||||
@@ -922,12 +922,22 @@ xf86SetDpi(ScrnInfoPtr pScrn, int x, int
|
@@ -875,12 +875,22 @@ xf86SetDpi(ScrnInfoPtr pScrn, int x, int
|
||||||
else if (pScrn->widthmm > 0 || pScrn->heightmm > 0) {
|
else if (pScrn->widthmm > 0 || pScrn->heightmm > 0) {
|
||||||
from = X_CONFIG;
|
from = X_CONFIG;
|
||||||
if (pScrn->widthmm > 0) {
|
if (pScrn->widthmm > 0) {
|
||||||
@ -33,7 +33,7 @@ Index: hw/xfree86/common/xf86Helper.c
|
|||||||
}
|
}
|
||||||
if (pScrn->xDpi > 0 && pScrn->yDpi <= 0)
|
if (pScrn->xDpi > 0 && pScrn->yDpi <= 0)
|
||||||
pScrn->yDpi = pScrn->xDpi;
|
pScrn->yDpi = pScrn->xDpi;
|
||||||
@@ -966,12 +976,22 @@ xf86SetDpi(ScrnInfoPtr pScrn, int x, int
|
@@ -919,12 +929,22 @@ xf86SetDpi(ScrnInfoPtr pScrn, int x, int
|
||||||
pScrn->widthmm = ddcWidthmm;
|
pScrn->widthmm = ddcWidthmm;
|
||||||
pScrn->heightmm = ddcHeightmm;
|
pScrn->heightmm = ddcHeightmm;
|
||||||
if (pScrn->widthmm > 0) {
|
if (pScrn->widthmm > 0) {
|
||||||
|
@ -9,7 +9,7 @@ Index: hw/xfree86/common/xf86AutoConfig.c
|
|||||||
===================================================================
|
===================================================================
|
||||||
--- hw/xfree86/common/xf86AutoConfig.c.orig
|
--- hw/xfree86/common/xf86AutoConfig.c.orig
|
||||||
+++ hw/xfree86/common/xf86AutoConfig.c
|
+++ hw/xfree86/common/xf86AutoConfig.c
|
||||||
@@ -75,6 +75,13 @@
|
@@ -77,6 +77,13 @@
|
||||||
"\tDevice\t" BUILTIN_DEVICE_NAME "\n" \
|
"\tDevice\t" BUILTIN_DEVICE_NAME "\n" \
|
||||||
"EndSection\n\n"
|
"EndSection\n\n"
|
||||||
|
|
||||||
@ -23,7 +23,7 @@ Index: hw/xfree86/common/xf86AutoConfig.c
|
|||||||
#define BUILTIN_LAYOUT_SECTION_PRE \
|
#define BUILTIN_LAYOUT_SECTION_PRE \
|
||||||
"Section \"ServerLayout\"\n" \
|
"Section \"ServerLayout\"\n" \
|
||||||
"\tIdentifier\t\"Builtin Default Layout\"\n"
|
"\tIdentifier\t\"Builtin Default Layout\"\n"
|
||||||
@@ -187,8 +187,12 @@ xf86AutoConfig(void)
|
@@ -187,8 +194,12 @@ xf86AutoConfig(void)
|
||||||
snprintf(buf, sizeof(buf), BUILTIN_DEVICE_SECTION,
|
snprintf(buf, sizeof(buf), BUILTIN_DEVICE_SECTION,
|
||||||
md.matches[i], 0, md.matches[i]);
|
md.matches[i], 0, md.matches[i]);
|
||||||
AppendToConfig(buf);
|
AppendToConfig(buf);
|
||||||
@ -37,4 +37,4 @@ Index: hw/xfree86/common/xf86AutoConfig.c
|
|||||||
+ md.matches[i], 0, md.matches[i], 0);
|
+ md.matches[i], 0, md.matches[i], 0);
|
||||||
AppendToConfig(buf);
|
AppendToConfig(buf);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -8,11 +8,11 @@ Zap the server if a second ctrl-alt-backspace is sent
|
|||||||
within 2 seconds.
|
within 2 seconds.
|
||||||
This can be enabled with a new option flag "ZapWarning"
|
This can be enabled with a new option flag "ZapWarning"
|
||||||
|
|
||||||
Index: xorg-server-1.12.1/hw/xfree86/common/xf86Config.c
|
Index: xorg-server-1.20.5/hw/xfree86/common/xf86Config.c
|
||||||
===================================================================
|
===================================================================
|
||||||
--- xorg-server-1.12.1.orig/hw/xfree86/common/xf86Config.c
|
--- xorg-server-1.20.5.orig/hw/xfree86/common/xf86Config.c
|
||||||
+++ xorg-server-1.12.1/hw/xfree86/common/xf86Config.c
|
+++ xorg-server-1.20.5/hw/xfree86/common/xf86Config.c
|
||||||
@@ -680,6 +680,7 @@ typedef enum {
|
@@ -622,6 +622,7 @@ typedef enum {
|
||||||
FLAG_NOTRAPSIGNALS,
|
FLAG_NOTRAPSIGNALS,
|
||||||
FLAG_DONTVTSWITCH,
|
FLAG_DONTVTSWITCH,
|
||||||
FLAG_DONTZAP,
|
FLAG_DONTZAP,
|
||||||
@ -20,7 +20,7 @@ Index: xorg-server-1.12.1/hw/xfree86/common/xf86Config.c
|
|||||||
FLAG_DONTZOOM,
|
FLAG_DONTZOOM,
|
||||||
FLAG_DISABLEVIDMODE,
|
FLAG_DISABLEVIDMODE,
|
||||||
FLAG_ALLOWNONLOCAL,
|
FLAG_ALLOWNONLOCAL,
|
||||||
@@ -717,6 +718,8 @@ static OptionInfoRec FlagOptions[] = {
|
@@ -659,6 +660,8 @@ static OptionInfoRec FlagOptions[] = {
|
||||||
{0}, FALSE},
|
{0}, FALSE},
|
||||||
{FLAG_DONTZAP, "DontZap", OPTV_BOOLEAN,
|
{FLAG_DONTZAP, "DontZap", OPTV_BOOLEAN,
|
||||||
{0}, FALSE},
|
{0}, FALSE},
|
||||||
@ -29,7 +29,7 @@ Index: xorg-server-1.12.1/hw/xfree86/common/xf86Config.c
|
|||||||
{FLAG_DONTZOOM, "DontZoom", OPTV_BOOLEAN,
|
{FLAG_DONTZOOM, "DontZoom", OPTV_BOOLEAN,
|
||||||
{0}, FALSE},
|
{0}, FALSE},
|
||||||
{FLAG_DISABLEVIDMODE, "DisableVidModeExtension", OPTV_BOOLEAN,
|
{FLAG_DISABLEVIDMODE, "DisableVidModeExtension", OPTV_BOOLEAN,
|
||||||
@@ -805,6 +805,7 @@ configServerFlags(XF86ConfFlagsPtr flags
|
@@ -740,6 +743,7 @@ configServerFlags(XF86ConfFlagsPtr flags
|
||||||
xf86GetOptValBool(FlagOptions, FLAG_NOTRAPSIGNALS, &xf86Info.notrapSignals);
|
xf86GetOptValBool(FlagOptions, FLAG_NOTRAPSIGNALS, &xf86Info.notrapSignals);
|
||||||
xf86GetOptValBool(FlagOptions, FLAG_DONTVTSWITCH, &xf86Info.dontVTSwitch);
|
xf86GetOptValBool(FlagOptions, FLAG_DONTVTSWITCH, &xf86Info.dontVTSwitch);
|
||||||
xf86GetOptValBool(FlagOptions, FLAG_DONTZAP, &xf86Info.dontZap);
|
xf86GetOptValBool(FlagOptions, FLAG_DONTZAP, &xf86Info.dontZap);
|
||||||
@ -37,11 +37,11 @@ Index: xorg-server-1.12.1/hw/xfree86/common/xf86Config.c
|
|||||||
xf86GetOptValBool(FlagOptions, FLAG_DONTZOOM, &xf86Info.dontZoom);
|
xf86GetOptValBool(FlagOptions, FLAG_DONTZOOM, &xf86Info.dontZoom);
|
||||||
|
|
||||||
xf86GetOptValBool(FlagOptions, FLAG_IGNORE_ABI, &xf86Info.ignoreABI);
|
xf86GetOptValBool(FlagOptions, FLAG_IGNORE_ABI, &xf86Info.ignoreABI);
|
||||||
Index: xorg-server-1.12.1/hw/xfree86/common/xf86Events.c
|
Index: xorg-server-1.20.5/hw/xfree86/common/xf86Events.c
|
||||||
===================================================================
|
===================================================================
|
||||||
--- xorg-server-1.12.1.orig/hw/xfree86/common/xf86Events.c
|
--- xorg-server-1.20.5.orig/hw/xfree86/common/xf86Events.c
|
||||||
+++ xorg-server-1.12.1/hw/xfree86/common/xf86Events.c
|
+++ xorg-server-1.20.5/hw/xfree86/common/xf86Events.c
|
||||||
@@ -182,13 +182,25 @@ xf86ProcessActionEvent(ActionEvent actio
|
@@ -166,13 +166,25 @@ xf86ProcessActionEvent(ActionEvent actio
|
||||||
DebugF("ProcessActionEvent(%d,%p)\n", (int) action, arg);
|
DebugF("ProcessActionEvent(%d,%p)\n", (int) action, arg);
|
||||||
switch (action) {
|
switch (action) {
|
||||||
case ACTION_TERMINATE:
|
case ACTION_TERMINATE:
|
||||||
@ -72,11 +72,11 @@ Index: xorg-server-1.12.1/hw/xfree86/common/xf86Events.c
|
|||||||
break;
|
break;
|
||||||
case ACTION_NEXT_MODE:
|
case ACTION_NEXT_MODE:
|
||||||
if (!xf86Info.dontZoom)
|
if (!xf86Info.dontZoom)
|
||||||
Index: xorg-server-1.12.1/hw/xfree86/common/xf86Globals.c
|
Index: xorg-server-1.20.5/hw/xfree86/common/xf86Globals.c
|
||||||
===================================================================
|
===================================================================
|
||||||
--- xorg-server-1.12.1.orig/hw/xfree86/common/xf86Globals.c
|
--- xorg-server-1.20.5.orig/hw/xfree86/common/xf86Globals.c
|
||||||
+++ xorg-server-1.12.1/hw/xfree86/common/xf86Globals.c
|
+++ xorg-server-1.20.5/hw/xfree86/common/xf86Globals.c
|
||||||
@@ -108,6 +108,7 @@ xf86InfoRec xf86Info = {
|
@@ -107,6 +107,7 @@ xf86InfoRec xf86Info = {
|
||||||
.autoVTSwitch = TRUE,
|
.autoVTSwitch = TRUE,
|
||||||
.ShareVTs = FALSE,
|
.ShareVTs = FALSE,
|
||||||
.dontZap = FALSE,
|
.dontZap = FALSE,
|
||||||
@ -84,11 +84,11 @@ Index: xorg-server-1.12.1/hw/xfree86/common/xf86Globals.c
|
|||||||
.dontZoom = FALSE,
|
.dontZoom = FALSE,
|
||||||
.notrapSignals = FALSE,
|
.notrapSignals = FALSE,
|
||||||
.currentScreen = NULL,
|
.currentScreen = NULL,
|
||||||
Index: xorg-server-1.12.1/hw/xfree86/common/xf86Privstr.h
|
Index: xorg-server-1.20.5/hw/xfree86/common/xf86Privstr.h
|
||||||
===================================================================
|
===================================================================
|
||||||
--- xorg-server-1.12.1.orig/hw/xfree86/common/xf86Privstr.h
|
--- xorg-server-1.20.5.orig/hw/xfree86/common/xf86Privstr.h
|
||||||
+++ xorg-server-1.12.1/hw/xfree86/common/xf86Privstr.h
|
+++ xorg-server-1.20.5/hw/xfree86/common/xf86Privstr.h
|
||||||
@@ -70,6 +70,7 @@ typedef struct {
|
@@ -62,6 +62,7 @@ typedef struct {
|
||||||
Bool autoVTSwitch;
|
Bool autoVTSwitch;
|
||||||
Bool ShareVTs;
|
Bool ShareVTs;
|
||||||
Bool dontZap;
|
Bool dontZap;
|
||||||
|
@ -14,11 +14,11 @@ Reviewed-by: Adam Jackson <ajax@redhat.com>
|
|||||||
dix/window.c | 14 ++++++--------
|
dix/window.c | 14 ++++++--------
|
||||||
1 file changed, 6 insertions(+), 8 deletions(-)
|
1 file changed, 6 insertions(+), 8 deletions(-)
|
||||||
|
|
||||||
diff --git a/dix/window.c b/dix/window.c
|
Index: xorg-server-1.20.5/dix/window.c
|
||||||
index 2b599e788..f4ace76c7 100644
|
===================================================================
|
||||||
--- a/dix/window.c
|
--- xorg-server-1.20.5.orig/dix/window.c
|
||||||
+++ b/dix/window.c
|
+++ xorg-server-1.20.5/dix/window.c
|
||||||
@@ -3094,6 +3094,7 @@ int
|
@@ -3110,6 +3110,7 @@ int
|
||||||
dixSaveScreens(ClientPtr client, int on, int mode)
|
dixSaveScreens(ClientPtr client, int on, int mode)
|
||||||
{
|
{
|
||||||
int rc, i, what, type;
|
int rc, i, what, type;
|
||||||
@ -26,7 +26,7 @@ index 2b599e788..f4ace76c7 100644
|
|||||||
|
|
||||||
if (on == SCREEN_SAVER_FORCER) {
|
if (on == SCREEN_SAVER_FORCER) {
|
||||||
if (mode == ScreenSaverReset)
|
if (mode == ScreenSaverReset)
|
||||||
@@ -3146,14 +3147,11 @@ dixSaveScreens(ClientPtr client, int on, int mode)
|
@@ -3162,14 +3163,11 @@ dixSaveScreens(ClientPtr client, int on,
|
||||||
* for the root window, so PaintWindow works
|
* for the root window, so PaintWindow works
|
||||||
*/
|
*/
|
||||||
screenIsSaved = SCREEN_SAVER_OFF;
|
screenIsSaved = SCREEN_SAVER_OFF;
|
||||||
@ -46,6 +46,3 @@ index 2b599e788..f4ace76c7 100644
|
|||||||
screenIsSaved = SCREEN_SAVER_ON;
|
screenIsSaved = SCREEN_SAVER_ON;
|
||||||
}
|
}
|
||||||
/*
|
/*
|
||||||
--
|
|
||||||
2.16.4
|
|
||||||
|
|
||||||
|
82
U_xwayland-Allow-passing-a-fd.patch
Normal file
82
U_xwayland-Allow-passing-a-fd.patch
Normal file
@ -0,0 +1,82 @@
|
|||||||
|
From 7ad1d0d384085fb480e00547c22a3e8a14b514ea Mon Sep 17 00:00:00 2001
|
||||||
|
From: Carlos Garnacho <carlosg@gnome.org>
|
||||||
|
Date: Sat, 20 Jul 2019 00:16:43 +0200
|
||||||
|
Subject: [PATCH] xwayland: Allow passing a fd for set up clients
|
||||||
|
MIME-Version: 1.0
|
||||||
|
Content-Type: text/plain; charset=UTF-8
|
||||||
|
Content-Transfer-Encoding: 8bit
|
||||||
|
|
||||||
|
This FD also triggers the "wait for WM_S0" paths, so that the
|
||||||
|
compositor may set up a "maintenance line" for Xwayland, for
|
||||||
|
services that are essential to run before any client (eg. xrdb).
|
||||||
|
Those services would use this FD, disguised as an extra display
|
||||||
|
connection.
|
||||||
|
|
||||||
|
This -initfd can be seen as a generalization of -wm, a Wayland
|
||||||
|
compositor may use -initfd to launch its WM and any other clients
|
||||||
|
that should start up, or it may use -wm as a dedicated connection for
|
||||||
|
the WM and optionally use -initfd for the misc. startup clients.
|
||||||
|
|
||||||
|
If either of -wm or -initfd is passed, Xwayland will expect a selection
|
||||||
|
notification on WM_S0 before incorporating the FDs in -listen to the
|
||||||
|
poll list.
|
||||||
|
|
||||||
|
Also, correct a minor typo in the listenfd argument output,
|
||||||
|
give → given.
|
||||||
|
|
||||||
|
Signed-off-by: Carlos Garnacho <carlosg@gnome.org>
|
||||||
|
---
|
||||||
|
hw/xwayland/xwayland.c | 19 +++++++++++++++----
|
||||||
|
1 file changed, 15 insertions(+), 4 deletions(-)
|
||||||
|
|
||||||
|
diff --git a/hw/xwayland/xwayland.c b/hw/xwayland/xwayland.c
|
||||||
|
index 111d4fafd..3983a114c 100644
|
||||||
|
--- orig-xorg-server-1.20.5/hw/xwayland/xwayland.c 2019-05-30 20:27:34.000000000 +0200
|
||||||
|
+++ xorg-server-1.20.5/hw/xwayland/xwayland.c 2019-09-16 17:26:47.771777034 +0200
|
||||||
|
@@ -95,7 +95,8 @@
|
||||||
|
{
|
||||||
|
ErrorF("-rootless run rootless, requires wm support\n");
|
||||||
|
ErrorF("-wm fd create X client for wm on given fd\n");
|
||||||
|
- ErrorF("-listen fd add give fd as a listen socket\n");
|
||||||
|
+ ErrorF("-initfd fd add given fd as a listen socket for initialization clients\n");
|
||||||
|
+ ErrorF("-listenfd fd add given fd as a listen socket\n");
|
||||||
|
ErrorF("-eglstream use eglstream backend for nvidia GPUs\n");
|
||||||
|
}
|
||||||
|
|
||||||
|
+static int init_fd = -1;
|
||||||
|
static int wm_fd = -1;
|
||||||
|
static int listen_fds[5] = { -1, -1, -1, -1, -1 };
|
||||||
|
static int listen_fd_count = 0;
|
||||||
|
@@ -148,6 +150,11 @@ ddxProcessArgument(int argc, char *argv[], int i)
|
||||||
|
wm_fd = atoi(argv[i + 1]);
|
||||||
|
return 2;
|
||||||
|
}
|
||||||
|
+ else if (strcmp(argv[i], "-initfd") == 0) {
|
||||||
|
+ CHECK_FOR_REQUIRED_ARGUMENTS(1);
|
||||||
|
+ init_fd = atoi(argv[i + 1]);
|
||||||
|
+ return 2;
|
||||||
|
+ }
|
||||||
|
else if (strcmp(argv[i], "-shm") == 0) {
|
||||||
|
return 1;
|
||||||
|
}
|
||||||
|
@@ -1287,10 +1294,14 @@ InitOutput(ScreenInfo * screen_info, int argc, char **argv)
|
||||||
|
|
||||||
|
LocalAccessScopeUser();
|
||||||
|
|
||||||
|
- if (wm_fd >= 0) {
|
||||||
|
- TimerSet(NULL, 0, 1, add_client_fd, NULL);
|
||||||
|
+ if (wm_fd >= 0 || init_fd >= 0) {
|
||||||
|
+ if (wm_fd >= 0)
|
||||||
|
+ TimerSet(NULL, 0, 1, add_client_fd, NULL);
|
||||||
|
+ if (init_fd >= 0)
|
||||||
|
+ ListenOnOpenFD(init_fd, FALSE);
|
||||||
|
AddCallback(&SelectionCallback, wm_selection_callback, NULL);
|
||||||
|
- } else if (listen_fd_count > 0) {
|
||||||
|
+ }
|
||||||
|
+ else if (listen_fd_count > 0) {
|
||||||
|
listen_on_fds();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
--
|
||||||
|
2.22.0
|
||||||
|
|
307
U_xwayland-Separate-DamagePtr-into-separate-window-data.patch
Normal file
307
U_xwayland-Separate-DamagePtr-into-separate-window-data.patch
Normal file
@ -0,0 +1,307 @@
|
|||||||
|
From 4e50440ae20c537d6a4edf356cda67dd33d4e5a8 Mon Sep 17 00:00:00 2001
|
||||||
|
From: Carlos Garnacho <carlosg@gnome.org>
|
||||||
|
Date: Mon, 7 Jan 2019 15:20:05 +0100
|
||||||
|
Subject: [PATCH 1/3] xwayland: Separate DamagePtr into separate window data
|
||||||
|
|
||||||
|
This will be dissociated in future commits to handle the cases
|
||||||
|
where windows are being realized before there is a compositor
|
||||||
|
handling redirection.
|
||||||
|
|
||||||
|
In that case, we still want the DamagePtr to be registered upfront
|
||||||
|
on RealizeWindowProc before a corresponding xwl_window might be
|
||||||
|
created. Most notably, it cannot be lazily created on
|
||||||
|
SetWindowPixmapProc as damage accounting gets broken.
|
||||||
|
|
||||||
|
Signed-off-by: Carlos Garnacho <carlosg@gnome.org>
|
||||||
|
---
|
||||||
|
hw/xwayland/xwayland.c | 74 +++++++++++++++++++++++++++++++++---------
|
||||||
|
hw/xwayland/xwayland.h | 1 -
|
||||||
|
2 files changed, 58 insertions(+), 17 deletions(-)
|
||||||
|
|
||||||
|
Index: xorg-server-1.20.5/hw/xwayland/xwayland.c
|
||||||
|
===================================================================
|
||||||
|
--- xorg-server-1.20.5.orig/hw/xwayland/xwayland.c
|
||||||
|
+++ xorg-server-1.20.5/hw/xwayland/xwayland.c
|
||||||
|
@@ -125,6 +125,7 @@ ddxProcessArgument(int argc, char *argv[
|
||||||
|
static DevPrivateKeyRec xwl_window_private_key;
|
||||||
|
static DevPrivateKeyRec xwl_screen_private_key;
|
||||||
|
static DevPrivateKeyRec xwl_pixmap_private_key;
|
||||||
|
+static DevPrivateKeyRec xwl_damage_private_key;
|
||||||
|
|
||||||
|
static struct xwl_window *
|
||||||
|
xwl_window_get(WindowPtr window)
|
||||||
|
@@ -367,8 +368,14 @@ xwl_cursor_confined_to(DeviceIntPtr devi
|
||||||
|
static void
|
||||||
|
damage_report(DamagePtr pDamage, RegionPtr pRegion, void *data)
|
||||||
|
{
|
||||||
|
- struct xwl_window *xwl_window = data;
|
||||||
|
- struct xwl_screen *xwl_screen = xwl_window->xwl_screen;
|
||||||
|
+ WindowPtr window = data;
|
||||||
|
+ struct xwl_window *xwl_window = xwl_window_get(window);
|
||||||
|
+ struct xwl_screen *xwl_screen;
|
||||||
|
+
|
||||||
|
+ if (!xwl_window)
|
||||||
|
+ return;
|
||||||
|
+
|
||||||
|
+ xwl_screen = xwl_window->xwl_screen;
|
||||||
|
|
||||||
|
#ifdef GLAMOR_HAS_GBM
|
||||||
|
if (xwl_window->present_flipped) {
|
||||||
|
@@ -390,6 +397,47 @@ damage_destroy(DamagePtr pDamage, void *
|
||||||
|
{
|
||||||
|
}
|
||||||
|
|
||||||
|
+static Bool
|
||||||
|
+register_damage(WindowPtr window)
|
||||||
|
+{
|
||||||
|
+ DamagePtr damage;
|
||||||
|
+
|
||||||
|
+ damage = DamageCreate(damage_report, damage_destroy, DamageReportNonEmpty,
|
||||||
|
+ FALSE, window->drawable.pScreen, window);
|
||||||
|
+ if (damage == NULL) {
|
||||||
|
+ ErrorF("Failed creating damage\n");
|
||||||
|
+ return FALSE;
|
||||||
|
+ }
|
||||||
|
+
|
||||||
|
+ DamageRegister(&window->drawable, damage);
|
||||||
|
+ DamageSetReportAfterOp(damage, TRUE);
|
||||||
|
+
|
||||||
|
+ dixSetPrivate(&window->devPrivates, &xwl_damage_private_key, damage);
|
||||||
|
+
|
||||||
|
+ return TRUE;
|
||||||
|
+}
|
||||||
|
+
|
||||||
|
+static void
|
||||||
|
+unregister_damage(WindowPtr window)
|
||||||
|
+{
|
||||||
|
+ DamagePtr damage;
|
||||||
|
+
|
||||||
|
+ damage = dixLookupPrivate(&window->devPrivates, &xwl_damage_private_key);
|
||||||
|
+ if (!damage)
|
||||||
|
+ return;
|
||||||
|
+
|
||||||
|
+ DamageUnregister(damage);
|
||||||
|
+ DamageDestroy(damage);
|
||||||
|
+
|
||||||
|
+ dixSetPrivate(&window->devPrivates, &xwl_damage_private_key, NULL);
|
||||||
|
+}
|
||||||
|
+
|
||||||
|
+static DamagePtr
|
||||||
|
+window_get_damage(WindowPtr window)
|
||||||
|
+{
|
||||||
|
+ return dixLookupPrivate(&window->devPrivates, &xwl_damage_private_key);
|
||||||
|
+}
|
||||||
|
+
|
||||||
|
static void
|
||||||
|
shell_surface_ping(void *data,
|
||||||
|
struct wl_shell_surface *shell_surface, uint32_t serial)
|
||||||
|
@@ -470,36 +518,25 @@ send_surface_id_event(struct xwl_window
|
||||||
|
}
|
||||||
|
|
||||||
|
static Bool
|
||||||
|
-xwl_realize_window(WindowPtr window)
|
||||||
|
+ensure_surface_for_window(WindowPtr window)
|
||||||
|
{
|
||||||
|
ScreenPtr screen = window->drawable.pScreen;
|
||||||
|
struct xwl_screen *xwl_screen;
|
||||||
|
struct xwl_window *xwl_window;
|
||||||
|
struct wl_region *region;
|
||||||
|
- Bool ret;
|
||||||
|
-
|
||||||
|
- xwl_screen = xwl_screen_get(screen);
|
||||||
|
-
|
||||||
|
- screen->RealizeWindow = xwl_screen->RealizeWindow;
|
||||||
|
- ret = (*screen->RealizeWindow) (window);
|
||||||
|
- xwl_screen->RealizeWindow = screen->RealizeWindow;
|
||||||
|
- screen->RealizeWindow = xwl_realize_window;
|
||||||
|
|
||||||
|
- if (xwl_screen->rootless && !window->parent) {
|
||||||
|
- BoxRec box = { 0, 0, xwl_screen->width, xwl_screen->height };
|
||||||
|
+ if (xwl_window_get(window))
|
||||||
|
+ return TRUE;
|
||||||
|
|
||||||
|
- RegionReset(&window->winSize, &box);
|
||||||
|
- RegionNull(&window->clipList);
|
||||||
|
- RegionNull(&window->borderClip);
|
||||||
|
- }
|
||||||
|
+ xwl_screen = xwl_screen_get(screen);
|
||||||
|
|
||||||
|
if (xwl_screen->rootless) {
|
||||||
|
if (window->redirectDraw != RedirectDrawManual)
|
||||||
|
- return ret;
|
||||||
|
+ return TRUE;
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
if (window->parent)
|
||||||
|
- return ret;
|
||||||
|
+ return TRUE;
|
||||||
|
}
|
||||||
|
|
||||||
|
xwl_window = calloc(1, sizeof *xwl_window);
|
||||||
|
@@ -545,25 +582,14 @@ xwl_realize_window(WindowPtr window)
|
||||||
|
|
||||||
|
wl_surface_set_user_data(xwl_window->surface, xwl_window);
|
||||||
|
|
||||||
|
- xwl_window->damage =
|
||||||
|
- DamageCreate(damage_report, damage_destroy, DamageReportNonEmpty,
|
||||||
|
- FALSE, screen, xwl_window);
|
||||||
|
- if (xwl_window->damage == NULL) {
|
||||||
|
- ErrorF("Failed creating damage\n");
|
||||||
|
- goto err_surf;
|
||||||
|
- }
|
||||||
|
-
|
||||||
|
compRedirectWindow(serverClient, window, CompositeRedirectManual);
|
||||||
|
|
||||||
|
- DamageRegister(&window->drawable, xwl_window->damage);
|
||||||
|
- DamageSetReportAfterOp(xwl_window->damage, TRUE);
|
||||||
|
-
|
||||||
|
dixSetPrivate(&window->devPrivates, &xwl_window_private_key, xwl_window);
|
||||||
|
xorg_list_init(&xwl_window->link_damage);
|
||||||
|
|
||||||
|
xwl_window_init_allow_commits(xwl_window);
|
||||||
|
|
||||||
|
- return ret;
|
||||||
|
+ return TRUE;
|
||||||
|
|
||||||
|
err_surf:
|
||||||
|
if (xwl_window->shell_surface)
|
||||||
|
@@ -575,6 +601,42 @@ err:
|
||||||
|
}
|
||||||
|
|
||||||
|
static Bool
|
||||||
|
+xwl_realize_window(WindowPtr window)
|
||||||
|
+{
|
||||||
|
+ ScreenPtr screen = window->drawable.pScreen;
|
||||||
|
+ struct xwl_screen *xwl_screen;
|
||||||
|
+ Bool ret;
|
||||||
|
+
|
||||||
|
+ xwl_screen = xwl_screen_get(screen);
|
||||||
|
+
|
||||||
|
+ screen->RealizeWindow = xwl_screen->RealizeWindow;
|
||||||
|
+ ret = (*screen->RealizeWindow) (window);
|
||||||
|
+ xwl_screen->RealizeWindow = screen->RealizeWindow;
|
||||||
|
+ screen->RealizeWindow = xwl_realize_window;
|
||||||
|
+
|
||||||
|
+ if (!ret)
|
||||||
|
+ return FALSE;
|
||||||
|
+
|
||||||
|
+ if (xwl_screen->rootless && !window->parent) {
|
||||||
|
+ BoxRec box = { 0, 0, xwl_screen->width, xwl_screen->height };
|
||||||
|
+
|
||||||
|
+ RegionReset(&window->winSize, &box);
|
||||||
|
+ RegionNull(&window->clipList);
|
||||||
|
+ RegionNull(&window->borderClip);
|
||||||
|
+ }
|
||||||
|
+
|
||||||
|
+ if (xwl_screen->rootless ?
|
||||||
|
+ (window->drawable.class == InputOutput &&
|
||||||
|
+ window->parent == window->drawable.pScreen->root) :
|
||||||
|
+ !window->parent) {
|
||||||
|
+ if (!register_damage(window))
|
||||||
|
+ return FALSE;
|
||||||
|
+ }
|
||||||
|
+
|
||||||
|
+ return ensure_surface_for_window(window);
|
||||||
|
+}
|
||||||
|
+
|
||||||
|
+static Bool
|
||||||
|
xwl_unrealize_window(WindowPtr window)
|
||||||
|
{
|
||||||
|
ScreenPtr screen = window->drawable.pScreen;
|
||||||
|
@@ -620,8 +682,8 @@ xwl_unrealize_window(WindowPtr window)
|
||||||
|
|
||||||
|
wl_surface_destroy(xwl_window->surface);
|
||||||
|
xorg_list_del(&xwl_window->link_damage);
|
||||||
|
- DamageUnregister(xwl_window->damage);
|
||||||
|
- DamageDestroy(xwl_window->damage);
|
||||||
|
+ unregister_damage(window);
|
||||||
|
+
|
||||||
|
if (xwl_window->frame_callback)
|
||||||
|
wl_callback_destroy(xwl_window->frame_callback);
|
||||||
|
|
||||||
|
@@ -638,6 +700,26 @@ xwl_save_screen(ScreenPtr pScreen, int o
|
||||||
|
}
|
||||||
|
|
||||||
|
static void
|
||||||
|
+xwl_set_window_pixmap(WindowPtr window,
|
||||||
|
+ PixmapPtr pixmap)
|
||||||
|
+{
|
||||||
|
+ ScreenPtr screen = window->drawable.pScreen;
|
||||||
|
+ struct xwl_screen *xwl_screen;
|
||||||
|
+
|
||||||
|
+ xwl_screen = xwl_screen_get(screen);
|
||||||
|
+
|
||||||
|
+ screen->SetWindowPixmap = xwl_screen->SetWindowPixmap;
|
||||||
|
+ (*screen->SetWindowPixmap) (window, pixmap);
|
||||||
|
+ xwl_screen->SetWindowPixmap = screen->SetWindowPixmap;
|
||||||
|
+ screen->SetWindowPixmap = xwl_set_window_pixmap;
|
||||||
|
+
|
||||||
|
+ if (!RegionNotEmpty(&window->winSize))
|
||||||
|
+ return;
|
||||||
|
+
|
||||||
|
+ ensure_surface_for_window(window);
|
||||||
|
+}
|
||||||
|
+
|
||||||
|
+static void
|
||||||
|
frame_callback(void *data,
|
||||||
|
struct wl_callback *callback,
|
||||||
|
uint32_t time)
|
||||||
|
@@ -689,7 +771,7 @@ xwl_window_post_damage(struct xwl_window
|
||||||
|
|
||||||
|
assert(!xwl_window->frame_callback);
|
||||||
|
|
||||||
|
- region = DamageRegion(xwl_window->damage);
|
||||||
|
+ region = DamageRegion(window_get_damage(xwl_window->window));
|
||||||
|
pixmap = (*xwl_screen->screen->GetWindowPixmap) (xwl_window->window);
|
||||||
|
|
||||||
|
#ifdef XWL_HAS_GLAMOR
|
||||||
|
@@ -726,7 +808,7 @@ xwl_window_post_damage(struct xwl_window
|
||||||
|
wl_callback_add_listener(xwl_window->frame_callback, &frame_listener, xwl_window);
|
||||||
|
|
||||||
|
wl_surface_commit(xwl_window->surface);
|
||||||
|
- DamageEmpty(xwl_window->damage);
|
||||||
|
+ DamageEmpty(window_get_damage(xwl_window->window));
|
||||||
|
|
||||||
|
xorg_list_del(&xwl_window->link_damage);
|
||||||
|
}
|
||||||
|
@@ -962,6 +1044,8 @@ xwl_screen_init(ScreenPtr pScreen, int a
|
||||||
|
return FALSE;
|
||||||
|
if (!dixRegisterPrivateKey(&xwl_pixmap_private_key, PRIVATE_PIXMAP, 0))
|
||||||
|
return FALSE;
|
||||||
|
+ if (!dixRegisterPrivateKey(&xwl_damage_private_key, PRIVATE_WINDOW, 0))
|
||||||
|
+ return FALSE;
|
||||||
|
|
||||||
|
dixSetPrivate(&pScreen->devPrivates, &xwl_screen_private_key, xwl_screen);
|
||||||
|
xwl_screen->screen = pScreen;
|
||||||
|
@@ -1121,6 +1205,11 @@ xwl_screen_init(ScreenPtr pScreen, int a
|
||||||
|
xwl_screen->CloseScreen = pScreen->CloseScreen;
|
||||||
|
pScreen->CloseScreen = xwl_close_screen;
|
||||||
|
|
||||||
|
+ if (xwl_screen->rootless) {
|
||||||
|
+ xwl_screen->SetWindowPixmap = pScreen->SetWindowPixmap;
|
||||||
|
+ pScreen->SetWindowPixmap = xwl_set_window_pixmap;
|
||||||
|
+ }
|
||||||
|
+
|
||||||
|
pScreen->CursorWarpedTo = xwl_cursor_warped_to;
|
||||||
|
pScreen->CursorConfinedTo = xwl_cursor_confined_to;
|
||||||
|
|
||||||
|
Index: xorg-server-1.20.5/hw/xwayland/xwayland.h
|
||||||
|
===================================================================
|
||||||
|
--- xorg-server-1.20.5.orig/hw/xwayland/xwayland.h
|
||||||
|
+++ xorg-server-1.20.5/hw/xwayland/xwayland.h
|
||||||
|
@@ -133,6 +133,7 @@ struct xwl_screen {
|
||||||
|
UnrealizeWindowProcPtr UnrealizeWindow;
|
||||||
|
DestroyWindowProcPtr DestroyWindow;
|
||||||
|
XYToWindowProcPtr XYToWindow;
|
||||||
|
+ SetWindowPixmapProcPtr SetWindowPixmap;
|
||||||
|
|
||||||
|
struct xorg_list output_list;
|
||||||
|
struct xorg_list seat_list;
|
||||||
|
@@ -178,7 +179,6 @@ struct xwl_window {
|
||||||
|
struct wl_surface *surface;
|
||||||
|
struct wl_shell_surface *shell_surface;
|
||||||
|
WindowPtr window;
|
||||||
|
- DamagePtr damage;
|
||||||
|
struct xorg_list link_damage;
|
||||||
|
struct wl_callback *frame_callback;
|
||||||
|
Bool allow_commits;
|
@ -28,10 +28,10 @@ Signed-off-by: Dave Airlie <airlied@gmail.com>
|
|||||||
hw/xfree86/modes/xf86Crtc.c | 32 ++++++++++++++++++++++++++++++++
|
hw/xfree86/modes/xf86Crtc.c | 32 ++++++++++++++++++++++++++++++++
|
||||||
3 files changed, 47 insertions(+)
|
3 files changed, 47 insertions(+)
|
||||||
|
|
||||||
diff --git a/dix/main.c b/dix/main.c
|
Index: xorg-server-1.20.5/dix/main.c
|
||||||
index 273f30330..b85c81034 100644
|
===================================================================
|
||||||
--- a/dix/main.c
|
--- xorg-server-1.20.5.orig/dix/main.c
|
||||||
+++ b/dix/main.c
|
+++ xorg-server-1.20.5/dix/main.c
|
||||||
@@ -122,6 +122,8 @@ extern void Dispatch(void);
|
@@ -122,6 +122,8 @@ extern void Dispatch(void);
|
||||||
|
|
||||||
CallbackListPtr RootWindowFinalizeCallback = NULL;
|
CallbackListPtr RootWindowFinalizeCallback = NULL;
|
||||||
@ -41,7 +41,7 @@ index 273f30330..b85c81034 100644
|
|||||||
int
|
int
|
||||||
dix_main(int argc, char *argv[], char *envp[])
|
dix_main(int argc, char *argv[], char *envp[])
|
||||||
{
|
{
|
||||||
@@ -244,6 +246,8 @@ dix_main(int argc, char *argv[], char *envp[])
|
@@ -246,6 +248,8 @@ dix_main(int argc, char *argv[], char *e
|
||||||
for (i = 0; i < screenInfo.numScreens; i++)
|
for (i = 0; i < screenInfo.numScreens; i++)
|
||||||
InitRootWindow(screenInfo.screens[i]->root);
|
InitRootWindow(screenInfo.screens[i]->root);
|
||||||
|
|
||||||
@ -50,11 +50,11 @@ index 273f30330..b85c81034 100644
|
|||||||
InitCoreDevices();
|
InitCoreDevices();
|
||||||
InitInput(argc, argv);
|
InitInput(argc, argv);
|
||||||
InitAndStartDevices();
|
InitAndStartDevices();
|
||||||
diff --git a/hw/xfree86/common/xf86Init.c b/hw/xfree86/common/xf86Init.c
|
Index: xorg-server-1.20.5/hw/xfree86/common/xf86Init.c
|
||||||
index cc34a1952..766888b3e 100644
|
===================================================================
|
||||||
--- a/hw/xfree86/common/xf86Init.c
|
--- xorg-server-1.20.5.orig/hw/xfree86/common/xf86Init.c
|
||||||
+++ b/hw/xfree86/common/xf86Init.c
|
+++ xorg-server-1.20.5/hw/xfree86/common/xf86Init.c
|
||||||
@@ -73,6 +73,7 @@
|
@@ -76,6 +76,7 @@
|
||||||
#include "xf86DDC.h"
|
#include "xf86DDC.h"
|
||||||
#include "xf86Xinput.h"
|
#include "xf86Xinput.h"
|
||||||
#include "xf86InPriv.h"
|
#include "xf86InPriv.h"
|
||||||
@ -62,7 +62,7 @@ index cc34a1952..766888b3e 100644
|
|||||||
#include "picturestr.h"
|
#include "picturestr.h"
|
||||||
#include "randrstr.h"
|
#include "randrstr.h"
|
||||||
#include "glxvndabi.h"
|
#include "glxvndabi.h"
|
||||||
@@ -264,6 +265,231 @@ AddVTAtoms(CallbackListPtr *pcbl, void *data, void *screen)
|
@@ -294,6 +295,231 @@ AddVTAtoms(CallbackListPtr *pcbl, void *
|
||||||
"Failed to register VT properties\n");
|
"Failed to register VT properties\n");
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -294,7 +294,7 @@ index cc34a1952..766888b3e 100644
|
|||||||
static Bool
|
static Bool
|
||||||
xf86ScreenInit(ScreenPtr pScreen, int argc, char **argv)
|
xf86ScreenInit(ScreenPtr pScreen, int argc, char **argv)
|
||||||
{
|
{
|
||||||
@@ -703,6 +929,8 @@ InitOutput(ScreenInfo * pScreenInfo, int argc, char **argv)
|
@@ -770,6 +996,8 @@ InitOutput(ScreenInfo * pScreenInfo, int
|
||||||
for (i = 0; i < xf86NumGPUScreens; i++)
|
for (i = 0; i < xf86NumGPUScreens; i++)
|
||||||
AttachUnboundGPU(xf86Screens[0]->pScreen, xf86GPUScreens[i]->pScreen);
|
AttachUnboundGPU(xf86Screens[0]->pScreen, xf86GPUScreens[i]->pScreen);
|
||||||
|
|
||||||
@ -303,11 +303,11 @@ index cc34a1952..766888b3e 100644
|
|||||||
xf86VGAarbiterWrapFunctions();
|
xf86VGAarbiterWrapFunctions();
|
||||||
if (sigio_blocked)
|
if (sigio_blocked)
|
||||||
input_unlock();
|
input_unlock();
|
||||||
diff --git a/hw/xfree86/common/xf86platformBus.c b/hw/xfree86/common/xf86platformBus.c
|
Index: xorg-server-1.20.5/hw/xfree86/common/xf86platformBus.c
|
||||||
index cef47da03..395ce9400 100644
|
===================================================================
|
||||||
--- a/hw/xfree86/common/xf86platformBus.c
|
--- xorg-server-1.20.5.orig/hw/xfree86/common/xf86platformBus.c
|
||||||
+++ b/hw/xfree86/common/xf86platformBus.c
|
+++ xorg-server-1.20.5/hw/xfree86/common/xf86platformBus.c
|
||||||
@@ -594,6 +594,8 @@ xf86platformAddGPUDevices(DriverPtr drvp)
|
@@ -594,6 +594,8 @@ xf86platformAddGPUDevices(DriverPtr drvp
|
||||||
return foundScreen;
|
return foundScreen;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -324,11 +324,11 @@ index cef47da03..395ce9400 100644
|
|||||||
|
|
||||||
RRResourcesChanged(xf86Screens[0]->pScreen);
|
RRResourcesChanged(xf86Screens[0]->pScreen);
|
||||||
RRTellChanged(xf86Screens[0]->pScreen);
|
RRTellChanged(xf86Screens[0]->pScreen);
|
||||||
diff --git a/include/dix.h b/include/dix.h
|
Index: xorg-server-1.20.5/include/dix.h
|
||||||
index 476559842..7372ba0d5 100644
|
===================================================================
|
||||||
--- a/include/dix.h
|
--- xorg-server-1.20.5.orig/include/dix.h
|
||||||
+++ b/include/dix.h
|
+++ xorg-server-1.20.5/include/dix.h
|
||||||
@@ -597,6 +597,8 @@ typedef struct {
|
@@ -599,6 +599,8 @@ typedef struct {
|
||||||
|
|
||||||
extern _X_EXPORT CallbackListPtr RootWindowFinalizeCallback;
|
extern _X_EXPORT CallbackListPtr RootWindowFinalizeCallback;
|
||||||
|
|
||||||
|
@ -16,11 +16,11 @@ Signed-off-by: Egbert Eich <eich@suse.de>
|
|||||||
hw/xfree86/modes/xf86RandR12.c | 3 +++
|
hw/xfree86/modes/xf86RandR12.c | 3 +++
|
||||||
1 file changed, 3 insertions(+)
|
1 file changed, 3 insertions(+)
|
||||||
|
|
||||||
diff --git a/hw/xfree86/modes/xf86RandR12.c b/hw/xfree86/modes/xf86RandR12.c
|
Index: xorg-server-1.20.5/hw/xfree86/modes/xf86RandR12.c
|
||||||
index eae7016..9f444dd 100644
|
===================================================================
|
||||||
--- a/hw/xfree86/modes/xf86RandR12.c
|
--- xorg-server-1.20.5.orig/hw/xfree86/modes/xf86RandR12.c
|
||||||
+++ b/hw/xfree86/modes/xf86RandR12.c
|
+++ xorg-server-1.20.5/hw/xfree86/modes/xf86RandR12.c
|
||||||
@@ -681,6 +681,7 @@ xf86RandR12ScreenSetSize(ScreenPtr pScreen,
|
@@ -685,6 +685,7 @@ xf86RandR12ScreenSetSize(ScreenPtr pScre
|
||||||
WindowPtr pRoot = pScreen->root;
|
WindowPtr pRoot = pScreen->root;
|
||||||
PixmapPtr pScrnPix;
|
PixmapPtr pScrnPix;
|
||||||
Bool ret = FALSE;
|
Bool ret = FALSE;
|
||||||
@ -28,7 +28,7 @@ index eae7016..9f444dd 100644
|
|||||||
int c;
|
int c;
|
||||||
|
|
||||||
if (randrp->virtualX == -1 || randrp->virtualY == -1) {
|
if (randrp->virtualX == -1 || randrp->virtualY == -1) {
|
||||||
@@ -709,6 +710,7 @@ xf86RandR12ScreenSetSize(ScreenPtr pScreen,
|
@@ -713,6 +714,7 @@ xf86RandR12ScreenSetSize(ScreenPtr pScre
|
||||||
if (crtc->panningTrackingArea.y2 > crtc->panningTrackingArea.y1)
|
if (crtc->panningTrackingArea.y2 > crtc->panningTrackingArea.y1)
|
||||||
crtc->panningTrackingArea.y2 += height - pScreen->height;
|
crtc->panningTrackingArea.y2 += height - pScreen->height;
|
||||||
xf86RandR13VerifyPanningArea(crtc, width, height);
|
xf86RandR13VerifyPanningArea(crtc, width, height);
|
||||||
@ -36,7 +36,7 @@ index eae7016..9f444dd 100644
|
|||||||
xf86RandR13Pan(crtc, randrp->pointerX, randrp->pointerY);
|
xf86RandR13Pan(crtc, randrp->pointerX, randrp->pointerY);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -718,6 +720,7 @@ xf86RandR12ScreenSetSize(ScreenPtr pScreen,
|
@@ -722,6 +724,7 @@ xf86RandR12ScreenSetSize(ScreenPtr pScre
|
||||||
pScreen->height = pScrnPix->drawable.height = height;
|
pScreen->height = pScrnPix->drawable.height = height;
|
||||||
randrp->mmWidth = pScreen->mmWidth = mmWidth;
|
randrp->mmWidth = pScreen->mmWidth = mmWidth;
|
||||||
randrp->mmHeight = pScreen->mmHeight = mmHeight;
|
randrp->mmHeight = pScreen->mmHeight = mmHeight;
|
||||||
|
@ -24,10 +24,10 @@ Reviewed-by: Stefan Dirsch <sndirsch@suse.de>
|
|||||||
os/auth.c | 138 ++++++++++++++++++++++++++++++++++++++++++++++--
|
os/auth.c | 138 ++++++++++++++++++++++++++++++++++++++++++++++--
|
||||||
3 files changed, 141 insertions(+), 7 deletions(-)
|
3 files changed, 141 insertions(+), 7 deletions(-)
|
||||||
|
|
||||||
Index: xorg-server-1.19.3/configure.ac
|
Index: xorg-server-1.20.5/configure.ac
|
||||||
===================================================================
|
===================================================================
|
||||||
--- xorg-server-1.19.3.orig/configure.ac
|
--- xorg-server-1.20.5.orig/configure.ac
|
||||||
+++ xorg-server-1.19.3/configure.ac
|
+++ xorg-server-1.20.5/configure.ac
|
||||||
@@ -134,7 +134,7 @@ AM_CONDITIONAL(SPECIAL_DTRACE_OBJECTS, [
|
@@ -134,7 +134,7 @@ AM_CONDITIONAL(SPECIAL_DTRACE_OBJECTS, [
|
||||||
AC_HEADER_DIRENT
|
AC_HEADER_DIRENT
|
||||||
AC_HEADER_STDC
|
AC_HEADER_STDC
|
||||||
@ -37,7 +37,7 @@ Index: xorg-server-1.19.3/configure.ac
|
|||||||
|
|
||||||
dnl Checks for typedefs, structures, and compiler characteristics.
|
dnl Checks for typedefs, structures, and compiler characteristics.
|
||||||
AC_C_CONST
|
AC_C_CONST
|
||||||
@@ -226,7 +226,7 @@ AC_REPLACE_FUNCS([reallocarray strcasecm
|
@@ -166,7 +166,7 @@ AC_REPLACE_FUNCS([reallocarray strcasecm
|
||||||
AM_CONDITIONAL(POLL, [test "x$ac_cv_func_poll" = "xyes"])
|
AM_CONDITIONAL(POLL, [test "x$ac_cv_func_poll" = "xyes"])
|
||||||
|
|
||||||
AC_CHECK_LIB([bsd], [arc4random_buf])
|
AC_CHECK_LIB([bsd], [arc4random_buf])
|
||||||
@ -46,11 +46,11 @@ Index: xorg-server-1.19.3/configure.ac
|
|||||||
|
|
||||||
AC_CHECK_DECLS([program_invocation_short_name], [], [], [[#include <errno.h>]])
|
AC_CHECK_DECLS([program_invocation_short_name], [], [], [[#include <errno.h>]])
|
||||||
|
|
||||||
Index: xorg-server-1.19.3/include/dix-config.h.in
|
Index: xorg-server-1.20.5/include/dix-config.h.in
|
||||||
===================================================================
|
===================================================================
|
||||||
--- xorg-server-1.19.3.orig/include/dix-config.h.in
|
--- xorg-server-1.20.5.orig/include/dix-config.h.in
|
||||||
+++ xorg-server-1.19.3/include/dix-config.h.in
|
+++ xorg-server-1.20.5/include/dix-config.h.in
|
||||||
@@ -167,6 +167,9 @@
|
@@ -155,6 +155,9 @@
|
||||||
/* Define to 1 if you have the `arc4random_buf' function. */
|
/* Define to 1 if you have the `arc4random_buf' function. */
|
||||||
#undef HAVE_ARC4RANDOM_BUF
|
#undef HAVE_ARC4RANDOM_BUF
|
||||||
|
|
||||||
@ -60,7 +60,7 @@ Index: xorg-server-1.19.3/include/dix-config.h.in
|
|||||||
/* Define to use libc SHA1 functions */
|
/* Define to use libc SHA1 functions */
|
||||||
#undef HAVE_SHA1_IN_LIBC
|
#undef HAVE_SHA1_IN_LIBC
|
||||||
|
|
||||||
@@ -244,6 +247,9 @@
|
@@ -232,6 +235,9 @@
|
||||||
/* Define to 1 if you have the <sys/utsname.h> header file. */
|
/* Define to 1 if you have the <sys/utsname.h> header file. */
|
||||||
#undef HAVE_SYS_UTSNAME_H
|
#undef HAVE_SYS_UTSNAME_H
|
||||||
|
|
||||||
@ -70,11 +70,11 @@ Index: xorg-server-1.19.3/include/dix-config.h.in
|
|||||||
/* Define to 1 if you have the `timingsafe_memcmp' function. */
|
/* Define to 1 if you have the `timingsafe_memcmp' function. */
|
||||||
#undef HAVE_TIMINGSAFE_MEMCMP
|
#undef HAVE_TIMINGSAFE_MEMCMP
|
||||||
|
|
||||||
Index: xorg-server-1.19.3/os/auth.c
|
Index: xorg-server-1.20.5/os/auth.c
|
||||||
===================================================================
|
===================================================================
|
||||||
--- xorg-server-1.19.3.orig/os/auth.c
|
--- xorg-server-1.20.5.orig/os/auth.c
|
||||||
+++ xorg-server-1.19.3/os/auth.c
|
+++ xorg-server-1.20.5/os/auth.c
|
||||||
@@ -48,6 +48,10 @@ from The Open Group.
|
@@ -49,6 +49,10 @@ from The Open Group.
|
||||||
#ifdef HAVE_LIBBSD
|
#ifdef HAVE_LIBBSD
|
||||||
#include <bsd/stdlib.h> /* for arc4random_buf() */
|
#include <bsd/stdlib.h> /* for arc4random_buf() */
|
||||||
#endif
|
#endif
|
||||||
@ -85,7 +85,7 @@ Index: xorg-server-1.19.3/os/auth.c
|
|||||||
|
|
||||||
struct protocol {
|
struct protocol {
|
||||||
unsigned short name_length;
|
unsigned short name_length;
|
||||||
@@ -304,16 +308,140 @@ GenerateAuthorization(unsigned name_length,
|
@@ -310,16 +314,140 @@ GenerateAuthorization(unsigned name_leng
|
||||||
|
|
||||||
#endif /* XCSECURITY */
|
#endif /* XCSECURITY */
|
||||||
|
|
||||||
|
@ -25,11 +25,11 @@ Signed-off-by: Egbert Eich <eich@suse.de>
|
|||||||
hw/xfree86/common/xf86platformBus.c | 29 +++++++++++++++++++++++++++++
|
hw/xfree86/common/xf86platformBus.c | 29 +++++++++++++++++++++++++++++
|
||||||
1 file changed, 29 insertions(+)
|
1 file changed, 29 insertions(+)
|
||||||
|
|
||||||
diff --git a/hw/xfree86/common/xf86platformBus.c b/hw/xfree86/common/xf86platformBus.c
|
Index: xorg-server-1.20.5/hw/xfree86/common/xf86platformBus.c
|
||||||
index 8b3a862..efa6d1a 100644
|
===================================================================
|
||||||
--- a/hw/xfree86/common/xf86platformBus.c
|
--- xorg-server-1.20.5.orig/hw/xfree86/common/xf86platformBus.c
|
||||||
+++ b/hw/xfree86/common/xf86platformBus.c
|
+++ xorg-server-1.20.5/hw/xfree86/common/xf86platformBus.c
|
||||||
@@ -622,6 +622,35 @@ void xf86platformPrimary(void)
|
@@ -744,6 +744,35 @@ void xf86platformPrimary(void)
|
||||||
|
|
||||||
xf86Msg(X_NONE, "\tfalling back to %s\n", primaryBus.id.plat->attribs->syspath);
|
xf86Msg(X_NONE, "\tfalling back to %s\n", primaryBus.id.plat->attribs->syspath);
|
||||||
}
|
}
|
||||||
|
@ -21,11 +21,11 @@ provider is there.
|
|||||||
randr/randr.c | 4 +++-
|
randr/randr.c | 4 +++-
|
||||||
1 file changed, 3 insertions(+), 1 deletion(-)
|
1 file changed, 3 insertions(+), 1 deletion(-)
|
||||||
|
|
||||||
diff --git a/randr/randr.c b/randr/randr.c
|
Index: xorg-server-1.20.5/randr/randr.c
|
||||||
index feb54bcc8..661f66da2 100644
|
===================================================================
|
||||||
--- a/randr/randr.c
|
--- xorg-server-1.20.5.orig/randr/randr.c
|
||||||
+++ b/randr/randr.c
|
+++ xorg-server-1.20.5/randr/randr.c
|
||||||
@@ -643,7 +643,9 @@ RRTellChanged(ScreenPtr pScreen)
|
@@ -647,7 +647,9 @@ RRTellChanged(ScreenPtr pScreen)
|
||||||
|
|
||||||
xorg_list_for_each_entry(iter, &master->slave_list, slave_head) {
|
xorg_list_for_each_entry(iter, &master->slave_list, slave_head) {
|
||||||
pSlaveScrPriv = rrGetScrPriv(iter);
|
pSlaveScrPriv = rrGetScrPriv(iter);
|
||||||
@ -36,6 +36,3 @@ index feb54bcc8..661f66da2 100644
|
|||||||
if (iter->is_output_slave) {
|
if (iter->is_output_slave) {
|
||||||
for (i = 0; i < pSlaveScrPriv->numOutputs; i++)
|
for (i = 0; i < pSlaveScrPriv->numOutputs; i++)
|
||||||
pSlaveScrPriv->outputs[i]->changed = FALSE;
|
pSlaveScrPriv->outputs[i]->changed = FALSE;
|
||||||
--
|
|
||||||
2.13.6
|
|
||||||
|
|
||||||
|
@ -16,11 +16,11 @@ Signed-off-by: Egbert Eich <eich@suse.de>
|
|||||||
render/picture.c | 12 ++++++------
|
render/picture.c | 12 ++++++------
|
||||||
1 file changed, 6 insertions(+), 6 deletions(-)
|
1 file changed, 6 insertions(+), 6 deletions(-)
|
||||||
|
|
||||||
diff --git a/render/picture.c b/render/picture.c
|
Index: xorg-server-1.20.5/render/picture.c
|
||||||
index 2908b76..74369de 100644
|
===================================================================
|
||||||
--- a/render/picture.c
|
--- xorg-server-1.20.5.orig/render/picture.c
|
||||||
+++ b/render/picture.c
|
+++ xorg-server-1.20.5/render/picture.c
|
||||||
@@ -548,12 +548,12 @@ PictureMatchVisual(ScreenPtr pScreen, int depth, VisualPtr pVisual)
|
@@ -527,12 +527,12 @@ PictureMatchVisual(ScreenPtr pScreen, in
|
||||||
return format;
|
return format;
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
|
@ -12,11 +12,11 @@ the first address and then give up.
|
|||||||
Even if this seems to be the wrong place to fix this it seems to be
|
Even if this seems to be the wrong place to fix this it seems to be
|
||||||
easier than fixing all display servers.
|
easier than fixing all display servers.
|
||||||
|
|
||||||
Index: xorg-server-1.12.1/os/access.c
|
Index: xorg-server-1.20.5/os/access.c
|
||||||
===================================================================
|
===================================================================
|
||||||
--- xorg-server-1.12.1.orig/os/access.c
|
--- xorg-server-1.20.5.orig/os/access.c
|
||||||
+++ xorg-server-1.12.1/os/access.c
|
+++ xorg-server-1.20.5/os/access.c
|
||||||
@@ -714,7 +714,9 @@ DefineSelf(int fd)
|
@@ -827,7 +827,9 @@ DefineSelf(int fd)
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* ignore 'localhost' entries as they're not useful
|
* ignore 'localhost' entries as they're not useful
|
||||||
@ -27,7 +27,7 @@ Index: xorg-server-1.12.1/os/access.c
|
|||||||
*/
|
*/
|
||||||
if (ifr->ifa_flags & IFF_LOOPBACK)
|
if (ifr->ifa_flags & IFF_LOOPBACK)
|
||||||
continue;
|
continue;
|
||||||
@@ -735,6 +737,14 @@ DefineSelf(int fd)
|
@@ -848,6 +850,14 @@ DefineSelf(int fd)
|
||||||
else if (family == FamilyInternet6 &&
|
else if (family == FamilyInternet6 &&
|
||||||
IN6_IS_ADDR_LOOPBACK((struct in6_addr *) addr))
|
IN6_IS_ADDR_LOOPBACK((struct in6_addr *) addr))
|
||||||
continue;
|
continue;
|
||||||
|
@ -10,11 +10,11 @@ Signed-off-by: Egbert Eich <eich@suse.de>
|
|||||||
hw/xfree86/xorg-wrapper.c | 48 +++++++++++++++++++++++++++++++++++++++++++++++
|
hw/xfree86/xorg-wrapper.c | 48 +++++++++++++++++++++++++++++++++++++++++++++++
|
||||||
1 file changed, 48 insertions(+)
|
1 file changed, 48 insertions(+)
|
||||||
|
|
||||||
diff --git a/hw/xfree86/xorg-wrapper.c b/hw/xfree86/xorg-wrapper.c
|
Index: xorg-server-1.20.5/hw/xfree86/xorg-wrapper.c
|
||||||
index d930962..64a43c4 100644
|
===================================================================
|
||||||
--- a/hw/xfree86/xorg-wrapper.c
|
--- xorg-server-1.20.5.orig/hw/xfree86/xorg-wrapper.c
|
||||||
+++ b/hw/xfree86/xorg-wrapper.c
|
+++ xorg-server-1.20.5/hw/xfree86/xorg-wrapper.c
|
||||||
@@ -36,6 +36,8 @@
|
@@ -35,6 +35,8 @@
|
||||||
#include <string.h>
|
#include <string.h>
|
||||||
#include <sys/ioctl.h>
|
#include <sys/ioctl.h>
|
||||||
#include <sys/stat.h>
|
#include <sys/stat.h>
|
||||||
@ -23,7 +23,7 @@ index d930962..64a43c4 100644
|
|||||||
#ifdef HAVE_SYS_SYSMACROS_H
|
#ifdef HAVE_SYS_SYSMACROS_H
|
||||||
#include <sys/sysmacros.h>
|
#include <sys/sysmacros.h>
|
||||||
#endif
|
#endif
|
||||||
@@ -252,6 +254,52 @@ int main(int argc, char *argv[])
|
@@ -255,6 +257,52 @@ int main(int argc, char *argv[])
|
||||||
if (needs_root_rights == 0 || (total_cards && kms_cards == total_cards)) {
|
if (needs_root_rights == 0 || (total_cards && kms_cards == total_cards)) {
|
||||||
gid_t realgid = getgid();
|
gid_t realgid = getgid();
|
||||||
uid_t realuid = getuid();
|
uid_t realuid = getuid();
|
||||||
|
@ -10,11 +10,11 @@ Signed-off-by: Egbert Eich <eich@suse.de>
|
|||||||
hw/xfree86/Makefile.am | 1 +
|
hw/xfree86/Makefile.am | 1 +
|
||||||
1 file changed, 1 insertion(+)
|
1 file changed, 1 insertion(+)
|
||||||
|
|
||||||
diff --git a/hw/xfree86/Makefile.am b/hw/xfree86/Makefile.am
|
Index: xorg-server-1.20.5/hw/xfree86/Makefile.am
|
||||||
index 461e818..c0ce3b8 100644
|
===================================================================
|
||||||
--- a/hw/xfree86/Makefile.am
|
--- xorg-server-1.20.5.orig/hw/xfree86/Makefile.am
|
||||||
+++ b/hw/xfree86/Makefile.am
|
+++ xorg-server-1.20.5/hw/xfree86/Makefile.am
|
||||||
@@ -87,6 +87,7 @@ if SUID_WRAPPER
|
@@ -92,6 +92,7 @@ if SUID_WRAPPER
|
||||||
wrapexecdir = $(SUID_WRAPPER_DIR)
|
wrapexecdir = $(SUID_WRAPPER_DIR)
|
||||||
wrapexec_PROGRAMS = Xorg.wrap
|
wrapexec_PROGRAMS = Xorg.wrap
|
||||||
Xorg_wrap_SOURCES = xorg-wrapper.c
|
Xorg_wrap_SOURCES = xorg-wrapper.c
|
||||||
|
@ -11,11 +11,11 @@ Signed-off-by: Adam Jackson <ajax@redhat.com>
|
|||||||
include/xorg-server.h.in | 1 +
|
include/xorg-server.h.in | 1 +
|
||||||
2 files changed, 2 insertions(+)
|
2 files changed, 2 insertions(+)
|
||||||
|
|
||||||
Index: a/include/dix-config.h.in
|
Index: xorg-server-1.20.5/include/dix-config.h.in
|
||||||
===================================================================
|
===================================================================
|
||||||
--- a.orig/include/dix-config.h.in
|
--- xorg-server-1.20.5.orig/include/dix-config.h.in
|
||||||
+++ a/include/dix-config.h.in
|
+++ xorg-server-1.20.5/include/dix-config.h.in
|
||||||
@@ -499,6 +499,7 @@
|
@@ -487,6 +487,7 @@
|
||||||
|
|
||||||
/* byte order */
|
/* byte order */
|
||||||
#undef X_BYTE_ORDER
|
#undef X_BYTE_ORDER
|
||||||
@ -23,11 +23,11 @@ Index: a/include/dix-config.h.in
|
|||||||
|
|
||||||
/* Listen on TCP socket */
|
/* Listen on TCP socket */
|
||||||
#undef LISTEN_TCP
|
#undef LISTEN_TCP
|
||||||
Index: a/include/xorg-server.h.in
|
Index: xorg-server-1.20.5/include/xorg-server.h.in
|
||||||
===================================================================
|
===================================================================
|
||||||
--- a.orig/include/xorg-server.h.in
|
--- xorg-server-1.20.5.orig/include/xorg-server.h.in
|
||||||
+++ a/include/xorg-server.h.in
|
+++ xorg-server-1.20.5/include/xorg-server.h.in
|
||||||
@@ -233,5 +233,6 @@
|
@@ -218,5 +218,6 @@
|
||||||
|
|
||||||
/* byte order */
|
/* byte order */
|
||||||
#undef X_BYTE_ORDER
|
#undef X_BYTE_ORDER
|
||||||
|
@ -1,3 +1,11 @@
|
|||||||
|
-------------------------------------------------------------------
|
||||||
|
Mon Sep 16 15:00:32 UTC 2019 - Bjørn Lie <bjorn.lie@gmail.com>
|
||||||
|
|
||||||
|
- Add U_xwayland-Separate-DamagePtr-into-separate-window-data.patch
|
||||||
|
and U_xwayland-Allow-passing-a-fd.patch: Needed for gnome 3.34
|
||||||
|
new and experimental xwayland on demand feature.
|
||||||
|
- Rebase patches with quilt.
|
||||||
|
|
||||||
-------------------------------------------------------------------
|
-------------------------------------------------------------------
|
||||||
Fri Aug 30 09:38:25 UTC 2019 - Stefan Dirsch <sndirsch@suse.com>
|
Fri Aug 30 09:38:25 UTC 2019 - Stefan Dirsch <sndirsch@suse.com>
|
||||||
|
|
||||||
|
@ -246,6 +246,10 @@ Patch1502: U_dix-window-Use-ConfigureWindow-instead-of-MoveWindow.patch
|
|||||||
|
|
||||||
Patch1503: u_xfree86-Do-not-claim-pci-slots-if-fb-slot-is-already.patch
|
Patch1503: u_xfree86-Do-not-claim-pci-slots-if-fb-slot-is-already.patch
|
||||||
|
|
||||||
|
Patch1504: U_xwayland-Separate-DamagePtr-into-separate-window-data.patch
|
||||||
|
|
||||||
|
Patch1505: U_xwayland-Allow-passing-a-fd.patch
|
||||||
|
|
||||||
# required for NVIDIA's PRIME render offload support
|
# required for NVIDIA's PRIME render offload support
|
||||||
Patch1601: 0001-xsync-Add-resource-inside-of-SyncCreate-export-SyncC.patch
|
Patch1601: 0001-xsync-Add-resource-inside-of-SyncCreate-export-SyncC.patch
|
||||||
Patch1602: 0002-GLX-Add-a-per-client-vendor-mapping.patch
|
Patch1602: 0002-GLX-Add-a-per-client-vendor-mapping.patch
|
||||||
@ -398,6 +402,10 @@ sh %{SOURCE92} --verify . %{SOURCE91}
|
|||||||
|
|
||||||
%patch1503 -p1
|
%patch1503 -p1
|
||||||
|
|
||||||
|
%patch1504 -p1
|
||||||
|
|
||||||
|
%patch1505 -p1
|
||||||
|
|
||||||
# required for NVIDIA's PRIME render offload support
|
# required for NVIDIA's PRIME render offload support
|
||||||
%patch1601 -p1
|
%patch1601 -p1
|
||||||
%patch1602 -p1
|
%patch1602 -p1
|
||||||
|
Loading…
Reference in New Issue
Block a user