From 71dfe3aafb8259a5dea61c8fa5c4f46c80dad733d2005217e869363e08e4b3f5 Mon Sep 17 00:00:00 2001 From: Stefan Dirsch Date: Wed, 10 Feb 2016 11:47:03 +0000 Subject: [PATCH] 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 --- U_kdrive-UnregisterFd-Fix-off-by-one.patch | 29 --- ...ld-not-reference-gbm-when-it-s-not-d.patch | 61 ------ ...gind-do-not-rely-on-directed-signals.patch | 58 ------ ux_xserver_xvfb-randr.patch | 192 ------------------ xorg-server-1.18.0.tar.bz2 | 3 - xorg-server-1.18.1.tar.bz2 | 3 + xorg-x11-server.changes | 23 +++ xorg-x11-server.spec | 10 +- 8 files changed, 27 insertions(+), 352 deletions(-) delete mode 100644 U_kdrive-UnregisterFd-Fix-off-by-one.patch delete mode 100644 U_modesetting-should-not-reference-gbm-when-it-s-not-d.patch delete mode 100644 U_systemd-logind-do-not-rely-on-directed-signals.patch delete mode 100644 ux_xserver_xvfb-randr.patch delete mode 100644 xorg-server-1.18.0.tar.bz2 create mode 100644 xorg-server-1.18.1.tar.bz2 diff --git a/U_kdrive-UnregisterFd-Fix-off-by-one.patch b/U_kdrive-UnregisterFd-Fix-off-by-one.patch deleted file mode 100644 index 242291f..0000000 --- a/U_kdrive-UnregisterFd-Fix-off-by-one.patch +++ /dev/null @@ -1,29 +0,0 @@ -From: Egbert Eich -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 - -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 ---- - 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; - } diff --git a/U_modesetting-should-not-reference-gbm-when-it-s-not-d.patch b/U_modesetting-should-not-reference-gbm-when-it-s-not-d.patch deleted file mode 100644 index 2312dac..0000000 --- a/U_modesetting-should-not-reference-gbm-when-it-s-not-d.patch +++ /dev/null @@ -1,61 +0,0 @@ -From fe8562f5316d8c74ca074ad145295c65ddff5fc2 Mon Sep 17 00:00:00 2001 -From: Alan Coopersmith -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 -Signed-off-by: Alan Coopersmith ---- - 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 - diff --git a/U_systemd-logind-do-not-rely-on-directed-signals.patch b/U_systemd-logind-do-not-rely-on-directed-signals.patch deleted file mode 100644 index 8197e10..0000000 --- a/U_systemd-logind-do-not-rely-on-directed-signals.patch +++ /dev/null @@ -1,58 +0,0 @@ -From 780a69aff0ff57ef813179a2f09556eaf488cdfc Mon Sep 17 00:00:00 2001 -From: David Herrmann -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 -Cc: Keith Packard -Reported-by: Jan Alexander Steffens -Signed-off-by: David Herrmann -Reviewed-by: Hans de Goede -Tested-by: Hans de Goede -Signed-off-by: Hans de Goede ---- - 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 - diff --git a/ux_xserver_xvfb-randr.patch b/ux_xserver_xvfb-randr.patch deleted file mode 100644 index b74afe4..0000000 --- a/ux_xserver_xvfb-randr.patch +++ /dev/null @@ -1,192 +0,0 @@ -Author: Lambros Lambrou -Subject: xvfb: add randr support -Patch-Mainline: To be upstreamed -References: bnc#823410 fdo#26391 -Signed-off-by: Michal Srb - ---- 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; diff --git a/xorg-server-1.18.0.tar.bz2 b/xorg-server-1.18.0.tar.bz2 deleted file mode 100644 index e55cf41..0000000 --- a/xorg-server-1.18.0.tar.bz2 +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:195670819695d9cedd8dde95fbe069be0d0f488a77797a2d409f9f702daf312e -size 5818703 diff --git a/xorg-server-1.18.1.tar.bz2 b/xorg-server-1.18.1.tar.bz2 new file mode 100644 index 0000000..102a017 --- /dev/null +++ b/xorg-server-1.18.1.tar.bz2 @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:85ec56dbeb89a951295cdf4f39bf38e515f900d35e06d4a8081b114d1520789d +size 5846953 diff --git a/xorg-x11-server.changes b/xorg-x11-server.changes index 2663d54..12eee6f 100644 --- a/xorg-x11-server.changes +++ b/xorg-x11-server.changes @@ -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 diff --git a/xorg-x11-server.spec b/xorg-x11-server.spec index 61c1b5c..33e38e9 100644 --- a/xorg-x11-server.spec +++ b/xorg-x11-server.spec @@ -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