forked from pool/xorg-x11-server
Accepting request 358636 from home:tobijk:X11:XOrg
- Update to version 1.18.1: First release in the 1.18 stable branch. Major themes are bugfixes in glamor, the modesetting driver, and the Present extension. Xwayland users may want to apply the following pair of patches in addition to this release: https://patchwork.freedesktop.org/patch/72945/raw/ https://patchwork.freedesktop.org/patch/72951/raw/ which combined fix an input issue when hotplugging monitors. Both are likely to be included in a future release unless testing discovers further problems. - Remove upstreamed patches: + ux_xserver_xvfb-randr.patch + U_systemd-logind-do-not-rely-on-directed-signals.patch + U_kdrive-UnregisterFd-Fix-off-by-one.patch + U_modesetting-should-not-reference-gbm-when-it-s-not-d.patch OBS-URL: https://build.opensuse.org/request/show/358636 OBS-URL: https://build.opensuse.org/package/show/X11:XOrg/xorg-x11-server?expand=0&rev=609
This commit is contained in:
parent
a49a66ab03
commit
71dfe3aafb
@ -1,29 +0,0 @@
|
||||
From: Egbert Eich <eich@suse.de>
|
||||
Date: Tue Nov 24 16:10:08 2015 +0100
|
||||
Subject: [PATCH]kdrive/UnregisterFd: Fix off by one
|
||||
Patch-mainline: to be upstreamed
|
||||
|
||||
References: boo#867483
|
||||
Signed-off-by: Egbert Eich <eich@suse.com>
|
||||
|
||||
The number of FDs has been decremented already, therefore this
|
||||
number contains the index of the top one that is to me moved down.
|
||||
|
||||
Signed-off-by: Egbert Eich <eich@suse.de>
|
||||
---
|
||||
hw/kdrive/src/kinput.c | 2 +-
|
||||
1 file changed, 1 insertion(+), 1 deletion(-)
|
||||
|
||||
diff --git a/hw/kdrive/src/kinput.c b/hw/kdrive/src/kinput.c
|
||||
index a539ca5..d28bbe0 100644
|
||||
--- a/hw/kdrive/src/kinput.c
|
||||
+++ b/hw/kdrive/src/kinput.c
|
||||
@@ -221,7 +221,7 @@ KdUnregisterFd(void *closure, int fd, Bool do_close)
|
||||
if (do_close)
|
||||
close(kdInputFds[i].fd);
|
||||
kdNumInputFds--;
|
||||
- for (j = i; j < (kdNumInputFds - 1); j++)
|
||||
+ for (j = i; j < kdNumInputFds; j++)
|
||||
kdInputFds[j] = kdInputFds[j + 1];
|
||||
break;
|
||||
}
|
@ -1,61 +0,0 @@
|
||||
From fe8562f5316d8c74ca074ad145295c65ddff5fc2 Mon Sep 17 00:00:00 2001
|
||||
From: Alan Coopersmith <alan.coopersmith@oracle.com>
|
||||
Date: Fri, 1 Jan 2016 18:10:08 -0800
|
||||
Subject: [PATCH] modesetting should not reference gbm when it's not defined
|
||||
|
||||
Fixes build errors of:
|
||||
present.c: In function 'ms_do_pageflip':
|
||||
present.c:410:17: error: 'drmmode_bo' has no member named 'gbm'
|
||||
new_front_bo.gbm = glamor_gbm_bo_from_pixmap(screen, new_front);
|
||||
^
|
||||
present.c:412:22: error: 'drmmode_bo' has no member named 'gbm'
|
||||
if (!new_front_bo.gbm) {
|
||||
^
|
||||
present.c: In function 'ms_present_check_flip':
|
||||
present.c:536:36: error: 'drmmode_bo' has no member named 'gbm'
|
||||
if (drmmode_crtc->rotate_bo.gbm)
|
||||
^
|
||||
Introduced by commit 13c7d53d
|
||||
|
||||
Reviewed-by: Adam Jackson <ajax@redhat.com>
|
||||
Signed-off-by: Alan Coopersmith <alan.coopersmith@oracle.com>
|
||||
---
|
||||
hw/xfree86/drivers/modesetting/present.c | 6 ++++++
|
||||
1 file changed, 6 insertions(+)
|
||||
|
||||
diff --git a/hw/xfree86/drivers/modesetting/present.c b/hw/xfree86/drivers/modesetting/present.c
|
||||
index bb2976b..d65c8c8 100644
|
||||
--- a/hw/xfree86/drivers/modesetting/present.c
|
||||
+++ b/hw/xfree86/drivers/modesetting/present.c
|
||||
@@ -398,6 +398,9 @@ ms_do_pageflip(ScreenPtr screen,
|
||||
int ref_crtc_vblank_pipe,
|
||||
Bool async)
|
||||
{
|
||||
+#ifndef GLAMOR_HAS_GBM
|
||||
+ return FALSE;
|
||||
+#else
|
||||
ScrnInfoPtr scrn = xf86ScreenToScrn(screen);
|
||||
modesettingPtr ms = modesettingPTR(scrn);
|
||||
xf86CrtcConfigPtr config = XF86_CRTC_CONFIG_PTR(scrn);
|
||||
@@ -505,6 +508,7 @@ error_out:
|
||||
flipdata->flip_count--;
|
||||
|
||||
return FALSE;
|
||||
+#endif /* GLAMOR_HAS_GBM */
|
||||
}
|
||||
|
||||
/*
|
||||
@@ -533,8 +537,10 @@ ms_present_check_flip(RRCrtcPtr crtc,
|
||||
drmmode_crtc_private_ptr drmmode_crtc = config->crtc[i]->driver_private;
|
||||
|
||||
/* Don't do pageflipping if CRTCs are rotated. */
|
||||
+#ifdef GLAMOR_HAS_GBM
|
||||
if (drmmode_crtc->rotate_bo.gbm)
|
||||
return FALSE;
|
||||
+#endif
|
||||
|
||||
if (ms_crtc_on(config->crtc[i]))
|
||||
num_crtcs_on++;
|
||||
--
|
||||
2.6.2
|
||||
|
@ -1,58 +0,0 @@
|
||||
From 780a69aff0ff57ef813179a2f09556eaf488cdfc Mon Sep 17 00:00:00 2001
|
||||
From: David Herrmann <dh.herrmann@gmail.com>
|
||||
Date: Mon, 22 Jun 2015 21:13:05 +0200
|
||||
Subject: [PATCH] systemd-logind: do not rely on directed signals
|
||||
|
||||
Right now, Xorg does not install DBus matches for "PauseDevice" /
|
||||
"ResumeDevice". Therefore, it should usually not receive those DBus
|
||||
signals from logind. It is just a coincidence that systemd-logind sends
|
||||
those signals in a directed manner right now. Therefore, dbus-daemon
|
||||
bypasses the broadcast matches.
|
||||
|
||||
However, this is not ABI and Xorg should not rely on this. systemd-logind
|
||||
is free to send those signals as broadcasts, in which case Xorg will
|
||||
freeze the VT. Fix this by always installing those matches.
|
||||
|
||||
Cc: Hans de Goede <hdegoede@redhat.com>
|
||||
Cc: Keith Packard <keithp@keithp.com>
|
||||
Reported-by: Jan Alexander Steffens <jan.steffens@gmail.com>
|
||||
Signed-off-by: David Herrmann <dh.herrmann@gmail.com>
|
||||
Reviewed-by: Hans de Goede <hdegoede@redhat.com>
|
||||
Tested-by: Hans de Goede <hdegoede@redhat.com>
|
||||
Signed-off-by: Hans de Goede <hdegoede@redhat.com>
|
||||
---
|
||||
hw/xfree86/os-support/linux/systemd-logind.c | 18 ++++++++++++++++++
|
||||
1 file changed, 18 insertions(+)
|
||||
|
||||
diff --git a/hw/xfree86/os-support/linux/systemd-logind.c b/hw/xfree86/os-support/linux/systemd-logind.c
|
||||
index 69e2f673d4bb..2612d9e23bc4 100644
|
||||
--- a/hw/xfree86/os-support/linux/systemd-logind.c
|
||||
+++ b/hw/xfree86/os-support/linux/systemd-logind.c
|
||||
@@ -507,6 +507,24 @@ connect_hook(DBusConnection *connection, void *data)
|
||||
goto cleanup;
|
||||
}
|
||||
|
||||
+ dbus_bus_add_match(connection,
|
||||
+ "type='signal',sender='org.freedesktop.login1',interface='org.freedesktop.login1.Session',member='PauseDevice'",
|
||||
+ &error);
|
||||
+ if (dbus_error_is_set(&error)) {
|
||||
+ LogMessage(X_ERROR, "systemd-logind: could not add match: %s\n",
|
||||
+ error.message);
|
||||
+ goto cleanup;
|
||||
+ }
|
||||
+
|
||||
+ dbus_bus_add_match(connection,
|
||||
+ "type='signal',sender='org.freedesktop.login1',interface='org.freedesktop.login1.Session',member='ResumeDevice'",
|
||||
+ &error);
|
||||
+ if (dbus_error_is_set(&error)) {
|
||||
+ LogMessage(X_ERROR, "systemd-logind: could not add match: %s\n",
|
||||
+ error.message);
|
||||
+ goto cleanup;
|
||||
+ }
|
||||
+
|
||||
/*
|
||||
* HdG: This is not useful with systemd <= 208 since the signal only
|
||||
* contains invalidated property names there, rather than property, val
|
||||
--
|
||||
2.4.6
|
||||
|
@ -1,192 +0,0 @@
|
||||
Author: Lambros Lambrou <lambroslambrou@google.com>
|
||||
Subject: xvfb: add randr support
|
||||
Patch-Mainline: To be upstreamed
|
||||
References: bnc#823410 fdo#26391
|
||||
Signed-off-by: Michal Srb <msrb@suse.cz>
|
||||
|
||||
--- a/hw/vfb/InitOutput.c
|
||||
+++ b/hw/vfb/InitOutput.c
|
||||
@@ -66,6 +66,7 @@
|
||||
#include "dix.h"
|
||||
#include "miline.h"
|
||||
#include "glx_extinit.h"
|
||||
+#include "randrstr.h"
|
||||
|
||||
#define VFB_DEFAULT_WIDTH 1280
|
||||
#define VFB_DEFAULT_HEIGHT 1024
|
||||
@@ -812,6 +813,165 @@
|
||||
}
|
||||
|
||||
static Bool
|
||||
+vfbRROutputValidateMode(ScreenPtr pScreen,
|
||||
+ RROutputPtr output,
|
||||
+ RRModePtr mode)
|
||||
+{
|
||||
+ rrScrPriv(pScreen);
|
||||
+
|
||||
+ if (pScrPriv->minWidth <= mode->mode.width &&
|
||||
+ pScrPriv->maxWidth >= mode->mode.width &&
|
||||
+ pScrPriv->minHeight <= mode->mode.height &&
|
||||
+ pScrPriv->maxHeight >= mode->mode.height)
|
||||
+ return TRUE;
|
||||
+ else
|
||||
+ return FALSE;
|
||||
+}
|
||||
+
|
||||
+static Bool
|
||||
+vfbRRScreenSetSize(ScreenPtr pScreen,
|
||||
+ CARD16 width,
|
||||
+ CARD16 height,
|
||||
+ CARD32 mmWidth,
|
||||
+ CARD32 mmHeight)
|
||||
+{
|
||||
+ WindowPtr root = pScreen->root;
|
||||
+ WindowPtr layer;
|
||||
+ WindowPtr child;
|
||||
+ BoxRec box;
|
||||
+
|
||||
+ pScreen->width = width;
|
||||
+ pScreen->height = height;
|
||||
+ pScreen->mmWidth = mmWidth;
|
||||
+ pScreen->mmHeight = mmHeight;
|
||||
+
|
||||
+ // Resize the root window & adjust its clipping
|
||||
+ box.x1 = 0;
|
||||
+ box.y1 = 0;
|
||||
+ box.x2 = pScreen->width;
|
||||
+ box.y2 = pScreen->height;
|
||||
+ REGION_INIT(pScreen, &root->winSize, &box, 1);
|
||||
+ REGION_INIT(pScreen, &root->borderSize, &box, 1);
|
||||
+ REGION_RESET(pScreen, &root->borderClip, &box);
|
||||
+ root->drawable.width = pScreen->width;
|
||||
+ root->drawable.height = pScreen->height;
|
||||
+ REGION_BREAK (pScreen, &root->clipList);
|
||||
+
|
||||
+ // Update the clipping regions of all windows
|
||||
+ for (child = root->firstChild; child; child = child->nextSib)
|
||||
+ (*pScreen->MarkOverlappedWindows)(child, child, &layer);
|
||||
+
|
||||
+ if (root->firstChild)
|
||||
+ {
|
||||
+ (*pScreen->MarkOverlappedWindows)(root->firstChild,
|
||||
+ root->firstChild,
|
||||
+ (WindowPtr *)NULL);
|
||||
+ }
|
||||
+ else
|
||||
+ {
|
||||
+ (*pScreen->MarkWindow) (root);
|
||||
+ }
|
||||
+
|
||||
+ (*pScreen->ValidateTree)(root, NullWindow, VTOther);
|
||||
+ (*pScreen->HandleExposures)(root);
|
||||
+
|
||||
+ // Reposition top-level windows to fit new root size
|
||||
+ // XXX I assume this is what it does, but I'm not sure
|
||||
+ ResizeChildrenWinSize (root, 0, 0, 0, 0);
|
||||
+
|
||||
+
|
||||
+ // Check the pointer position
|
||||
+ WindowsRestructured ();
|
||||
+
|
||||
+ RRScreenSizeNotify (pScreen);
|
||||
+ RRTellChanged(pScreen);
|
||||
+
|
||||
+ // Flush resulting events, etc to clients
|
||||
+ FlushAllOutput ();
|
||||
+
|
||||
+ return TRUE;
|
||||
+}
|
||||
+
|
||||
+static Bool
|
||||
+vfbRRCrtcSet(ScreenPtr pScreen,
|
||||
+ RRCrtcPtr crtc,
|
||||
+ RRModePtr mode,
|
||||
+ int x,
|
||||
+ int y,
|
||||
+ Rotation rotation,
|
||||
+ int numOutput,
|
||||
+ RROutputPtr *outputs)
|
||||
+{
|
||||
+ return RRCrtcNotify(crtc, mode, x, y, rotation, NULL, numOutput, outputs);
|
||||
+}
|
||||
+
|
||||
+static Bool
|
||||
+vfbRRGetInfo(ScreenPtr pScreen, Rotation *rotations)
|
||||
+{
|
||||
+ return TRUE;
|
||||
+}
|
||||
+
|
||||
+static Bool
|
||||
+vfbRandRInit(ScreenPtr pScreen)
|
||||
+{
|
||||
+ rrScrPrivPtr pScrPriv;
|
||||
+#if RANDR_12_INTERFACE
|
||||
+ RRModePtr mode;
|
||||
+ RRCrtcPtr crtc;
|
||||
+ RROutputPtr output;
|
||||
+ xRRModeInfo modeInfo;
|
||||
+ char name[64];
|
||||
+#endif
|
||||
+
|
||||
+ if (!RRScreenInit (pScreen))
|
||||
+ return FALSE;
|
||||
+ pScrPriv = rrGetScrPriv(pScreen);
|
||||
+ pScrPriv->rrGetInfo = vfbRRGetInfo;
|
||||
+#if RANDR_12_INTERFACE
|
||||
+ pScrPriv->rrCrtcSet = vfbRRCrtcSet;
|
||||
+ pScrPriv->rrScreenSetSize = vfbRRScreenSetSize;
|
||||
+ pScrPriv->rrOutputSetProperty = NULL;
|
||||
+#if RANDR_13_INTERFACE
|
||||
+ pScrPriv->rrOutputGetProperty = NULL;
|
||||
+#endif
|
||||
+ pScrPriv->rrOutputValidateMode = vfbRROutputValidateMode;
|
||||
+ pScrPriv->rrModeDestroy = NULL;
|
||||
+
|
||||
+ RRScreenSetSizeRange (pScreen,
|
||||
+ 1, 1,
|
||||
+ pScreen->width, pScreen->height);
|
||||
+
|
||||
+ sprintf (name, "%dx%d", pScreen->width, pScreen->height);
|
||||
+ memset (&modeInfo, '\0', sizeof (modeInfo));
|
||||
+ modeInfo.width = pScreen->width;
|
||||
+ modeInfo.height = pScreen->height;
|
||||
+ modeInfo.nameLength = strlen (name);
|
||||
+
|
||||
+ mode = RRModeGet (&modeInfo, name);
|
||||
+ if (!mode)
|
||||
+ return FALSE;
|
||||
+
|
||||
+ crtc = RRCrtcCreate (pScreen, NULL);
|
||||
+ if (!crtc)
|
||||
+ return FALSE;
|
||||
+
|
||||
+ output = RROutputCreate (pScreen, "screen", 6, NULL);
|
||||
+ if (!output)
|
||||
+ return FALSE;
|
||||
+ if (!RROutputSetClones (output, NULL, 0))
|
||||
+ return FALSE;
|
||||
+ if (!RROutputSetModes (output, &mode, 1, 0))
|
||||
+ return FALSE;
|
||||
+ if (!RROutputSetCrtcs (output, &crtc, 1))
|
||||
+ return FALSE;
|
||||
+ if (!RROutputSetConnection (output, RR_Connected))
|
||||
+ return FALSE;
|
||||
+ RRCrtcNotify (crtc, mode, 0, 0, RR_Rotate_0, NULL, 1, &output);
|
||||
+#endif
|
||||
+ return TRUE;
|
||||
+}
|
||||
+
|
||||
+static Bool
|
||||
vfbScreenInit(ScreenPtr pScreen, int argc, char **argv)
|
||||
{
|
||||
vfbScreenInfoPtr pvfb = &vfbScreens[pScreen->myNum];
|
||||
@@ -885,6 +1045,9 @@
|
||||
if (!ret)
|
||||
return FALSE;
|
||||
|
||||
+ if (!vfbRandRInit(pScreen))
|
||||
+ return FALSE;
|
||||
+
|
||||
pScreen->InstallColormap = vfbInstallColormap;
|
||||
|
||||
pScreen->SaveScreen = vfbSaveScreen;
|
@ -1,3 +0,0 @@
|
||||
version https://git-lfs.github.com/spec/v1
|
||||
oid sha256:195670819695d9cedd8dde95fbe069be0d0f488a77797a2d409f9f702daf312e
|
||||
size 5818703
|
3
xorg-server-1.18.1.tar.bz2
Normal file
3
xorg-server-1.18.1.tar.bz2
Normal file
@ -0,0 +1,3 @@
|
||||
version https://git-lfs.github.com/spec/v1
|
||||
oid sha256:85ec56dbeb89a951295cdf4f39bf38e515f900d35e06d4a8081b114d1520789d
|
||||
size 5846953
|
@ -1,3 +1,26 @@
|
||||
-------------------------------------------------------------------
|
||||
Tue Feb 9 20:55:28 UTC 2016 - tobias.johannes.klausmann@mni.thm.de
|
||||
|
||||
- Update to version 1.18.1:
|
||||
First release in the 1.18 stable branch. Major themes are bugfixes in
|
||||
glamor, the modesetting driver, and the Present extension.
|
||||
|
||||
Xwayland users may want to apply the following pair of patches in
|
||||
addition to this release:
|
||||
|
||||
https://patchwork.freedesktop.org/patch/72945/raw/
|
||||
https://patchwork.freedesktop.org/patch/72951/raw/
|
||||
|
||||
which combined fix an input issue when hotplugging monitors. Both are
|
||||
likely to be included in a future release unless testing discovers
|
||||
further problems.
|
||||
|
||||
- Remove upstreamed patches:
|
||||
+ ux_xserver_xvfb-randr.patch
|
||||
+ U_systemd-logind-do-not-rely-on-directed-signals.patch
|
||||
+ U_kdrive-UnregisterFd-Fix-off-by-one.patch
|
||||
+ U_modesetting-should-not-reference-gbm-when-it-s-not-d.patch
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Fri Jan 15 16:25:36 UTC 2016 - eich@suse.com
|
||||
|
||||
|
@ -26,7 +26,7 @@
|
||||
|
||||
Name: xorg-x11-server
|
||||
|
||||
%define dirsuffix 1.18.0
|
||||
%define dirsuffix 1.18.1
|
||||
|
||||
Summary: X
|
||||
License: MIT
|
||||
@ -167,7 +167,6 @@ Patch101: u_confine_to_shape.diff
|
||||
# PATCH-FIX-UPSTREAM u_x86emu-include-order.patch schwab@suse.de -- Change include order to avoid conflict with system header, remove duplicate definitions
|
||||
Patch102: u_x86emu-include-order.patch
|
||||
Patch104: u_xorg-server-xdmcp.patch
|
||||
Patch105: ux_xserver_xvfb-randr.patch
|
||||
# PATCH-FIX-UPSTREAM u_exa-only-draw-valid-trapezoids.patch bnc#853846 msrb@suse.com -- Fixes possible crash of server using invalid trapezoids. 2013-12-12 patch is waiting in mailing list to be upstreamed.
|
||||
Patch106: u_exa-only-draw-valid-trapezoids.patch
|
||||
Patch112: u_render-Cast-color-masks-to-unsigned-long-before-shifting-them.patch
|
||||
@ -179,10 +178,7 @@ Patch117: xorg-x11-server-byte-order.patch
|
||||
|
||||
Patch160: u_vesa-Add-VBEDPMSGetCapabilities-VBEDPMSGet.patch
|
||||
|
||||
Patch204: U_systemd-logind-do-not-rely-on-directed-signals.patch
|
||||
Patch205: U_kdrive-UnregisterFd-Fix-off-by-one.patch
|
||||
Patch206: u_busfault_sigaction-Only-initialize-pointer-when-matched.patch
|
||||
Patch207: U_modesetting-should-not-reference-gbm-when-it-s-not-d.patch
|
||||
Patch208: u_Panning-Set-panning-state-in-xf86RandR12ScreenSetSize.patch
|
||||
|
||||
Patch1000: n_xserver-optimus-autoconfig-hack.patch
|
||||
@ -274,7 +270,6 @@ sh %{SOURCE92} --verify . %{SOURCE91}
|
||||
%patch101
|
||||
%patch102 -p1
|
||||
%patch104 -p1
|
||||
%patch105 -p1
|
||||
%patch106 -p1
|
||||
|
||||
%patch112 -p1
|
||||
@ -286,10 +281,7 @@ sh %{SOURCE92} --verify . %{SOURCE91}
|
||||
|
||||
%patch160 -p1
|
||||
|
||||
%patch204 -p1
|
||||
%patch205 -p1
|
||||
%patch206 -p1
|
||||
%patch207 -p1
|
||||
%patch208 -p1
|
||||
|
||||
%patch1000 -p1
|
||||
|
Loading…
Reference in New Issue
Block a user