Browse Source

xorg-x11-server package update

Signed-off-by: guibuilder_pel7x64builder0 <guibuilder@powerel.org>
master
guibuilder_pel7x64builder0 4 years ago
parent
commit
cb2415d553
  1. 7
      SOURCES/0001-Fix-segfault-on-probing-a-non-PCI-platform-device-on.patch
  2. 3
      SOURCES/0001-autobind-GPUs-to-the-screen.patch
  3. 25
      SOURCES/0001-composite-Additional-paranoia-in-compDestroyDamage.patch
  4. 31
      SOURCES/0001-composite-Remove-excess-compUnredirectWindow.patch
  5. 61
      SOURCES/0001-dix-Optimize-setting-backing-store-state.patch
  6. 88
      SOURCES/0001-dix-leave-last.valuators-alone-on-slave-switch.patch
  7. 55
      SOURCES/0001-dri2-Set-fallback-driver-names-for-Intel-and-AMD-chi.patch
  8. 9
      SOURCES/0001-linux-Fix-platform-device-PCI-detection-for-complex-.patch
  9. 18
      SOURCES/0001-linux-Make-platform-device-probe-less-fragile.patch
  10. 11
      SOURCES/0001-modesetting-Hide-atomic-behind-Option-Atomic-boolean.patch
  11. 2
      SOURCES/0001-mustard-Don-t-probe-for-drivers-not-shipped-in-RHEL7.patch
  12. 74
      SOURCES/0001-xf86-set-status-to-connected-for-monitors-enabled-in.patch
  13. 7
      SOURCES/0001-xfree86-LeaveVT-from-xf86CrtcCloseScreen.patch
  14. 27
      SOURCES/0001-xfree86-Only-switch-to-original-VT-if-it-is-active.patch
  15. 68
      SPECS/xorg-x11-server.spec

7
SOURCES/0001-Fix-segfault-on-probing-a-non-PCI-platform-device-on.patch

