mirror of
https://github.com/void-linux/void-packages.git
synced 2025-07-27 07:52:55 +02:00
xorg-server: update to 1.20.10
Also add a patch to fix build w/ musl-1.2.1
This commit is contained in:
parent
349a2c878f
commit
9e755c674c
4 changed files with 46 additions and 262 deletions
43
srcpkgs/xorg-server/patches/fix-musl-input_event.patch
Normal file
43
srcpkgs/xorg-server/patches/fix-musl-input_event.patch
Normal file
|
@ -0,0 +1,43 @@
|
||||||
|
Source: @pullmoll
|
||||||
|
Upstream: no
|
||||||
|
Reason: Gracefully handle transition to 64 bit time with musl-1.2.1
|
||||||
|
|
||||||
|
--- hw/dmx/input/usb-keyboard.c 2020-12-01 17:32:25.000000000 +0100
|
||||||
|
+++ hw/dmx/input/usb-keyboard.c 2020-12-01 20:28:02.489695853 +0100
|
||||||
|
@@ -278,8 +278,8 @@
|
||||||
|
|
||||||
|
gettimeofday(&tv, NULL);
|
||||||
|
for (i = 0; i < 5; i++) {
|
||||||
|
- event.time.tv_sec = tv.tv_sec;
|
||||||
|
- event.time.tv_usec = tv.tv_usec;
|
||||||
|
+ event.input_event_sec = tv.tv_sec;
|
||||||
|
+ event.input_event_usec = tv.tv_usec;
|
||||||
|
event.type = EV_LED;
|
||||||
|
if (i == 0)
|
||||||
|
led = 1; /* LED_CAPSL == 0x01 */
|
||||||
|
--- hw/dmx/examples/ev.c 2020-12-01 17:32:25.000000000 +0100
|
||||||
|
+++ hw/dmx/examples/ev.c 2020-12-01 20:31:24.585605950 +0100
|
||||||
|
@@ -114,8 +114,8 @@
|
||||||
|
if ((fd = open(name, O_RDWR, 0)) >= 0) {
|
||||||
|
printf("%s: open, fd = %d\n", name, fd);
|
||||||
|
for (i = 0; i < LED_MAX; i++) {
|
||||||
|
- event.time.tv_sec = time(0);
|
||||||
|
- event.time.tv_usec = 0;
|
||||||
|
+ event.input_event_sec = time(0);
|
||||||
|
+ event.input_event_usec = 0;
|
||||||
|
event.type = EV_LED;
|
||||||
|
event.code = i;
|
||||||
|
event.value = 0;
|
||||||
|
@@ -123,9 +123,10 @@
|
||||||
|
}
|
||||||
|
|
||||||
|
while ((rc = read(fd, &event, sizeof(event))) > 0) {
|
||||||
|
+ struct timeval t = {event.input_event_sec, event.input_event_usec};
|
||||||
|
printf("%-24.24s.%06lu type 0x%04x; code 0x%04x;"
|
||||||
|
" value 0x%08x; ",
|
||||||
|
- ctime(&event.time.tv_sec),
|
||||||
|
- event.time.tv_usec, event.type, event.code, event.value);
|
||||||
|
+ ctime(&t.tv_sec),
|
||||||
|
+ t.tv_usec, event.type, event.code, event.value);
|
||||||
|
switch (event.type) {
|
||||||
|
case EV_KEY:
|
|
@ -1,30 +0,0 @@
|
||||||
From 919f1f46fc67dae93b2b3f278fcbfc77af34ec58 Mon Sep 17 00:00:00 2001
|
|
||||||
From: =?UTF-8?q?Michel=20D=C3=A4nzer?= <mdaenzer@redhat.com>
|
|
||||||
Date: Mon, 31 Aug 2020 12:10:43 +0200
|
|
||||||
Subject: [PATCH] xfree86: Take second reference for SavedCursor in
|
|
||||||
xf86CursorSetCursor
|
|
||||||
|
|
||||||
The same pointer is kept in CurrentCursor as well, therefore two
|
|
||||||
RefCursor calls are needed.
|
|
||||||
|
|
||||||
Fixes use-after-free after switching VTs.
|
|
||||||
|
|
||||||
Closes: https://gitlab.freedesktop.org/xorg/xserver/-/issues/1067
|
|
||||||
---
|
|
||||||
hw/xfree86/ramdac/xf86CursorRD.c | 3 +++
|
|
||||||
1 file changed, 3 insertions(+)
|
|
||||||
|
|
||||||
diff --git hw/xfree86/ramdac/xf86CursorRD.c hw/xfree86/ramdac/xf86CursorRD.c
|
|
||||||
index 9aa3de97bd..c8362d1690 100644
|
|
||||||
--- hw/xfree86/ramdac/xf86CursorRD.c
|
|
||||||
+++ hw/xfree86/ramdac/xf86CursorRD.c
|
|
||||||
@@ -334,6 +334,9 @@ xf86CursorSetCursor(DeviceIntPtr pDev, ScreenPtr pScreen, CursorPtr pCurs,
|
|
||||||
ScreenPriv->HotY = cursor->bits->yhot;
|
|
||||||
|
|
||||||
if (!infoPtr->pScrn->vtSema) {
|
|
||||||
+ cursor = RefCursor(cursor);
|
|
||||||
+ if (ScreenPriv->SavedCursor)
|
|
||||||
+ FreeCursor(ScreenPriv->SavedCursor, None);
|
|
||||||
ScreenPriv->SavedCursor = cursor;
|
|
||||||
return;
|
|
||||||
}
|
|
|
@ -1,229 +0,0 @@
|
||||||
https://gitlab.freedesktop.org/xorg/xserver/-/merge_requests/508/diffs
|
|
||||||
|
|
||||||
From 4b6fce5975c2f931a0478cf4deeec97529b05eb6 Mon Sep 17 00:00:00 2001
|
|
||||||
From: Olivier Fourdan <ofourdan@redhat.com>
|
|
||||||
Date: Tue, 8 Sep 2020 10:01:55 +0200
|
|
||||||
Subject: [PATCH 1/3] Revert "linux: Fix platform device probe for DT-based
|
|
||||||
PCI"
|
|
||||||
|
|
||||||
This reverts commit 249a12c54a9316b089bd22683c011519348496df.
|
|
||||||
|
|
||||||
https://gitlab.freedesktop.org/xorg/xserver/-/issues/1068
|
|
||||||
---
|
|
||||||
config/udev.c | 27 +--------------------------
|
|
||||||
1 file changed, 1 insertion(+), 26 deletions(-)
|
|
||||||
|
|
||||||
--- config/udev.c
|
|
||||||
+++ config/udev.c
|
|
||||||
@@ -464,31 +464,6 @@ config_udev_fini(void)
|
|
||||||
|
|
||||||
#ifdef CONFIG_UDEV_KMS
|
|
||||||
|
|
||||||
-/* Find the last occurrence of the needle in haystack */
|
|
||||||
-static char *strrstr(const char *haystack, const char *needle)
|
|
||||||
-{
|
|
||||||
- char *prev, *last, *tmp;
|
|
||||||
-
|
|
||||||
- prev = strstr(haystack, needle);
|
|
||||||
- if (!prev)
|
|
||||||
- return NULL;
|
|
||||||
-
|
|
||||||
- last = prev;
|
|
||||||
- tmp = prev + 1;
|
|
||||||
-
|
|
||||||
- while (tmp) {
|
|
||||||
- last = strstr(tmp, needle);
|
|
||||||
- if (!last)
|
|
||||||
- return prev;
|
|
||||||
- else {
|
|
||||||
- prev = last;
|
|
||||||
- tmp = prev + 1;
|
|
||||||
- }
|
|
||||||
- }
|
|
||||||
-
|
|
||||||
- return last;
|
|
||||||
-}
|
|
||||||
-
|
|
||||||
static void
|
|
||||||
config_udev_odev_setup_attribs(struct udev_device *udev_device, const char *path, const char *syspath,
|
|
||||||
int major, int minor,
|
|
||||||
@@ -503,7 +478,7 @@ 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 && (str = strrstr(value, "pci-"))) {
|
|
||||||
+ if (value && (str = strstr(value, "pci-"))) {
|
|
||||||
attribs->busid = XNFstrdup(str);
|
|
||||||
attribs->busid[3] = ':';
|
|
||||||
}
|
|
||||||
--
|
|
||||||
GitLab
|
|
||||||
|
|
||||||
|
|
||||||
From 39cb95e959fab97a7e255dda1a1599b096fb0f7e Mon Sep 17 00:00:00 2001
|
|
||||||
From: Olivier Fourdan <ofourdan@redhat.com>
|
|
||||||
Date: Tue, 8 Sep 2020 10:03:11 +0200
|
|
||||||
Subject: [PATCH 2/3] Revert "linux: Fix platform device PCI detection for
|
|
||||||
complex bus topologies"
|
|
||||||
|
|
||||||
This reverts commit 5c96eb5f44e62a4cfe835023cde304eb5795b8fd.
|
|
||||||
|
|
||||||
https://gitlab.freedesktop.org/xorg/xserver/-/issues/1068
|
|
||||||
---
|
|
||||||
config/udev.c | 6 +++---
|
|
||||||
1 file changed, 3 insertions(+), 3 deletions(-)
|
|
||||||
|
|
||||||
--- config/udev.c
|
|
||||||
+++ config/udev.c
|
|
||||||
@@ -470,7 +470,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, *str;
|
|
||||||
+ const char *value;
|
|
||||||
|
|
||||||
attribs->path = XNFstrdup(path);
|
|
||||||
attribs->syspath = XNFstrdup(syspath);
|
|
||||||
@@ -478,8 +478,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 && (str = strstr(value, "pci-"))) {
|
|
||||||
- attribs->busid = XNFstrdup(str);
|
|
||||||
+ if (value && !strncmp(value, "pci-", 4)) {
|
|
||||||
+ attribs->busid = XNFstrdup(value);
|
|
||||||
attribs->busid[3] = ':';
|
|
||||||
}
|
|
||||||
|
|
||||||
--
|
|
||||||
GitLab
|
|
||||||
|
|
||||||
|
|
||||||
From af4c84ce8855e84c0ad89b929bc972e884f0b8e3 Mon Sep 17 00:00:00 2001
|
|
||||||
From: Olivier Fourdan <ofourdan@redhat.com>
|
|
||||||
Date: Tue, 8 Sep 2020 10:03:33 +0200
|
|
||||||
Subject: [PATCH 3/3] Revert "linux: Make platform device probe less fragile"
|
|
||||||
|
|
||||||
This reverts commit 74b7427c41b4e4104af7abf70a996c086d3d7628.
|
|
||||||
|
|
||||||
https://gitlab.freedesktop.org/xorg/xserver/-/issues/1068
|
|
||||||
---
|
|
||||||
config/udev.c | 17 +++++------------
|
|
||||||
hw/xfree86/os-support/linux/lnx_platform.c | 20 ++++++++++++++++++--
|
|
||||||
2 files changed, 23 insertions(+), 14 deletions(-)
|
|
||||||
|
|
||||||
--- config/udev.c
|
|
||||||
+++ config/udev.c
|
|
||||||
@@ -56,7 +56,7 @@ static struct udev_monitor *udev_monitor;
|
|
||||||
|
|
||||||
#ifdef CONFIG_UDEV_KMS
|
|
||||||
static void
|
|
||||||
-config_udev_odev_setup_attribs(struct udev_device *udev_device, const char *path, const char *syspath,
|
|
||||||
+config_udev_odev_setup_attribs(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(udev_device, path, syspath, major(devnum),
|
|
||||||
+ config_udev_odev_setup_attribs(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(device, path, syspath, major(devnum),
|
|
||||||
+ config_udev_odev_setup_attribs(path, syspath, major(devnum),
|
|
||||||
minor(devnum), DeleteGPUDeviceRequest);
|
|
||||||
/* Retry vtenter after a drm node removal */
|
|
||||||
systemd_logind_vtenter();
|
|
||||||
@@ -465,24 +465,17 @@ config_udev_fini(void)
|
|
||||||
#ifdef CONFIG_UDEV_KMS
|
|
||||||
|
|
||||||
static void
|
|
||||||
-config_udev_odev_setup_attribs(struct udev_device *udev_device, const char *path, const char *syspath,
|
|
||||||
+config_udev_odev_setup_attribs(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);
|
|
||||||
}
|
|
||||||
@@ -523,7 +516,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(udev_device, path, syspath, major(devnum),
|
|
||||||
+ config_udev_odev_setup_attribs(path, syspath, major(devnum),
|
|
||||||
minor(devnum), probe_callback);
|
|
||||||
no_probe:
|
|
||||||
udev_device_unref(udev_device);
|
|
||||||
--- hw/xfree86/os-support/linux/lnx_platform.c
|
|
||||||
+++ 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,6 +48,18 @@ 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);
|
|
||||||
@@ -57,6 +69,10 @@ 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);
|
|
||||||
--
|
|
||||||
GitLab
|
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
# Template file for 'xorg-server'
|
# Template file for 'xorg-server'
|
||||||
pkgname=xorg-server
|
pkgname=xorg-server
|
||||||
version=1.20.9
|
version=1.20.10
|
||||||
revision=4
|
revision=1
|
||||||
build_style=meson
|
build_style=meson
|
||||||
configure_args="-Dipv6=true -Dxorg=true -Dxnest=true -Dxephyr=true
|
configure_args="-Dipv6=true -Dxorg=true -Dxnest=true -Dxephyr=true
|
||||||
-Dxvfb=true -Dhal=false -Dudev=true -Dxkb_dir=/usr/share/X11/xkb
|
-Dxvfb=true -Dhal=false -Dudev=true -Dxkb_dir=/usr/share/X11/xkb
|
||||||
|
@ -25,7 +25,7 @@ maintainer="Orphaned <orphan@voidlinux.org>"
|
||||||
license="MIT, BSD-3-Clause"
|
license="MIT, BSD-3-Clause"
|
||||||
homepage="https://xorg.freedesktop.org"
|
homepage="https://xorg.freedesktop.org"
|
||||||
distfiles="${XORG_SITE}/xserver/${pkgname}-${version}.tar.bz2"
|
distfiles="${XORG_SITE}/xserver/${pkgname}-${version}.tar.bz2"
|
||||||
checksum=e219f2e0dfe455467939149d7cd2ee53b79b512cc1d2094ae4f5c9ed9ccd3571
|
checksum=977420c082450dc808de301ef56af4856d653eea71519a973c3490a780cb7c99
|
||||||
lib32disabled=yes
|
lib32disabled=yes
|
||||||
provides="xserver-abi-extension-10_1 xserver-abi-input-24_1
|
provides="xserver-abi-extension-10_1 xserver-abi-input-24_1
|
||||||
xserver-abi-video-24_1 xf86-video-modesetting-1_1"
|
xserver-abi-video-24_1 xf86-video-modesetting-1_1"
|
||||||
|
|
Loading…
Add table
Reference in a new issue