diff --git a/.gitignore b/.gitignore index 83a710c..fa17784 100644 --- a/.gitignore +++ b/.gitignore @@ -1 +1 @@ -SOURCES/xorg-server-1.20.1.tar.bz2 +SOURCES/xorg-server-1.20.4.tar.bz2 diff --git a/.xorg-x11-server.metadata b/.xorg-x11-server.metadata index b0e4c3f..a9462f9 100644 --- a/.xorg-x11-server.metadata +++ b/.xorg-x11-server.metadata @@ -1 +1 @@ -fd43367c2b7bbb1a4b1dd90b06a021e68a9db240 SOURCES/xorg-server-1.20.1.tar.bz2 +1a79da92122124cb782a4eebfd83fd33d5c0d7d4 SOURCES/xorg-server-1.20.4.tar.bz2 diff --git a/SOURCES/0001-Disable-logfile-and-modulepath-when-running-with-ele.patch b/SOURCES/0001-Disable-logfile-and-modulepath-when-running-with-ele.patch deleted file mode 100644 index 9a0769e..0000000 --- a/SOURCES/0001-Disable-logfile-and-modulepath-when-running-with-ele.patch +++ /dev/null @@ -1,54 +0,0 @@ -From 2fda7c57e7ebe210cf5e2bb051a0a9271f85e80a Mon Sep 17 00:00:00 2001 -From: Matthieu Herrb -Date: Mon, 22 Oct 2018 14:33:25 -0400 -Subject: [PATCH xserver] Disable -logfile and -modulepath when running with - elevated privileges - -An unprivileged user was able to overwrite arbitrary files -in directories in which it is able to chdir, potentially -leading to privilege elevation. - -CVE-2018-14665 - -An unprivileded user was able to load arbitrary modules -from user controlled directories, leading to privilege -elevation. - -CVE-2018-XXXXX - -Issues reported by Narendra Shinde - -Signed-off-by: Matthieu Herrb -Reviewed-by: Alan Coopersmith ---- - hw/xfree86/common/xf86Init.c | 8 ++++++-- - 1 file changed, 6 insertions(+), 2 deletions(-) - -diff --git a/hw/xfree86/common/xf86Init.c b/hw/xfree86/common/xf86Init.c -index 6c25eda739..0f57efa863 100644 ---- a/hw/xfree86/common/xf86Init.c -+++ b/hw/xfree86/common/xf86Init.c -@@ -935,14 +935,18 @@ ddxProcessArgument(int argc, char **argv, int i) - /* First the options that are not allowed with elevated privileges */ - if (!strcmp(argv[i], "-modulepath")) { - CHECK_FOR_REQUIRED_ARGUMENT(); -- xf86CheckPrivs(argv[i], argv[i + 1]); -+ if (xf86PrivsElevated()) -+ FatalError("\nInvalid argument -modulepath " -+ "with elevated privileges\n"); - xf86ModulePath = argv[i + 1]; - xf86ModPathFrom = X_CMDLINE; - return 2; - } - if (!strcmp(argv[i], "-logfile")) { - CHECK_FOR_REQUIRED_ARGUMENT(); -- xf86CheckPrivs(argv[i], argv[i + 1]); -+ if (xf86PrivsElevated()) -+ FatalError("\nInvalid argument -logfile " -+ "with elevated privileges\n"); - xf86LogFile = argv[i + 1]; - xf86LogFileFrom = X_CMDLINE; - return 2; --- -2.19.0 - diff --git a/SOURCES/0001-Fix-segfault-on-probing-a-non-PCI-platform-device-on.patch b/SOURCES/0001-Fix-segfault-on-probing-a-non-PCI-platform-device-on.patch index 30554b9..e7b35ce 100644 --- a/SOURCES/0001-Fix-segfault-on-probing-a-non-PCI-platform-device-on.patch +++ b/SOURCES/0001-Fix-segfault-on-probing-a-non-PCI-platform-device-on.patch @@ -27,5 +27,5 @@ index cef47da03d..dadbac6c8f 100644 } -- -2.21.0 +2.20.1 diff --git a/SOURCES/0001-autobind-GPUs-to-the-screen.patch b/SOURCES/0001-autobind-GPUs-to-the-screen.patch index 86b96a2..a4a99fd 100644 --- a/SOURCES/0001-autobind-GPUs-to-the-screen.patch +++ b/SOURCES/0001-autobind-GPUs-to-the-screen.patch @@ -34,6 +34,7 @@ xorg.conf snippet. Signed-off-by: Dave Airlie [hdegoede@redhat.com: Make configurable, fix with nvidia, submit upstream] Signed-off-by: Hans de Goede +[paper over crash in RRProviderAutoConfigGpuScreen - ajax] --- hw/xfree86/common/xf86Config.c | 19 +++++++++++++++++++ hw/xfree86/common/xf86Globals.c | 2 ++ @@ -273,7 +274,7 @@ index e4bc2bf..e04c18f 100644 + rrScrPrivPtr pScrPriv = rrGetScrPriv(pScreen); + rrScrPrivPtr masterPriv = rrGetScrPriv(masterScreen); + RRProviderPtr provider = pScrPriv->provider; -+ RRProviderPtr master_provider = masterPriv->provider; ++ RRProviderPtr master_provider = masterPriv ? masterPriv->provider : 0; + + if (!provider || !master_provider) + return; diff --git a/SOURCES/0001-dix-leave-last.valuators-alone-on-slave-switch.patch b/SOURCES/0001-dix-leave-last.valuators-alone-on-slave-switch.patch new file mode 100644 index 0000000..dc2ed03 --- /dev/null +++ b/SOURCES/0001-dix-leave-last.valuators-alone-on-slave-switch.patch @@ -0,0 +1,88 @@ +From 13f9b07039484927532d913dbccc664679235bf6 Mon Sep 17 00:00:00 2001 +From: Peter Hutterer +Date: Mon, 25 Mar 2019 13:19:41 +1000 +Subject: [PATCH xserver] dix: leave last.valuators alone on slave switch + +Terms: +dev->last.valuator[] is the last value given to us by the driver +dev->valuator.axisVal[] is the last value sent to the client +dev->last.scroll[] is the abs value of the scroll axis as given by the driver, + used for button emulation calculation (and the remainder) + +This function updates the device's last.valuator state based on the current +master axis state. This way, relative motion continues fluidly when switching +between devices. Before mouse 2 comes into effect, it's valuator state is +updated to wherever the pointer currently is so the relative event applies on +top of that. + +This can only work for x/y axes, all other axes aren't guaranteed to have the +same meaning and/or may not be present: +- xtest device: no valuator 2 +- mouse: valuator 2 is horizontal scroll axis +- tablet: valuator 2 is pressure + +Scaling the current value from the pressure range into the range for +horizontal scrolling makes no sense. And it causes scroll jumps: + +- scroll down, last.valuator == axisVal == 20 +- xdotool click 1, the XTest device doesn't have that valuator +- scroll up + - updateSlaveDeviceCoords reset last.valuator to 0 (axisVal == 20) + - DeviceClassesChangedEvent includes value 20 for the axis + - event is processed, last.value changes from 0 to -1 + - axisVal is updated to -1, causing a jump of -21 + +The same applies when we switch from tablet to mouse wheel if the pressure +value is 0 on proximity out (basically guaranteed). So let's drop this code +altogether and only leave the scaling for the relative x/y motion. + +Signed-off-by: Peter Hutterer +--- + dix/getevents.c | 25 +------------------------ + 1 file changed, 1 insertion(+), 24 deletions(-) + +diff --git a/dix/getevents.c b/dix/getevents.c +index d8955969a..f83dac709 100644 +--- a/dix/getevents.c ++++ b/dix/getevents.c +@@ -331,9 +331,6 @@ rescaleValuatorAxis(double coord, AxisInfoPtr from, AxisInfoPtr to, + static void + updateSlaveDeviceCoords(DeviceIntPtr master, DeviceIntPtr pDev) + { +- int i; +- DeviceIntPtr lastSlave; +- + /* master->last.valuators[0]/[1] is in desktop-wide coords and the actual + * position of the pointer */ + pDev->last.valuators[0] = master->last.valuators[0]; +@@ -358,27 +355,7 @@ updateSlaveDeviceCoords(DeviceIntPtr master, DeviceIntPtr pDev) + screenInfo.height); + } + +- /* calculate the other axis as well based on info from the old +- * slave-device. If the old slave had less axes than this one, +- * last.valuators is reset to 0. +- */ +- if ((lastSlave = master->last.slave) && lastSlave->valuator) { +- for (i = 2; i < pDev->valuator->numAxes; i++) { +- if (i >= lastSlave->valuator->numAxes) { +- pDev->last.valuators[i] = 0; +- valuator_mask_set_double(pDev->last.scroll, i, 0); +- } +- else { +- double val = pDev->last.valuators[i]; +- +- val = rescaleValuatorAxis(val, lastSlave->valuator->axes + i, +- pDev->valuator->axes + i, 0, 0); +- pDev->last.valuators[i] = val; +- valuator_mask_set_double(pDev->last.scroll, i, val); +- } +- } +- } +- ++ /* other axes are left as-is */ + } + + /** +-- +2.20.1 diff --git a/SOURCES/0001-glamor_egl-Don-t-initialize-on-llvmpipe.patch b/SOURCES/0001-glamor_egl-Don-t-initialize-on-llvmpipe.patch deleted file mode 100644 index ab99365..0000000 --- a/SOURCES/0001-glamor_egl-Don-t-initialize-on-llvmpipe.patch +++ /dev/null @@ -1,48 +0,0 @@ -From 722dc4717a4bb1c0ff84f45d0251e3e456476a28 Mon Sep 17 00:00:00 2001 -From: Adam Jackson -Date: Fri, 14 Sep 2018 11:33:43 -0400 -Subject: [PATCH xserver] glamor_egl: Don't initialize on llvmpipe - ---- - glamor/glamor_egl.c | 11 ++++++++++- - 1 file changed, 10 insertions(+), 1 deletion(-) - -diff --git a/glamor/glamor_egl.c b/glamor/glamor_egl.c -index df278b1a1a..2f06d6587d 100644 ---- a/glamor/glamor_egl.c -+++ b/glamor/glamor_egl.c -@@ -898,6 +898,7 @@ Bool - glamor_egl_init(ScrnInfoPtr scrn, int fd) - { - struct glamor_egl_screen_private *glamor_egl; -+ const GLubyte *renderer; - - glamor_egl = calloc(sizeof(*glamor_egl), 1); - if (glamor_egl == NULL) -@@ -992,6 +993,14 @@ glamor_egl_init(ScrnInfoPtr scrn, int fd) - "Failed to make EGL context current\n"); - goto error; - } -+ -+ renderer = glGetString(GL_RENDERER); -+ if (strstr(renderer, "llvmpipe")) { -+ xf86DrvMsg(scrn->scrnIndex, X_INFO, -+ "Refusing to try glamor on llvmpipe\n"); -+ goto error; -+ } -+ - /* - * Force the next glamor_make_current call to set the right context - * (in case of multiple GPUs using glamor) -@@ -1005,7 +1014,7 @@ glamor_egl_init(ScrnInfoPtr scrn, int fd) - } - - xf86DrvMsg(scrn->scrnIndex, X_INFO, "glamor X acceleration enabled on %s\n", -- glGetString(GL_RENDERER)); -+ renderer); - - #ifdef GBM_BO_WITH_MODIFIERS - if (epoxy_has_egl_extension(glamor_egl->display, --- -2.17.1 - diff --git a/SOURCES/0001-linux-Fix-platform-device-PCI-detection-for-complex-.patch b/SOURCES/0001-linux-Fix-platform-device-PCI-detection-for-complex-.patch deleted file mode 100644 index 9c0a311..0000000 --- a/SOURCES/0001-linux-Fix-platform-device-PCI-detection-for-complex-.patch +++ /dev/null @@ -1,45 +0,0 @@ -From b6e18eb57f3dd104704d0a5ec3d2f051645b9068 Mon Sep 17 00:00:00 2001 -From: Adam Jackson -Date: Wed, 19 Jun 2019 14:23:56 -0400 -Subject: [PATCH xserver] linux: Fix platform device PCI detection for complex - bus topologies - -Suppose you're in a Hyper-V guest and are trying to use PCI passthrough. -The ID_PATH that udev will construct for that looks something like -"acpi-VMBUS:00-pci-b8c8:00:00.0", and obviously looking for "pci-" in -the first four characters of that is going to not work. - -Instead, strstr. I suppose it's possible you could have _multiple_ PCI -buses in the path, in which case you'd want strrstr, if that were a -thing. ---- - config/udev.c | 6 +++--- - 1 file changed, 3 insertions(+), 3 deletions(-) - -diff --git a/config/udev.c b/config/udev.c -index 314acba6ce..6e11aa3b88 100644 ---- a/config/udev.c -+++ b/config/udev.c -@@ -474,7 +474,7 @@ config_udev_odev_setup_attribs(struct udev_device *udev_device, const char *path - config_odev_probe_proc_ptr probe_callback) - { - struct OdevAttributes *attribs = config_odev_allocate_attributes(); -- const char *value; -+ const char *value, *str; - - attribs->path = XNFstrdup(path); - attribs->syspath = XNFstrdup(syspath); -@@ -482,8 +482,8 @@ config_udev_odev_setup_attribs(struct udev_device *udev_device, const char *path - attribs->minor = minor; - - value = udev_device_get_property_value(udev_device, "ID_PATH"); -- if (value && !strncmp(value, "pci-", 4)) { -- attribs->busid = XNFstrdup(value); -+ if (value && (str = strstr(value, "pci-"))) { -+ attribs->busid = XNFstrdup(str); - attribs->busid[3] = ':'; - } - --- -2.21.0 - diff --git a/SOURCES/0001-linux-Make-platform-device-probe-less-fragile.patch b/SOURCES/0001-linux-Make-platform-device-probe-less-fragile.patch deleted file mode 100644 index 222ecd9..0000000 --- a/SOURCES/0001-linux-Make-platform-device-probe-less-fragile.patch +++ /dev/null @@ -1,142 +0,0 @@ -From 0816e8fca6194dfb4cc94c3a7fcb2c7f2a921386 Mon Sep 17 00:00:00 2001 -From: Adam Jackson -Date: Tue, 18 Sep 2018 14:37:51 -0400 -Subject: [PATCH xserver] linux: Make platform device probe less fragile - -At the point where xf86BusProbe runs we haven't yet taken our own VT, -which means we can't perform drm "master" operations on the device. This -is tragic, because we need master to fish the bus id string out of the -kernel, which we can only do after drmSetInterfaceVersion, which for -some reason stores that string on the device not the file handle and -thus needs master access. - -Fortunately we know the format of the busid string, and it happens to -almost be the same as the ID_PATH variable from udev. Use that instead -and stop calling drmSetInterfaceVersion. - -Reviewed-by: Peter Hutterer -Signed-off-by: Adam Jackson ---- - config/udev.c | 17 ++++++++++++----- - hw/xfree86/os-support/linux/lnx_platform.c | 20 ++------------------ - 2 files changed, 14 insertions(+), 23 deletions(-) - -diff --git a/config/udev.c b/config/udev.c -index 3a73189e25..8c6c4b6665 100644 ---- a/config/udev.c -+++ b/config/udev.c -@@ -56,7 +56,7 @@ static struct udev_monitor *udev_monitor; - - #ifdef CONFIG_UDEV_KMS - static void --config_udev_odev_setup_attribs(const char *path, const char *syspath, -+config_udev_odev_setup_attribs(struct udev_device *udev_device, const char *path, const char *syspath, - int major, int minor, - config_odev_probe_proc_ptr probe_callback); - #endif -@@ -128,7 +128,7 @@ device_added(struct udev_device *udev_device) - - LogMessage(X_INFO, "config/udev: Adding drm device (%s)\n", path); - -- config_udev_odev_setup_attribs(path, syspath, major(devnum), -+ config_udev_odev_setup_attribs(udev_device, path, syspath, major(devnum), - minor(devnum), NewGPUDeviceRequest); - return; - } -@@ -322,7 +322,7 @@ device_removed(struct udev_device *device) - - LogMessage(X_INFO, "config/udev: removing GPU device %s %s\n", - syspath, path); -- config_udev_odev_setup_attribs(path, syspath, major(devnum), -+ config_udev_odev_setup_attribs(device, path, syspath, major(devnum), - minor(devnum), DeleteGPUDeviceRequest); - /* Retry vtenter after a drm node removal */ - systemd_logind_vtenter(); -@@ -465,17 +465,24 @@ config_udev_fini(void) - #ifdef CONFIG_UDEV_KMS - - static void --config_udev_odev_setup_attribs(const char *path, const char *syspath, -+config_udev_odev_setup_attribs(struct udev_device *udev_device, const char *path, const char *syspath, - int major, int minor, - config_odev_probe_proc_ptr probe_callback) - { - struct OdevAttributes *attribs = config_odev_allocate_attributes(); -+ const char *value; - - attribs->path = XNFstrdup(path); - attribs->syspath = XNFstrdup(syspath); - attribs->major = major; - attribs->minor = minor; - -+ value = udev_device_get_property_value(udev_device, "ID_PATH"); -+ if (value && !strncmp(value, "pci-", 4)) { -+ attribs->busid = XNFstrdup(value); -+ attribs->busid[3] = ':'; -+ } -+ - /* ownership of attribs is passed to probe layer */ - probe_callback(attribs); - } -@@ -516,7 +523,7 @@ config_udev_odev_probe(config_odev_probe_proc_ptr probe_callback) - else if (!check_seat(udev_device)) - goto no_probe; - -- config_udev_odev_setup_attribs(path, syspath, major(devnum), -+ config_udev_odev_setup_attribs(udev_device, path, syspath, major(devnum), - minor(devnum), probe_callback); - no_probe: - udev_device_unref(udev_device); -diff --git a/hw/xfree86/os-support/linux/lnx_platform.c b/hw/xfree86/os-support/linux/lnx_platform.c -index 70374ace88..e623062192 100644 ---- a/hw/xfree86/os-support/linux/lnx_platform.c -+++ b/hw/xfree86/os-support/linux/lnx_platform.c -@@ -23,13 +23,13 @@ - static Bool - get_drm_info(struct OdevAttributes *attribs, char *path, int delayed_index) - { -- drmSetVersion sv; - drmVersionPtr v; -- char *buf; - int fd; - int err = 0; - Bool paused, server_fd = FALSE; - -+ LogMessage(X_INFO, "Platform probe for %s\n", attribs->syspath); -+ - fd = systemd_logind_take_fd(attribs->major, attribs->minor, path, &paused); - if (fd != -1) { - if (paused) { -@@ -48,18 +48,6 @@ get_drm_info(struct OdevAttributes *attribs, char *path, int delayed_index) - if (fd == -1) - return FALSE; - -- sv.drm_di_major = 1; -- sv.drm_di_minor = 4; -- sv.drm_dd_major = -1; /* Don't care */ -- sv.drm_dd_minor = -1; /* Don't care */ -- -- err = drmSetInterfaceVersion(fd, &sv); -- if (err) { -- xf86Msg(X_ERROR, "%s: failed to set DRM interface version 1.4: %s\n", -- path, strerror(-err)); -- goto out; -- } -- - /* for a delayed probe we've already added the device */ - if (delayed_index == -1) { - xf86_add_platform_device(attribs, FALSE); -@@ -69,10 +57,6 @@ get_drm_info(struct OdevAttributes *attribs, char *path, int delayed_index) - if (server_fd) - xf86_platform_devices[delayed_index].flags |= XF86_PDEV_SERVER_FD; - -- buf = drmGetBusid(fd); -- xf86_platform_odev_attributes(delayed_index)->busid = XNFstrdup(buf); -- drmFreeBusid(buf); -- - v = drmGetVersion(fd); - if (!v) { - xf86Msg(X_ERROR, "%s: failed to query DRM version\n", path); --- -2.19.1 - diff --git a/SOURCES/0001-mustard-Don-t-probe-for-drivers-not-shipped-in-RHEL7.patch b/SOURCES/0001-mustard-Don-t-probe-for-drivers-not-shipped-in-RHEL7.patch index d6bd969..92c06e0 100644 --- a/SOURCES/0001-mustard-Don-t-probe-for-drivers-not-shipped-in-RHEL7.patch +++ b/SOURCES/0001-mustard-Don-t-probe-for-drivers-not-shipped-in-RHEL7.patch @@ -102,7 +102,7 @@ index 258988a..e4d4402 100644 - { - int idx = 0; - --#ifdef __linux__ +-#if defined(__linux__) || defined(__NetBSD__) - driverList[idx++] = "nouveau"; -#endif - driverList[idx++] = "nv"; diff --git a/SOURCES/0001-xf86-set-status-to-connected-for-monitors-enabled-in.patch b/SOURCES/0001-xf86-set-status-to-connected-for-monitors-enabled-in.patch new file mode 100644 index 0000000..12e5dcf --- /dev/null +++ b/SOURCES/0001-xf86-set-status-to-connected-for-monitors-enabled-in.patch @@ -0,0 +1,74 @@ +From 8ab80fd5057f3d954ac6dc310cc8773e9694a0b1 Mon Sep 17 00:00:00 2001 +From: Dave Airlie +Date: Fri, 29 Mar 2019 08:44:07 +1000 +Subject: [PATCH] xf86: set status to connected for monitors enabled in conf + +If the user sets Option "Enable" "TRUE" for a monitor, the X +server will connect the connector a crtc but tell the user it +is disconnected. + +However the user in this case is mutter, when it gets it's view +of the output configuration it sees the output is disconnected +and never sets it up again, which seems like the right thing to do. + +If we let the user enable a monitor, lets just set it as always +connected. + +Reviewed-by: Olivier Fourdan +Signed-off-by: Dave Airlie +--- + hw/xfree86/modes/xf86Crtc.c | 10 ++++++++++ + hw/xfree86/modes/xf86Crtc.h | 1 + + hw/xfree86/modes/xf86RandR12.c | 5 ++++- + 3 files changed, 15 insertions(+), 1 deletion(-) + +diff --git a/hw/xfree86/modes/xf86Crtc.c b/hw/xfree86/modes/xf86Crtc.c +index b3b84cc13..21daf9a01 100644 +--- a/hw/xfree86/modes/xf86Crtc.c ++++ b/hw/xfree86/modes/xf86Crtc.c +@@ -552,6 +552,16 @@ xf86OutputSetMonitor(xf86OutputPtr output) + "Output %s has no monitor section\n", output->name); + } + ++Bool ++xf86OutputForceEnabled(xf86OutputPtr output) ++{ ++ Bool enable; ++ ++ if (xf86GetOptValBool(output->options, OPTION_ENABLE, &enable) && enable) ++ return TRUE; ++ return FALSE; ++} ++ + static Bool + xf86OutputEnabled(xf86OutputPtr output, Bool strict) + { +diff --git a/hw/xfree86/modes/xf86Crtc.h b/hw/xfree86/modes/xf86Crtc.h +index 427c6bff4..bf3e808bc 100644 +--- a/hw/xfree86/modes/xf86Crtc.h ++++ b/hw/xfree86/modes/xf86Crtc.h +@@ -1144,4 +1144,5 @@ xf86ProviderSetup(ScrnInfoPtr scrn, + extern _X_EXPORT void + xf86DetachAllCrtc(ScrnInfoPtr scrn); + ++Bool xf86OutputForceEnabled(xf86OutputPtr output); + #endif /* _XF86CRTC_H_ */ +diff --git a/hw/xfree86/modes/xf86RandR12.c b/hw/xfree86/modes/xf86RandR12.c +index 0838dbf82..b476c07ce 100644 +--- a/hw/xfree86/modes/xf86RandR12.c ++++ b/hw/xfree86/modes/xf86RandR12.c +@@ -1647,7 +1647,10 @@ xf86RandR12SetInfo12(ScreenPtr pScreen) + RROutputSetConnection(output->randr_output, RR_Connected); + break; + case XF86OutputStatusDisconnected: +- RROutputSetConnection(output->randr_output, RR_Disconnected); ++ if (xf86OutputForceEnabled(output)) ++ RROutputSetConnection(output->randr_output, RR_Connected); ++ else ++ RROutputSetConnection(output->randr_output, RR_Disconnected); + break; + case XF86OutputStatusUnknown: + RROutputSetConnection(output->randr_output, RR_UnknownConnection); +-- +2.20.1 + diff --git a/SOURCES/0001-xwayland-Don-t-initialize-glamor-on-llvmpipe.patch b/SOURCES/0001-xwayland-Don-t-initialize-glamor-on-llvmpipe.patch deleted file mode 100644 index e5c0300..0000000 --- a/SOURCES/0001-xwayland-Don-t-initialize-glamor-on-llvmpipe.patch +++ /dev/null @@ -1,29 +0,0 @@ -From c64865691df6d2ad18aeecaecb0cb9a94b5d71eb Mon Sep 17 00:00:00 2001 -From: Adam Jackson -Date: Wed, 19 Sep 2018 10:56:29 -0400 -Subject: [PATCH] xwayland: Don't initialize glamor on llvmpipe - -Signed-off-by: Adam Jackson ---- - hw/xwayland/xwayland-glamor-gbm.c | 5 +++++ - 1 file changed, 5 insertions(+) - -diff --git a/hw/xwayland/xwayland-glamor-gbm.c b/hw/xwayland/xwayland-glamor-gbm.c -index 06fcf52..2144af7 100644 ---- a/hw/xwayland/xwayland-glamor-gbm.c -+++ b/hw/xwayland/xwayland-glamor-gbm.c -@@ -843,6 +843,11 @@ xwl_glamor_gbm_init_egl(struct xwl_screen *xwl_screen) - goto error; - } - -+ if (strstr(glGetString(GL_RENDERER), "llvmpipe")) { -+ ErrorF("Refusing to try glamor with llvmpipe\n"); -+ goto error; -+ } -+ - if (!epoxy_has_gl_extension("GL_OES_EGL_image")) { - ErrorF("GL_OES_EGL_image not available\n"); - goto error; --- -2.17.1 - diff --git a/SPECS/xorg-x11-server.spec b/SPECS/xorg-x11-server.spec index e38c540..7c9bf2f 100644 --- a/SPECS/xorg-x11-server.spec +++ b/SPECS/xorg-x11-server.spec @@ -41,8 +41,8 @@ Summary: X.Org X11 X server Name: xorg-x11-server -Version: 1.20.1 -Release: 5.6%{?gitdate:.%{gitdate}}%{?dist} +Version: 1.20.4 +Release: 7%{?gitdate:.%{gitdate}}%{?dist} URL: http://www.x.org License: MIT Group: User Interface/X @@ -101,20 +101,25 @@ Patch9710: 0001-modesetting-software-cursor-hack.patch # Bug 1599885 - RFE: enable backing store's Always mode Patch9750: 0001-composite-Implement-backing-store-Always.patch -Patch9751: 0001-glamor_egl-Don-t-initialize-on-llvmpipe.patch -Patch9752: 0001-xwayland-Don-t-initialize-glamor-on-llvmpipe.patch -Patch9753: 0001-linux-Make-platform-device-probe-less-fragile.patch +#Patch9751: 0001-glamor_egl-Don-t-initialize-on-llvmpipe.patch +#Patch9752: 0001-xwayland-Don-t-initialize-glamor-on-llvmpipe.patch +#Patch9753: 0001-linux-Make-platform-device-probe-less-fragile.patch Patch9754: 0001-xfree86-try-harder-to-span-on-multihead.patch Patch9755: 0001-modesetting-Hide-atomic-behind-Option-Atomic-boolean.patch Patch9756: 0001-xfree86-LeaveVT-from-xf86CrtcCloseScreen.patch -Patch9757: 0001-Disable-logfile-and-modulepath-when-running-with-ele.patch +#Patch9757: 0001-Disable-logfile-and-modulepath-when-running-with-ele.patch + +# Startx will have segment fault with hyper-V environment +Patch9759: 0001-Fix-segfault-on-probing-a-non-PCI-platform-device-on.patch + +# Bug 1640207 - Qt5 scroll misbehaving after XTest button event +Patch9758: 0001-dix-leave-last.valuators-alone-on-slave-switch.patch + +# Bug 1612924 - upstream backport for allow monitors to be enabled connected +Patch9800: 0001-xf86-set-status-to-connected-for-monitors-enabled-in.patch # Bug 1680120 - upstream backport to fix user switching Patch9900: 0001-xfree86-Only-switch-to-original-VT-if-it-is-active.patch -# Bug 1717309 - Startx will have segment fault with hyper-V environment -Patch9901: 0001-Fix-segfault-on-probing-a-non-PCI-platform-device-on.patch -# ... which also needs https://gitlab.freedesktop.org/xorg/xserver/merge_requests/217 -Patch9902: 0001-linux-Fix-platform-device-PCI-detection-for-complex-.patch %global moduledir %{_libdir}/xorg/modules %global drimoduledir %{_libdir}/dri @@ -597,20 +602,29 @@ rm -rf $RPM_BUILD_ROOT %{xserver_source_dir} %changelog -* Wed Jun 19 2019 Adam Jackson - 1.20.1-5.6 -- Fix platform device PCI detection for complex bus topologies - -* Mon Jun 17 2019 Adam Jackson - 1.20.1-5.5 -- Fix segfault in non-PCI platform detection +* Tue May 28 2019 Adam Jackson - 1.20.4-7 +- Fix a segfault with non-PCI platform devices (and other cases) -* Wed Jun 12 2019 Ray Strode - 1.20.1-5.4 +* Mon May 06 2019 Ray Strode - 1.20.4-6 - Stop VT switching when inactive server dies - Related: #1719361 + Resolves: #1680120 + +* Thu Apr 25 2019 Adam Jackson - 1.20.4-5 +- Fix a crash in RRProviderAutoConfigGpuScreen + +* Wed Apr 03 2019 Dave Airlie - 1.20.4-3 +- Backport fix for 1612924 - enabled monitors + +* Tue Apr 02 2019 Peter Hutterer 1.20.4-2 +- Don't reset last.valuators on slave device switch (#1640207) + +* Tue Mar 05 2019 Adam Jackson - 1.20.4-1 +- xserver 1.20.4 -* Tue Feb 12 2019 Adam Jackson - 1.20.1-5.3 +* Tue Feb 12 2019 Adam Jackson - 1.20.1-7 - Sync platform probe patch with upstream -* Fri Nov 23 2018 Olivier Fourdan - 1.20.1-5.2 +* Fri Nov 23 2018 Olivier Fourdan - 1.20.1-6 - Move LeaveVT after resetting randr pointers in xf86CrtcCloseScreen * Mon Oct 22 2018 Adam Jackson - 1.20.1-5.1