@ -20,11 +20,12 @@ index cef47da03d..dadbac6c8f 100644 @@ -20,11 +20,12 @@ index cef47da03d..dadbac6c8f 100644
@@ -289,7 +289,7 @@ xf86platformProbe(void)
for (i = 0; i < xf86_num_platform_devices; i++) {
char *busid = xf86_platform_odev_attributes(i)->busid;

- if (pci && (strncmp(busid, "pci:", 4) == 0)) {
+ if (pci && busid && (strncmp(busid, "pci:", 4) == 0)) {
platform_find_pci_info(&xf86_platform_devices[i], busid);
}

--
--
2.21.0


3
SOURCES/0001-autobind-GPUs-to-the-screen.patch

@ -34,6 +34,7 @@ xorg.conf snippet. @@ -34,6 +34,7 @@ xorg.conf snippet.
Signed-off-by: Dave Airlie <airlied@gmail.com>
[hdegoede@redhat.com: Make configurable, fix with nvidia, submit upstream]
Signed-off-by: Hans de Goede <hdegoede@redhat.com>
[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 @@ -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;

25
SOURCES/0001-composite-Additional-paranoia-in-compDestroyDamage.patch

@ -0,0 +1,25 @@ @@ -0,0 +1,25 @@
From 58610d84853d1aa778230df731ce9036f1b32577 Mon Sep 17 00:00:00 2001
From: Adam Jackson <ajax@redhat.com>
Date: Tue, 13 Aug 2019 14:00:48 -0400
Subject: [PATCH] composite: Additional paranoia in compDestroyDamage

---
composite/compalloc.c | 2 ++
1 file changed, 2 insertions(+)

diff --git a/composite/compalloc.c b/composite/compalloc.c
index 57c1693..04cf70c 100644
--- a/composite/compalloc.c
+++ b/composite/compalloc.c
@@ -97,6 +97,8 @@ compDestroyDamage(DamagePtr pDamage, void *closure)
CompWindowPtr cw = GetCompWindow(pWin);
cw->damage = 0;
+ cw->damaged = 0;
+ cw->damageRegistered = 0;
}
static Bool
--
2.21.0

31
SOURCES/0001-composite-Remove-excess-compUnredirectWindow.patch

@ -0,0 +1,31 @@ @@ -0,0 +1,31 @@
From d84e9d5abfb571ba29f7ddf2a1cd3b7706702139 Mon Sep 17 00:00:00 2001
From: Adam Jackson <ajax@redhat.com>
Date: Mon, 5 Aug 2019 14:35:40 -0400
Subject: [PATCH] composite: Remove excess compUnredirectWindow

---
composite/compwindow.c | 8 --------
1 file changed, 8 deletions(-)

diff --git a/composite/compwindow.c b/composite/compwindow.c
index 9005d85..31d39e9 100644
--- a/composite/compwindow.c
+++ b/composite/compwindow.c
@@ -656,14 +656,6 @@ compDestroyWindow(WindowPtr pWin)
CompSubwindowsPtr csw;
Bool ret;
- /*
- * Take down bs explicitly, to get ->backStorage cleared
- */
- if (pWin->backingStore != NotUseful) {
- pWin->backingStore = NotUseful;
- pScreen->ChangeWindowAttributes(pWin, CWBackingStore);
- }
-
pScreen->DestroyWindow = cs->DestroyWindow;
while ((cw = GetCompWindow(pWin)))
FreeResource(cw->clients->id, RT_NONE);
--
2.21.0

61
SOURCES/0001-dix-Optimize-setting-backing-store-state.patch

@ -0,0 +1,61 @@ @@ -0,0 +1,61 @@
From c2c9450bc7b324e58ea6b77d0d7e1d2d18f35646 Mon Sep 17 00:00:00 2001
From: Adam Jackson <ajax@redhat.com>
Date: Tue, 30 Jul 2019 21:26:49 -0400
Subject: [PATCH xserver] dix: Optimize setting backing store state

Extra special RHEL 7.7+ edition
---
composite/compinit.c | 15 +++++----------
dix/window.c | 6 ++++++
2 files changed, 11 insertions(+), 10 deletions(-)

diff --git a/composite/compinit.c b/composite/compinit.c
index 2a4de4a22..149f354a6 100644
--- a/composite/compinit.c
+++ b/composite/compinit.c
@@ -120,20 +120,15 @@ compCheckBackingStore(WindowPtr pWin)
(pWin->backingStore == Always) ||
(pWin->backingStore == WhenMapped && pWin->viewable);
- if (should && !pWin->backStorage) {
+ if (should) {
compCheckPaintable(pWin);
- if (Success == compRedirectWindow(serverClient, pWin,
- CompositeRedirectAutomatic))
- pWin->backStorage = TRUE;
+ compRedirectWindow(serverClient, pWin, CompositeRedirectAutomatic);
}
- else if (!should && pWin->backStorage) {
+ else if (!should) {
compCheckPaintable(pWin);
- if (Success == compUnredirectWindow(serverClient, pWin,
- CompositeRedirectAutomatic))
- pWin->backStorage = FALSE;
+ compUnredirectWindow(serverClient, pWin, CompositeRedirectAutomatic);
}
- pWin->paintable = pWin->viewable ||
- (pWin->backingStore == Always && pWin->backStorage);
+ compCheckPaintable(pWin); /* XXX before and after? really? */
}
/* Fake backing store via automatic redirection */
diff --git a/dix/window.c b/dix/window.c
index 34bed93d9..30ae5db89 100644
--- a/dix/window.c
+++ b/dix/window.c
@@ -1342,6 +1342,12 @@ ChangeWindowAttributes(WindowPtr pWin, Mask vmask, XID *vlist, ClientPtr client)
client->errorValue = val;
goto PatchUp;
}
+ /* if we're not actually changing the window's state, hide
+ * CWBackingStore from vmaskCopy so it doesn't get passed to
+ * ->ChangeWindowAttributes below
+ */
+ if (pWin->backingStore == val)
+ continue;
pWin->backingStore = val;
pWin->forcedBS = FALSE;
break;
--
2.21.0

88
SOURCES/0001-dix-leave-last.valuators-alone-on-slave-switch.patch

@ -0,0 +1,88 @@ @@ -0,0 +1,88 @@
From 13f9b07039484927532d913dbccc664679235bf6 Mon Sep 17 00:00:00 2001
From: Peter Hutterer <peter.hutterer@who-t.net>
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 <peter.hutterer@who-t.net>
---
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

55
SOURCES/0001-dri2-Set-fallback-driver-names-for-Intel-and-AMD-chi.patch

@ -0,0 +1,55 @@ @@ -0,0 +1,55 @@
From 2a9268e4a0ba7b062ded4d361be3119d887aac41 Mon Sep 17 00:00:00 2001
From: Adam Jackson <ajax@redhat.com>
Date: Tue, 3 Sep 2019 11:20:58 -0400
Subject: [PATCH xserver] dri2: Set fallback driver names for Intel and AMD
chips
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

i965 and radeonsi, respectively, are the drivers that have been
receiving new hardware support. It's really silly to need to update the
server side to know specific new devices IDs every time a new ASIC comes
out.

Reviewed-by: Michel Dänzer <mdaenzer@redhat.com>
---
hw/xfree86/dri2/pci_ids/pci_id_driver_map.h | 9 ++-------
1 file changed, 2 insertions(+), 7 deletions(-)

diff --git a/hw/xfree86/dri2/pci_ids/pci_id_driver_map.h b/hw/xfree86/dri2/pci_ids/pci_id_driver_map.h
index da7ea1c1e..04f372279 100644
--- a/hw/xfree86/dri2/pci_ids/pci_id_driver_map.h
+++ b/hw/xfree86/dri2/pci_ids/pci_id_driver_map.h
@@ -45,12 +45,6 @@ static const int r600_chip_ids[] = {
#undef CHIPSET
};
-static const int radeonsi_chip_ids[] = {
-#define CHIPSET(chip, name, family) chip,
-#include "pci_ids/radeonsi_pci_ids.h"
-#undef CHIPSET
-};
-
static const int virtio_gpu_chip_ids[] = {
#define CHIPSET(chip, name, family) chip,
#include "pci_ids/virtio_gpu_pci_ids.h"
@@ -71,13 +65,14 @@ static const struct {
} driver_map[] = {
{ 0x8086, "i915", i915_chip_ids, ARRAY_SIZE(i915_chip_ids) },
{ 0x8086, "i965", i965_chip_ids, ARRAY_SIZE(i965_chip_ids) },
+ { 0x8086, "i965", NULL, -1 },
#ifndef DRIVER_MAP_GALLIUM_ONLY
{ 0x1002, "radeon", r100_chip_ids, ARRAY_SIZE(r100_chip_ids) },
{ 0x1002, "r200", r200_chip_ids, ARRAY_SIZE(r200_chip_ids) },
#endif
{ 0x1002, "r300", r300_chip_ids, ARRAY_SIZE(r300_chip_ids) },
{ 0x1002, "r600", r600_chip_ids, ARRAY_SIZE(r600_chip_ids) },
- { 0x1002, "radeonsi", radeonsi_chip_ids, ARRAY_SIZE(radeonsi_chip_ids) },
+ { 0x1002, "radeonsi", NULL, -1 },
{ 0x10de, "nouveau", NULL, -1 },
{ 0x1af4, "virtio_gpu", virtio_gpu_chip_ids, ARRAY_SIZE(virtio_gpu_chip_ids) },
{ 0x15ad, "vmwgfx", vmwgfx_chip_ids, ARRAY_SIZE(vmwgfx_chip_ids) },
--
2.23.0

9
SOURCES/0001-linux-Fix-platform-device-PCI-detection-for-complex-.patch

@ -26,12 +26,12 @@ index 314acba6ce..6e11aa3b88 100644 @@ -26,12 +26,12 @@ index 314acba6ce..6e11aa3b88 100644
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);
@ -39,6 +39,7 @@ index 314acba6ce..6e11aa3b88 100644 @@ -39,6 +39,7 @@ index 314acba6ce..6e11aa3b88 100644
+ attribs->busid = XNFstrdup(str);
attribs->busid[3] = ':';
}

--
--
2.21.0


18
SOURCES/0001-linux-Make-platform-device-probe-less-fragile.patch

@ -26,7 +26,7 @@ index 3a73189e25..8c6c4b6665 100644 @@ -26,7 +26,7 @@ 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,
@ -35,16 +35,16 @@ index 3a73189e25..8c6c4b6665 100644 @@ -35,16 +35,16 @@ index 3a73189e25..8c6c4b6665 100644
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),
@ -54,7 +54,7 @@ index 3a73189e25..8c6c4b6665 100644 @@ -54,7 +54,7 @@ index 3a73189e25..8c6c4b6665 100644
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,
@ -63,12 +63,12 @@ index 3a73189e25..8c6c4b6665 100644 @@ -63,12 +63,12 @@ index 3a73189e25..8c6c4b6665 100644
{
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);
@ -81,7 +81,7 @@ index 3a73189e25..8c6c4b6665 100644 @@ -81,7 +81,7 @@ index 3a73189e25..8c6c4b6665 100644
@@ -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);
@ -138,5 +138,5 @@ index 70374ace88..e623062192 100644 @@ -138,5 +138,5 @@ index 70374ace88..e623062192 100644
if (!v) {
xf86Msg(X_ERROR, "%s: failed to query DRM version\n", path);
--
2.19.1
2.21.0


11
SOURCES/0001-modesetting-Hide-atomic-behind-Option-Atomic-boolean.patch

@ -23,16 +23,16 @@ index 24311c1..4fc62e4 100644 @@ -23,16 +23,16 @@ index 24311c1..4fc62e4 100644
+ {OPTION_ATOMIC, "Atomic", OPTV_BOOLEAN, {0}, FALSE},
{-1, NULL, OPTV_NONE, {0}, FALSE}
};

