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:
Stefan Dirsch 2019-09-18 12:48:07 +00:00 committed by Git OBS Bridge
parent 418936d994
commit c2276ffaed
21 changed files with 528 additions and 129 deletions

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View 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

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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