forked from pool/xorg-x11-server
Accepting request 732654 from X11:XOrg
- reintroduce Xvfb subpackage (boo#1151457) - 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/732654 OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/xorg-x11-server?expand=0&rev=373
This commit is contained in:
commit
4194422616
@ -11,11 +11,11 @@ Signed-off-by: Egbert Eich <eich@suse.de>
|
||||
hw/xfree86/drivers/modesetting/driver.c | 11 +++++++++++
|
||||
1 file changed, 11 insertions(+)
|
||||
|
||||
diff --git a/hw/xfree86/drivers/modesetting/driver.c b/hw/xfree86/drivers/modesetting/driver.c
|
||||
index 8f60eae..a81efaf 100644
|
||||
--- a/hw/xfree86/drivers/modesetting/driver.c
|
||||
+++ b/hw/xfree86/drivers/modesetting/driver.c
|
||||
@@ -858,6 +858,17 @@ PreInit(ScrnInfoPtr pScrn, int flags)
|
||||
Index: xorg-server-1.20.5/hw/xfree86/drivers/modesetting/driver.c
|
||||
===================================================================
|
||||
--- xorg-server-1.20.5.orig/hw/xfree86/drivers/modesetting/driver.c
|
||||
+++ xorg-server-1.20.5/hw/xfree86/drivers/modesetting/driver.c
|
||||
@@ -980,6 +980,17 @@ PreInit(ScrnInfoPtr pScrn, int flags)
|
||||
|
||||
if (xf86ReturnOptValBool(ms->drmmode.Options, OPTION_SW_CURSOR, FALSE)) {
|
||||
ms->drmmode.sw_cursor = TRUE;
|
||||
|
@ -14,11 +14,11 @@ Signed-off-by: Egbert Eich <eich@suse.de>
|
||||
hw/xfree86/Makefile.am | 7 ++++---
|
||||
1 file changed, 4 insertions(+), 3 deletions(-)
|
||||
|
||||
diff --git a/hw/xfree86/Makefile.am b/hw/xfree86/Makefile.am
|
||||
index 85bd0be..461e818 100644
|
||||
--- a/hw/xfree86/Makefile.am
|
||||
+++ b/hw/xfree86/Makefile.am
|
||||
@@ -108,9 +108,10 @@ if INSTALL_SETUID
|
||||
Index: xorg-server-1.20.5/hw/xfree86/Makefile.am
|
||||
===================================================================
|
||||
--- xorg-server-1.20.5.orig/hw/xfree86/Makefile.am
|
||||
+++ xorg-server-1.20.5/hw/xfree86/Makefile.am
|
||||
@@ -113,9 +113,10 @@ if INSTALL_SETUID
|
||||
endif
|
||||
if SUID_WRAPPER
|
||||
$(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
|
||||
@@ -1185,6 +1185,13 @@ xf86VideoPtrToDriverList(struct pci_devi
|
||||
@@ -1186,6 +1186,13 @@ xf86VideoPtrToDriverList(struct pci_devi
|
||||
driverList[0] = "neomagic";
|
||||
break;
|
||||
case 0x10de:
|
||||
@ -22,7 +22,7 @@ Index: hw/xfree86/common/xf86pciBus.c
|
||||
case 0x12d2:
|
||||
{
|
||||
int idx = 0;
|
||||
@@ -1196,7 +1203,8 @@ xf86VideoPtrToDriverList(struct pci_devi
|
||||
@@ -1197,7 +1204,8 @@ xf86VideoPtrToDriverList(struct pci_devi
|
||||
break;
|
||||
}
|
||||
case 0x1106:
|
||||
|
@ -6,7 +6,7 @@ Index: hw/xfree86/common/xf86Helper.c
|
||||
===================================================================
|
||||
--- hw/xfree86/common/xf86Helper.c.orig
|
||||
+++ 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) {
|
||||
from = X_CONFIG;
|
||||
if (pScrn->widthmm > 0) {
|
||||
@ -33,7 +33,7 @@ Index: hw/xfree86/common/xf86Helper.c
|
||||
}
|
||||
if (pScrn->xDpi > 0 && pScrn->yDpi <= 0)
|
||||
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->heightmm = ddcHeightmm;
|
||||
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
|
||||
@@ -75,6 +75,13 @@
|
||||
@@ -77,6 +77,13 @@
|
||||
"\tDevice\t" BUILTIN_DEVICE_NAME "\n" \
|
||||
"EndSection\n\n"
|
||||
|
||||
@ -23,7 +23,7 @@ Index: hw/xfree86/common/xf86AutoConfig.c
|
||||
#define BUILTIN_LAYOUT_SECTION_PRE \
|
||||
"Section \"ServerLayout\"\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,
|
||||
md.matches[i], 0, md.matches[i]);
|
||||
AppendToConfig(buf);
|
||||
@ -37,4 +37,4 @@ Index: hw/xfree86/common/xf86AutoConfig.c
|
||||
+ md.matches[i], 0, md.matches[i], 0);
|
||||
AppendToConfig(buf);
|
||||
}
|
||||
|
||||
|
||||
|
@ -8,11 +8,11 @@ Zap the server if a second ctrl-alt-backspace is sent
|
||||
within 2 seconds.
|
||||
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.12.1/hw/xfree86/common/xf86Config.c
|
||||
@@ -680,6 +680,7 @@ typedef enum {
|
||||
--- xorg-server-1.20.5.orig/hw/xfree86/common/xf86Config.c
|
||||
+++ xorg-server-1.20.5/hw/xfree86/common/xf86Config.c
|
||||
@@ -622,6 +622,7 @@ typedef enum {
|
||||
FLAG_NOTRAPSIGNALS,
|
||||
FLAG_DONTVTSWITCH,
|
||||
FLAG_DONTZAP,
|
||||
@ -20,7 +20,7 @@ Index: xorg-server-1.12.1/hw/xfree86/common/xf86Config.c
|
||||
FLAG_DONTZOOM,
|
||||
FLAG_DISABLEVIDMODE,
|
||||
FLAG_ALLOWNONLOCAL,
|
||||
@@ -717,6 +718,8 @@ static OptionInfoRec FlagOptions[] = {
|
||||
@@ -659,6 +660,8 @@ static OptionInfoRec FlagOptions[] = {
|
||||
{0}, FALSE},
|
||||
{FLAG_DONTZAP, "DontZap", OPTV_BOOLEAN,
|
||||
{0}, FALSE},
|
||||
@ -29,7 +29,7 @@ Index: xorg-server-1.12.1/hw/xfree86/common/xf86Config.c
|
||||
{FLAG_DONTZOOM, "DontZoom", OPTV_BOOLEAN,
|
||||
{0}, FALSE},
|
||||
{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_DONTVTSWITCH, &xf86Info.dontVTSwitch);
|
||||
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_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.12.1/hw/xfree86/common/xf86Events.c
|
||||
@@ -182,13 +182,25 @@ xf86ProcessActionEvent(ActionEvent actio
|
||||
--- xorg-server-1.20.5.orig/hw/xfree86/common/xf86Events.c
|
||||
+++ xorg-server-1.20.5/hw/xfree86/common/xf86Events.c
|
||||
@@ -166,13 +166,25 @@ xf86ProcessActionEvent(ActionEvent actio
|
||||
DebugF("ProcessActionEvent(%d,%p)\n", (int) action, arg);
|
||||
switch (action) {
|
||||
case ACTION_TERMINATE:
|
||||
@ -72,11 +72,11 @@ Index: xorg-server-1.12.1/hw/xfree86/common/xf86Events.c
|
||||
break;
|
||||
case ACTION_NEXT_MODE:
|
||||
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.12.1/hw/xfree86/common/xf86Globals.c
|
||||
@@ -108,6 +108,7 @@ xf86InfoRec xf86Info = {
|
||||
--- xorg-server-1.20.5.orig/hw/xfree86/common/xf86Globals.c
|
||||
+++ xorg-server-1.20.5/hw/xfree86/common/xf86Globals.c
|
||||
@@ -107,6 +107,7 @@ xf86InfoRec xf86Info = {
|
||||
.autoVTSwitch = TRUE,
|
||||
.ShareVTs = FALSE,
|
||||
.dontZap = FALSE,
|
||||
@ -84,11 +84,11 @@ Index: xorg-server-1.12.1/hw/xfree86/common/xf86Globals.c
|
||||
.dontZoom = FALSE,
|
||||
.notrapSignals = FALSE,
|
||||
.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.12.1/hw/xfree86/common/xf86Privstr.h
|
||||
@@ -70,6 +70,7 @@ typedef struct {
|
||||
--- xorg-server-1.20.5.orig/hw/xfree86/common/xf86Privstr.h
|
||||
+++ xorg-server-1.20.5/hw/xfree86/common/xf86Privstr.h
|
||||
@@ -62,6 +62,7 @@ typedef struct {
|
||||
Bool autoVTSwitch;
|
||||
Bool ShareVTs;
|
||||
Bool dontZap;
|
||||
|
@ -14,11 +14,11 @@ Reviewed-by: Adam Jackson <ajax@redhat.com>
|
||||
dix/window.c | 14 ++++++--------
|
||||
1 file changed, 6 insertions(+), 8 deletions(-)
|
||||
|
||||
diff --git a/dix/window.c b/dix/window.c
|
||||
index 2b599e788..f4ace76c7 100644
|
||||
--- a/dix/window.c
|
||||
+++ b/dix/window.c
|
||||
@@ -3094,6 +3094,7 @@ int
|
||||
Index: xorg-server-1.20.5/dix/window.c
|
||||
===================================================================
|
||||
--- xorg-server-1.20.5.orig/dix/window.c
|
||||
+++ xorg-server-1.20.5/dix/window.c
|
||||
@@ -3110,6 +3110,7 @@ int
|
||||
dixSaveScreens(ClientPtr client, int on, int mode)
|
||||
{
|
||||
int rc, i, what, type;
|
||||
@ -26,7 +26,7 @@ index 2b599e788..f4ace76c7 100644
|
||||
|
||||
if (on == SCREEN_SAVER_FORCER) {
|
||||
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
|
||||
*/
|
||||
screenIsSaved = SCREEN_SAVER_OFF;
|
||||
@ -46,6 +46,3 @@ index 2b599e788..f4ace76c7 100644
|
||||
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 ++++++++++++++++++++++++++++++++
|
||||
3 files changed, 47 insertions(+)
|
||||
|
||||
diff --git a/dix/main.c b/dix/main.c
|
||||
index 273f30330..b85c81034 100644
|
||||
--- a/dix/main.c
|
||||
+++ b/dix/main.c
|
||||
Index: xorg-server-1.20.5/dix/main.c
|
||||
===================================================================
|
||||
--- xorg-server-1.20.5.orig/dix/main.c
|
||||
+++ xorg-server-1.20.5/dix/main.c
|
||||
@@ -122,6 +122,8 @@ extern void Dispatch(void);
|
||||
|
||||
CallbackListPtr RootWindowFinalizeCallback = NULL;
|
||||
@ -41,7 +41,7 @@ index 273f30330..b85c81034 100644
|
||||
int
|
||||
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++)
|
||||
InitRootWindow(screenInfo.screens[i]->root);
|
||||
|
||||
@ -50,11 +50,11 @@ index 273f30330..b85c81034 100644
|
||||
InitCoreDevices();
|
||||
InitInput(argc, argv);
|
||||
InitAndStartDevices();
|
||||
diff --git a/hw/xfree86/common/xf86Init.c b/hw/xfree86/common/xf86Init.c
|
||||
index cc34a1952..766888b3e 100644
|
||||
--- a/hw/xfree86/common/xf86Init.c
|
||||
+++ b/hw/xfree86/common/xf86Init.c
|
||||
@@ -73,6 +73,7 @@
|
||||
Index: xorg-server-1.20.5/hw/xfree86/common/xf86Init.c
|
||||
===================================================================
|
||||
--- xorg-server-1.20.5.orig/hw/xfree86/common/xf86Init.c
|
||||
+++ xorg-server-1.20.5/hw/xfree86/common/xf86Init.c
|
||||
@@ -76,6 +76,7 @@
|
||||
#include "xf86DDC.h"
|
||||
#include "xf86Xinput.h"
|
||||
#include "xf86InPriv.h"
|
||||
@ -62,7 +62,7 @@ index cc34a1952..766888b3e 100644
|
||||
#include "picturestr.h"
|
||||
#include "randrstr.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");
|
||||
}
|
||||
|
||||
@ -294,7 +294,7 @@ index cc34a1952..766888b3e 100644
|
||||
static Bool
|
||||
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++)
|
||||
AttachUnboundGPU(xf86Screens[0]->pScreen, xf86GPUScreens[i]->pScreen);
|
||||
|
||||
@ -303,11 +303,11 @@ index cc34a1952..766888b3e 100644
|
||||
xf86VGAarbiterWrapFunctions();
|
||||
if (sigio_blocked)
|
||||
input_unlock();
|
||||
diff --git a/hw/xfree86/common/xf86platformBus.c b/hw/xfree86/common/xf86platformBus.c
|
||||
index cef47da03..395ce9400 100644
|
||||
--- a/hw/xfree86/common/xf86platformBus.c
|
||||
+++ b/hw/xfree86/common/xf86platformBus.c
|
||||
@@ -594,6 +594,8 @@ xf86platformAddGPUDevices(DriverPtr drvp)
|
||||
Index: xorg-server-1.20.5/hw/xfree86/common/xf86platformBus.c
|
||||
===================================================================
|
||||
--- xorg-server-1.20.5.orig/hw/xfree86/common/xf86platformBus.c
|
||||
+++ xorg-server-1.20.5/hw/xfree86/common/xf86platformBus.c
|
||||
@@ -594,6 +594,8 @@ xf86platformAddGPUDevices(DriverPtr drvp
|
||||
return foundScreen;
|
||||
}
|
||||
|
||||
@ -324,11 +324,11 @@ index cef47da03..395ce9400 100644
|
||||
|
||||
RRResourcesChanged(xf86Screens[0]->pScreen);
|
||||
RRTellChanged(xf86Screens[0]->pScreen);
|
||||
diff --git a/include/dix.h b/include/dix.h
|
||||
index 476559842..7372ba0d5 100644
|
||||
--- a/include/dix.h
|
||||
+++ b/include/dix.h
|
||||
@@ -597,6 +597,8 @@ typedef struct {
|
||||
Index: xorg-server-1.20.5/include/dix.h
|
||||
===================================================================
|
||||
--- xorg-server-1.20.5.orig/include/dix.h
|
||||
+++ xorg-server-1.20.5/include/dix.h
|
||||
@@ -599,6 +599,8 @@ typedef struct {
|
||||
|
||||
extern _X_EXPORT CallbackListPtr RootWindowFinalizeCallback;
|
||||
|
||||
|
@ -16,11 +16,11 @@ Signed-off-by: Egbert Eich <eich@suse.de>
|
||||
hw/xfree86/modes/xf86RandR12.c | 3 +++
|
||||
1 file changed, 3 insertions(+)
|
||||
|
||||
diff --git a/hw/xfree86/modes/xf86RandR12.c b/hw/xfree86/modes/xf86RandR12.c
|
||||
index eae7016..9f444dd 100644
|
||||
--- a/hw/xfree86/modes/xf86RandR12.c
|
||||
+++ b/hw/xfree86/modes/xf86RandR12.c
|
||||
@@ -681,6 +681,7 @@ xf86RandR12ScreenSetSize(ScreenPtr pScreen,
|
||||
Index: xorg-server-1.20.5/hw/xfree86/modes/xf86RandR12.c
|
||||
===================================================================
|
||||
--- xorg-server-1.20.5.orig/hw/xfree86/modes/xf86RandR12.c
|
||||
+++ xorg-server-1.20.5/hw/xfree86/modes/xf86RandR12.c
|
||||
@@ -685,6 +685,7 @@ xf86RandR12ScreenSetSize(ScreenPtr pScre
|
||||
WindowPtr pRoot = pScreen->root;
|
||||
PixmapPtr pScrnPix;
|
||||
Bool ret = FALSE;
|
||||
@ -28,7 +28,7 @@ index eae7016..9f444dd 100644
|
||||
int c;
|
||||
|
||||
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)
|
||||
crtc->panningTrackingArea.y2 += height - pScreen->height;
|
||||
xf86RandR13VerifyPanningArea(crtc, width, height);
|
||||
@ -36,7 +36,7 @@ index eae7016..9f444dd 100644
|
||||
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;
|
||||
randrp->mmWidth = pScreen->mmWidth = mmWidth;
|
||||
randrp->mmHeight = pScreen->mmHeight = mmHeight;
|
||||
|
@ -24,10 +24,10 @@ Reviewed-by: Stefan Dirsch <sndirsch@suse.de>
|
||||
os/auth.c | 138 ++++++++++++++++++++++++++++++++++++++++++++++--
|
||||
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.19.3/configure.ac
|
||||
--- xorg-server-1.20.5.orig/configure.ac
|
||||
+++ xorg-server-1.20.5/configure.ac
|
||||
@@ -134,7 +134,7 @@ AM_CONDITIONAL(SPECIAL_DTRACE_OBJECTS, [
|
||||
AC_HEADER_DIRENT
|
||||
AC_HEADER_STDC
|
||||
@ -37,7 +37,7 @@ Index: xorg-server-1.19.3/configure.ac
|
||||
|
||||
dnl Checks for typedefs, structures, and compiler characteristics.
|
||||
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"])
|
||||
|
||||
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>]])
|
||||
|
||||
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.19.3/include/dix-config.h.in
|
||||
@@ -167,6 +167,9 @@
|
||||
--- xorg-server-1.20.5.orig/include/dix-config.h.in
|
||||
+++ xorg-server-1.20.5/include/dix-config.h.in
|
||||
@@ -155,6 +155,9 @@
|
||||
/* Define to 1 if you have the `arc4random_buf' function. */
|
||||
#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 */
|
||||
#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. */
|
||||
#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. */
|
||||
#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.19.3/os/auth.c
|
||||
@@ -48,6 +48,10 @@ from The Open Group.
|
||||
--- xorg-server-1.20.5.orig/os/auth.c
|
||||
+++ xorg-server-1.20.5/os/auth.c
|
||||
@@ -49,6 +49,10 @@ from The Open Group.
|
||||
#ifdef HAVE_LIBBSD
|
||||
#include <bsd/stdlib.h> /* for arc4random_buf() */
|
||||
#endif
|
||||
@ -85,7 +85,7 @@ Index: xorg-server-1.19.3/os/auth.c
|
||||
|
||||
struct protocol {
|
||||
unsigned short name_length;
|
||||
@@ -304,16 +308,140 @@ GenerateAuthorization(unsigned name_length,
|
||||
@@ -310,16 +314,140 @@ GenerateAuthorization(unsigned name_leng
|
||||
|
||||
#endif /* XCSECURITY */
|
||||
|
||||
|
@ -25,11 +25,11 @@ Signed-off-by: Egbert Eich <eich@suse.de>
|
||||
hw/xfree86/common/xf86platformBus.c | 29 +++++++++++++++++++++++++++++
|
||||
1 file changed, 29 insertions(+)
|
||||
|
||||
diff --git a/hw/xfree86/common/xf86platformBus.c b/hw/xfree86/common/xf86platformBus.c
|
||||
index 8b3a862..efa6d1a 100644
|
||||
--- a/hw/xfree86/common/xf86platformBus.c
|
||||
+++ b/hw/xfree86/common/xf86platformBus.c
|
||||
@@ -622,6 +622,35 @@ void xf86platformPrimary(void)
|
||||
Index: xorg-server-1.20.5/hw/xfree86/common/xf86platformBus.c
|
||||
===================================================================
|
||||
--- xorg-server-1.20.5.orig/hw/xfree86/common/xf86platformBus.c
|
||||
+++ xorg-server-1.20.5/hw/xfree86/common/xf86platformBus.c
|
||||
@@ -744,6 +744,35 @@ void xf86platformPrimary(void)
|
||||
|
||||
xf86Msg(X_NONE, "\tfalling back to %s\n", primaryBus.id.plat->attribs->syspath);
|
||||
}
|
||||
|
@ -21,11 +21,11 @@ provider is there.
|
||||
randr/randr.c | 4 +++-
|
||||
1 file changed, 3 insertions(+), 1 deletion(-)
|
||||
|
||||
diff --git a/randr/randr.c b/randr/randr.c
|
||||
index feb54bcc8..661f66da2 100644
|
||||
--- a/randr/randr.c
|
||||
+++ b/randr/randr.c
|
||||
@@ -643,7 +643,9 @@ RRTellChanged(ScreenPtr pScreen)
|
||||
Index: xorg-server-1.20.5/randr/randr.c
|
||||
===================================================================
|
||||
--- xorg-server-1.20.5.orig/randr/randr.c
|
||||
+++ xorg-server-1.20.5/randr/randr.c
|
||||
@@ -647,7 +647,9 @@ RRTellChanged(ScreenPtr pScreen)
|
||||
|
||||
xorg_list_for_each_entry(iter, &master->slave_list, slave_head) {
|
||||
pSlaveScrPriv = rrGetScrPriv(iter);
|
||||
@ -36,6 +36,3 @@ index feb54bcc8..661f66da2 100644
|
||||
if (iter->is_output_slave) {
|
||||
for (i = 0; i < pSlaveScrPriv->numOutputs; i++)
|
||||
pSlaveScrPriv->outputs[i]->changed = FALSE;
|
||||
--
|
||||
2.13.6
|
||||
|
||||
|
@ -16,11 +16,11 @@ Signed-off-by: Egbert Eich <eich@suse.de>
|
||||
render/picture.c | 12 ++++++------
|
||||
1 file changed, 6 insertions(+), 6 deletions(-)
|
||||
|
||||
diff --git a/render/picture.c b/render/picture.c
|
||||
index 2908b76..74369de 100644
|
||||
--- a/render/picture.c
|
||||
+++ b/render/picture.c
|
||||
@@ -548,12 +548,12 @@ PictureMatchVisual(ScreenPtr pScreen, int depth, VisualPtr pVisual)
|
||||
Index: xorg-server-1.20.5/render/picture.c
|
||||
===================================================================
|
||||
--- xorg-server-1.20.5.orig/render/picture.c
|
||||
+++ xorg-server-1.20.5/render/picture.c
|
||||
@@ -527,12 +527,12 @@ PictureMatchVisual(ScreenPtr pScreen, in
|
||||
return format;
|
||||
}
|
||||
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
|
||||
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.12.1/os/access.c
|
||||
@@ -714,7 +714,9 @@ DefineSelf(int fd)
|
||||
--- xorg-server-1.20.5.orig/os/access.c
|
||||
+++ xorg-server-1.20.5/os/access.c
|
||||
@@ -827,7 +827,9 @@ DefineSelf(int fd)
|
||||
|
||||
/*
|
||||
* 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)
|
||||
continue;
|
||||
@@ -735,6 +737,14 @@ DefineSelf(int fd)
|
||||
@@ -848,6 +850,14 @@ DefineSelf(int fd)
|
||||
else if (family == FamilyInternet6 &&
|
||||
IN6_IS_ADDR_LOOPBACK((struct in6_addr *) addr))
|
||||
continue;
|
||||
|
@ -10,11 +10,11 @@ Signed-off-by: Egbert Eich <eich@suse.de>
|
||||
hw/xfree86/xorg-wrapper.c | 48 +++++++++++++++++++++++++++++++++++++++++++++++
|
||||
1 file changed, 48 insertions(+)
|
||||
|
||||
diff --git a/hw/xfree86/xorg-wrapper.c b/hw/xfree86/xorg-wrapper.c
|
||||
index d930962..64a43c4 100644
|
||||
--- a/hw/xfree86/xorg-wrapper.c
|
||||
+++ b/hw/xfree86/xorg-wrapper.c
|
||||
@@ -36,6 +36,8 @@
|
||||
Index: xorg-server-1.20.5/hw/xfree86/xorg-wrapper.c
|
||||
===================================================================
|
||||
--- xorg-server-1.20.5.orig/hw/xfree86/xorg-wrapper.c
|
||||
+++ xorg-server-1.20.5/hw/xfree86/xorg-wrapper.c
|
||||
@@ -35,6 +35,8 @@
|
||||
#include <string.h>
|
||||
#include <sys/ioctl.h>
|
||||
#include <sys/stat.h>
|
||||
@ -23,7 +23,7 @@ index d930962..64a43c4 100644
|
||||
#ifdef HAVE_SYS_SYSMACROS_H
|
||||
#include <sys/sysmacros.h>
|
||||
#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)) {
|
||||
gid_t realgid = getgid();
|
||||
uid_t realuid = getuid();
|
||||
|
@ -10,11 +10,11 @@ Signed-off-by: Egbert Eich <eich@suse.de>
|
||||
hw/xfree86/Makefile.am | 1 +
|
||||
1 file changed, 1 insertion(+)
|
||||
|
||||
diff --git a/hw/xfree86/Makefile.am b/hw/xfree86/Makefile.am
|
||||
index 461e818..c0ce3b8 100644
|
||||
--- a/hw/xfree86/Makefile.am
|
||||
+++ b/hw/xfree86/Makefile.am
|
||||
@@ -87,6 +87,7 @@ if SUID_WRAPPER
|
||||
Index: xorg-server-1.20.5/hw/xfree86/Makefile.am
|
||||
===================================================================
|
||||
--- xorg-server-1.20.5.orig/hw/xfree86/Makefile.am
|
||||
+++ xorg-server-1.20.5/hw/xfree86/Makefile.am
|
||||
@@ -92,6 +92,7 @@ if SUID_WRAPPER
|
||||
wrapexecdir = $(SUID_WRAPPER_DIR)
|
||||
wrapexec_PROGRAMS = Xorg.wrap
|
||||
Xorg_wrap_SOURCES = xorg-wrapper.c
|
||||
|
@ -11,11 +11,11 @@ Signed-off-by: Adam Jackson <ajax@redhat.com>
|
||||
include/xorg-server.h.in | 1 +
|
||||
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
|
||||
+++ a/include/dix-config.h.in
|
||||
@@ -499,6 +499,7 @@
|
||||
--- xorg-server-1.20.5.orig/include/dix-config.h.in
|
||||
+++ xorg-server-1.20.5/include/dix-config.h.in
|
||||
@@ -487,6 +487,7 @@
|
||||
|
||||
/* byte order */
|
||||
#undef X_BYTE_ORDER
|
||||
@ -23,11 +23,11 @@ Index: a/include/dix-config.h.in
|
||||
|
||||
/* Listen on TCP socket */
|
||||
#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
|
||||
+++ a/include/xorg-server.h.in
|
||||
@@ -233,5 +233,6 @@
|
||||
--- xorg-server-1.20.5.orig/include/xorg-server.h.in
|
||||
+++ xorg-server-1.20.5/include/xorg-server.h.in
|
||||
@@ -218,5 +218,6 @@
|
||||
|
||||
/* byte order */
|
||||
#undef X_BYTE_ORDER
|
||||
|
@ -1,3 +1,16 @@
|
||||
-------------------------------------------------------------------
|
||||
Sat Sep 21 10:23:06 UTC 2019 - Stefan Dirsch <sndirsch@suse.com>
|
||||
|
||||
- reintroduce Xvfb subpackage (boo#1151457)
|
||||
|
||||
-------------------------------------------------------------------
|
||||
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>
|
||||
|
||||
|
@ -164,9 +164,7 @@ Requires: Mesa
|
||||
Requires(post): update-alternatives
|
||||
Requires(postun): update-alternatives
|
||||
%endif
|
||||
Provides: xorg-x11-Xvfb
|
||||
Provides: xorg-x11-server-glx
|
||||
Obsoletes: xorg-x11-Xvfb
|
||||
Obsoletes: xorg-x11-server-glx
|
||||
|
||||
Provides: glamor = %{version}
|
||||
@ -201,9 +199,14 @@ Obsoletes: xorg-x11-driver-video < 7.6_1
|
||||
# Remove (also from depending driver(s)) when updating X11_ABI_VIDEODRV by updating the server package - NOTE: also remove from xorg-x11-server.macros.in !
|
||||
Provides: X11_ABI_HAS_DPMS_GET_CAPABILITIES
|
||||
|
||||
# Xvfb requires keyboard files as well (bnc#797124)
|
||||
Requires: xkeyboard-config
|
||||
|
||||
# Install it by default; otherwise we run into too much package build failures
|
||||
# when Xvfb is being used for testing ...
|
||||
# Unfortunately we need a requires here due to OBS not installing 'recommended'
|
||||
# packages :-(
|
||||
Requires: xorg-x11-server-Xvfb
|
||||
|
||||
# PATCH-FEATURE-OPENSUSE n_xorg-x11-server-rpmmacros.patch dimstar@opensuse.org -- Provide RPM macros to require correct ABI Versions.
|
||||
Patch1: N_default-module-path.diff
|
||||
Patch2: N_zap_warning_xserver.diff
|
||||
@ -246,6 +249,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
|
||||
|
||||
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
|
||||
Patch1601: 0001-xsync-Add-resource-inside-of-SyncCreate-export-SyncC.patch
|
||||
Patch1602: 0002-GLX-Add-a-per-client-vendor-mapping.patch
|
||||
@ -269,6 +276,21 @@ Obsoletes: xorg-x11-Xnest
|
||||
%description extra
|
||||
This package contains additional Xservers (Xdmx, Xephyr, Xnest).
|
||||
|
||||
%package Xvfb
|
||||
Summary: Virtual Xserver Xvfb
|
||||
Group: System/X11/Servers/XF86_4
|
||||
Requires: Mesa
|
||||
Requires: xkbcomp
|
||||
# Xvfb requires keyboard files as well (bnc#797124)
|
||||
Requires: xkeyboard-config
|
||||
Recommends: xorg-x11-fonts-core
|
||||
Provides: xorg-x11-Xvfb
|
||||
Provides: xorg-x11-server:/usr/bin/Xvfb
|
||||
Obsoletes: xorg-x11-Xvfb
|
||||
|
||||
%description Xvfb
|
||||
This package contains the virtual Xserver Xvfb.
|
||||
|
||||
%if 0%{?have_wayland} == 1
|
||||
%package wayland
|
||||
Summary: Xwayland Xserver
|
||||
@ -398,6 +420,10 @@ sh %{SOURCE92} --verify . %{SOURCE91}
|
||||
|
||||
%patch1503 -p1
|
||||
|
||||
%patch1504 -p1
|
||||
|
||||
%patch1505 -p1
|
||||
|
||||
# required for NVIDIA's PRIME render offload support
|
||||
%patch1601 -p1
|
||||
%patch1602 -p1
|
||||
@ -627,7 +653,6 @@ fi
|
||||
%ghost %{_sysconfdir}/alternatives/libglx.so
|
||||
%endif
|
||||
%endif
|
||||
%{_bindir}/Xvfb
|
||||
%{_bindir}/xorg-backtrace
|
||||
|
||||
%if 0%{?have_wayland} == 1
|
||||
@ -661,6 +686,10 @@ fi
|
||||
%{_mandir}/man1/Xephyr.1*
|
||||
%{_mandir}/man1/Xnest.1*
|
||||
|
||||
%files Xvfb
|
||||
%defattr(-,root,root)
|
||||
%{_bindir}/Xvfb
|
||||
|
||||
%files sdk
|
||||
%defattr(-,root,root)
|
||||
%{_includedir}/xorg/
|
||||
|
Loading…
Reference in New Issue
Block a user