@@ -1061,7 +1062,9 @@ PreInit(ScrnInfoPtr pScrn, int flags)
}

ret = drmSetClientCap(ms->fd, DRM_CLIENT_CAP_ATOMIC, 1);
- ms->atomic_modeset = (ret == 0);
+ if ((ms->atomic_modeset = (ret == 0)))
+ ms->atomic_modeset = xf86ReturnOptValBool(ms->drmmode.Options,
+ OPTION_ATOMIC, FALSE);

ms->kms_has_modifiers = FALSE;
ret = drmGetCap(ms->fd, DRM_CAP_ADDFB2_MODIFIERS, &value);
diff --git a/hw/xfree86/drivers/modesetting/driver.h b/hw/xfree86/drivers/modesetting/driver.h
@ -45,7 +45,8 @@ index c8db4b8..46ba78a 100644 @@ -45,7 +45,8 @@ index c8db4b8..46ba78a 100644
OPTION_DOUBLE_SHADOW,
+ OPTION_ATOMIC,
} modesettingOpts;

typedef struct
--
--
2.19.0


2
SOURCES/0001-mustard-Don-t-probe-for-drivers-not-shipped-in-RHEL7.patch

@ -102,7 +102,7 @@ index 258988a..e4d4402 100644 @@ -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";

74
SOURCES/0001-xf86-set-status-to-connected-for-monitors-enabled-in.patch

@ -0,0 +1,74 @@ @@ -0,0 +1,74 @@
From 8ab80fd5057f3d954ac6dc310cc8773e9694a0b1 Mon Sep 17 00:00:00 2001
From: Dave Airlie <airlied@redhat.com>
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 <ofourdan@redhat.com>
Signed-off-by: Dave Airlie <airlied@redhat.com>
---
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

7
SOURCES/0001-xfree86-LeaveVT-from-xf86CrtcCloseScreen.patch

@ -16,11 +16,12 @@ index 686cb51..710a41d 100644 @@ -16,11 +16,12 @@ index 686cb51..710a41d 100644
@@ -776,6 +776,8 @@ xf86CrtcCloseScreen(ScreenPtr screen)
crtc->randr_crtc = NULL;
}

+ scrn->LeaveVT(scrn);
+
screen->CloseScreen = config->CloseScreen;

xf86RotateCloseScreen(screen);
--
--
2.19.1


27
SOURCES/0001-xfree86-Only-switch-to-original-VT-if-it-is-active.patch

@ -19,7 +19,7 @@ index 039dc4a4d..358d89f0f 100644 @@ -19,7 +19,7 @@ index 039dc4a4d..358d89f0f 100644
@@ -272,101 +272,111 @@ xf86OpenConsole(void)
xf86SetConsoleHandler(drain_console, NULL);
}

nTty = tty_attr;
nTty.c_iflag = (IGNPAR | IGNBRK) & (~PARMRK) & (~ISTRIP);
nTty.c_oflag = 0;
@ -40,36 +40,36 @@ index 039dc4a4d..358d89f0f 100644 @@ -40,36 +40,36 @@ index 039dc4a4d..358d89f0f 100644
}
}
}

#pragma GCC diagnostic pop

void
xf86CloseConsole(void)
{
struct vt_mode VT;
+ struct vt_stat vts;
int ret;

if (xf86Info.ShareVTs) {
close(xf86Info.consoleFd);
return;
}

/*
* unregister the drain_console handler
* - what to do if someone else changed it in the meantime?
*/
xf86SetConsoleHandler(NULL, NULL);

/* Back to text mode ... */
SYSCALL(ret = ioctl(xf86Info.consoleFd, KDSETMODE, KD_TEXT));
if (ret < 0)
xf86Msg(X_WARNING, "xf86CloseConsole: KDSETMODE failed: %s\n",
strerror(errno));

SYSCALL(ioctl(xf86Info.consoleFd, KDSKBMODE, tty_mode));
tcsetattr(xf86Info.consoleFd, TCSANOW, &tty_attr);

SYSCALL(ret = ioctl(xf86Info.consoleFd, VT_GETMODE, &VT));
if (ret < 0)
xf86Msg(X_WARNING, "xf86CloseConsole: VT_GETMODE failed: %s\n",
@ -82,7 +82,7 @@ index 039dc4a4d..358d89f0f 100644 @@ -82,7 +82,7 @@ index 039dc4a4d..358d89f0f 100644
xf86Msg(X_WARNING, "xf86CloseConsole: VT_SETMODE failed: %s\n",
strerror(errno));
}

if (xf86Info.autoVTSwitch) {
/*
- * Perform a switch back to the active VT when we were started
@ -106,14 +106,14 @@ index 039dc4a4d..358d89f0f 100644 @@ -106,14 +106,14 @@ index 039dc4a4d..358d89f0f 100644
}
close(xf86Info.consoleFd); /* make the vt-manager happy */
}

#define CHECK_FOR_REQUIRED_ARGUMENT() \
if (((i + 1) >= argc) || (!argv[i + 1])) { \
ErrorF("Required argument to %s not specified\n", argv[i]); \
UseMsg(); \
FatalError("Required argument to %s not specified\n", argv[i]); \
}

int
xf86ProcessArgument(int argc, char *argv[], int i)
{
@ -125,11 +125,12 @@ index 039dc4a4d..358d89f0f 100644 @@ -125,11 +125,12 @@ index 039dc4a4d..358d89f0f 100644
KeepTty = TRUE;
return 1;
}

if ((argv[i][0] == 'v') && (argv[i][1] == 't')) {
if (sscanf(argv[i], "vt%2d", &xf86Info.vtno) == 0) {
UseMsg();
xf86Info.vtno = -1;
return 0;
--
--
2.21.0


68
SPECS/xorg-x11-server.spec

@ -41,8 +41,8 @@ @@ -41,8 +41,8 @@

Summary: X.Org X11 X server
Name: xorg-x11-server
Version: 1.20.1
Release: 6%{?gitdate:.%{gitdate}}%{?dist}
Version: 1.20.4
Release: 10%{?gitdate:.%{gitdate}}%{?dist}
URL: http://www.x.org
License: MIT
Group: User Interface/X
@ -100,21 +100,35 @@ Patch9710: 0001-modesetting-software-cursor-hack.patch @@ -100,21 +100,35 @@ 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-dix-Optimize-setting-backing-store-state.patch
Patch9752: 0001-composite-Remove-excess-compUnredirectWindow.patch
Patch9753: 0001-composite-Additional-paranoia-in-compDestroyDamage.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
Patch9760: 0001-linux-Make-platform-device-probe-less-fragile.patch
# ... which also needs https://gitlab.freedesktop.org/xorg/xserver/merge_requests/217
Patch9761: 0001-linux-Fix-platform-device-PCI-detection-for-complex-.patch

# Bug 1640207 - Qt5 scroll misbehaving after XTest button event
Patch9770: 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

# Bug 1763001 - Xorg.#.log show "(EE) modeset(0): [DRI2] No driver mapping found..."
Patch9910: 0001-dri2-Set-fallback-driver-names-for-Intel-and-AMD-chi.patch

%global moduledir %{_libdir}/xorg/modules
%global drimoduledir %{_libdir}/dri
@ -597,20 +611,38 @@ rm -rf $RPM_BUILD_ROOT @@ -597,20 +611,38 @@ rm -rf $RPM_BUILD_ROOT
%{xserver_source_dir}

%changelog
* Wed Jun 19 2019 Adam Jackson <ajax@redhat.com> - 1.20.1-5.6
- Fix platform device PCI detection for complex bus topologies
* Wed Jan 08 2020 Adam Jackson <ajax@redhat.com> - 1.20.4-10
- Set fallback DRI2 driver names for Intel and AMD

* Mon Jun 17 2019 Adam Jackson <ajax@redhat.com> - 1.20.1-5.5
- Fix segfault in non-PCI platform detection
* Tue Aug 13 2019 Adam Jackson <ajax@redhat.com> - 1.20.4-9
- Fix a crash when destroying a redirected window with backing store

* Wed Jun 12 2019 Ray Strode <rstrode@redhat.com> - 1.20.1-5.4
* Wed Jun 19 2019 Adam Jackson <ajax@redhat.com> - 1.20.4-8
- Fix platform device PCI detection with complex bus topologies

* Tue May 28 2019 Adam Jackson <ajax@redhat.com> - 1.20.4-7
- Fix a segfault with non-PCI platform devices (and other cases)

* Mon May 06 2019 Ray Strode <rstrode@redhat.com> - 1.20.4-6
- Stop VT switching when inactive server dies
Related: #1719361
Resolves: #1680120

* Thu Apr 25 2019 Adam Jackson <ajax@redhat.com> - 1.20.4-5
- Fix a crash in RRProviderAutoConfigGpuScreen

* Wed Apr 03 2019 Dave Airlie <airlied@redhat.com> - 1.20.4-3
- Backport fix for 1612924 - enabled monitors

* Tue Apr 02 2019 Peter Hutterer <peter.hutterer@redhat.com> 1.20.4-2
- Don't reset last.valuators on slave device switch (#1640207)

* Tue Mar 05 2019 Adam Jackson <ajax@redhat.com> - 1.20.4-1
- xserver 1.20.4

* Tue Feb 12 2019 Adam Jackson <ajax@redhat.com> - 1.20.1-5.3
* Tue Feb 12 2019 Adam Jackson <ajax@redhat.com> - 1.20.1-7
- Sync platform probe patch with upstream

* Fri Nov 23 2018 Olivier Fourdan <ofourdan@redhat.com> - 1.20.1-5.2
* Fri Nov 23 2018 Olivier Fourdan <ofourdan@redhat.com> - 1.20.1-6
- Move LeaveVT after resetting randr pointers in xf86CrtcCloseScreen

* Mon Oct 22 2018 Adam Jackson <ajax@redhat.com> - 1.20.1-5.1

Loading…
Cancel
Save