gnu: libdrm: Update to 2.4.101.
* gnu/packages/patches/libdrm-symbol-check.patch: Delete file. * gnu/packages/patches/libdrm-realpath-virtio.patch: New file. * gnu/local.mk (dist_patch_DATA): Adjust accordingly. * gnu/packages/xdisorg.scm (libdrm): Update to 2.4.101. [source](uri): Adjust for new .tar.xz tarball. [source](patches): Adjust patch list as above.master
parent
d92f9d341e
commit
3f46f04115
|
@ -1166,7 +1166,7 @@ dist_patch_DATA = \
|
|||
%D%/packages/patches/libbase-use-own-logging.patch \
|
||||
%D%/packages/patches/libbonobo-activation-test-race.patch \
|
||||
%D%/packages/patches/libcanberra-sound-theme-freedesktop.patch \
|
||||
%D%/packages/patches/libdrm-symbol-check.patch \
|
||||
%D%/packages/patches/libdrm-realpath-virtio.patch \
|
||||
%D%/packages/patches/libexif-CVE-2016-6328.patch \
|
||||
%D%/packages/patches/libexif-CVE-2017-7544.patch \
|
||||
%D%/packages/patches/libexif-CVE-2018-20030.patch \
|
||||
|
|
|
@ -0,0 +1,42 @@
|
|||
Only check for for relative path on virtio devices. Otherwise it could
|
||||
break driver loading in some circumstances, notably the IceCat sandbox.
|
||||
|
||||
https://gitlab.freedesktop.org/mesa/drm/-/issues/39
|
||||
|
||||
Taken from upstream:
|
||||
https://gitlab.freedesktop.org/mesa/drm/-/commit/57df07572ce45a1b60bae6fb89770388d3abd6dd
|
||||
|
||||
diff --git a/xf86drm.c b/xf86drm.c
|
||||
--- a/xf86drm.c
|
||||
+++ b/xf86drm.c
|
||||
@@ -3103,15 +3103,18 @@ static int drmParseSubsystemType(int maj, int min)
|
||||
int subsystem_type;
|
||||
|
||||
snprintf(path, sizeof(path), "/sys/dev/char/%d:%d/device", maj, min);
|
||||
- if (!realpath(path, real_path))
|
||||
- return -errno;
|
||||
- snprintf(path, sizeof(path), "%s", real_path);
|
||||
|
||||
subsystem_type = get_subsystem_type(path);
|
||||
+ /* Try to get the parent (underlying) device type */
|
||||
if (subsystem_type == DRM_BUS_VIRTIO) {
|
||||
+ /* Assume virtio-pci on error */
|
||||
+ if (!realpath(path, real_path))
|
||||
+ return DRM_BUS_VIRTIO;
|
||||
strncat(path, "/..", PATH_MAX);
|
||||
subsystem_type = get_subsystem_type(path);
|
||||
- }
|
||||
+ if (subsystem_type < 0)
|
||||
+ return DRM_BUS_VIRTIO;
|
||||
+ }
|
||||
return subsystem_type;
|
||||
#elif defined(__OpenBSD__) || defined(__DragonFly__) || defined(__FreeBSD__)
|
||||
return DRM_BUS_PCI;
|
||||
@@ -3920,6 +3923,7 @@ process_device(drmDevicePtr *device, const char *d_name,
|
||||
|
||||
switch (subsystem_type) {
|
||||
case DRM_BUS_PCI:
|
||||
+ case DRM_BUS_VIRTIO:
|
||||
return drmProcessPciDevice(device, node, node_type, maj, min,
|
||||
fetch_deviceinfo, flags);
|
||||
case DRM_BUS_USB:
|
|
@ -1,215 +0,0 @@
|
|||
Augment the list of expected symbols to fix the symbol-check tests on
|
||||
mips64el-linux, armhf-linux and aarch64-linux.
|
||||
|
||||
--- libdrm-2.4.65/freedreno/freedreno-symbol-check.orig 2015-09-04 11:07:40.000000000 -0400
|
||||
+++ libdrm-2.4.65/freedreno/freedreno-symbol-check 2015-10-18 23:57:15.288416229 -0400
|
||||
@@ -1,6 +1,6 @@
|
||||
#!/bin/bash
|
||||
|
||||
-# The following symbols (past the first five) are taken from the public headers.
|
||||
+# The following symbols (past the first 12) are taken from the public headers.
|
||||
# A list of the latter should be available Makefile.sources/LIBDRM_FREEDRENO_H_FILES
|
||||
|
||||
FUNCS=$(nm -D --format=bsd --defined-only ${1-.libs/libdrm_freedreno.so} | awk '{print $3}'| while read func; do
|
||||
@@ -10,6 +10,13 @@
|
||||
_end
|
||||
_fini
|
||||
_init
|
||||
+_fbss
|
||||
+_fdata
|
||||
+_ftext
|
||||
+__bss_start__
|
||||
+__bss_end__
|
||||
+_bss_end__
|
||||
+__end__
|
||||
fd_bo_cpu_fini
|
||||
fd_bo_cpu_prep
|
||||
fd_bo_del
|
||||
--- libdrm-2.4.65/nouveau/nouveau-symbol-check.orig 2015-05-04 11:47:43.000000000 -0400
|
||||
+++ libdrm-2.4.65/nouveau/nouveau-symbol-check 2015-10-18 23:55:26.078327118 -0400
|
||||
@@ -1,6 +1,6 @@
|
||||
#!/bin/bash
|
||||
|
||||
-# The following symbols (past the first five) are taken from the public headers.
|
||||
+# The following symbols (past the first 12) are taken from the public headers.
|
||||
# A list of the latter should be available Makefile.sources/LIBDRM_NOUVEAU_H_FILES
|
||||
|
||||
FUNCS=$(nm -D --format=bsd --defined-only ${1-.libs/libdrm_nouveau.so} | awk '{print $3}'| while read func; do
|
||||
@@ -10,6 +10,13 @@
|
||||
_end
|
||||
_fini
|
||||
_init
|
||||
+_fbss
|
||||
+_fdata
|
||||
+_ftext
|
||||
+__bss_start__
|
||||
+__bss_end__
|
||||
+_bss_end__
|
||||
+__end__
|
||||
nouveau_bo_map
|
||||
nouveau_bo_name_get
|
||||
nouveau_bo_name_ref
|
||||
--- libdrm-2.4.65/libkms/kms-symbol-check.orig 2015-05-04 11:47:43.000000000 -0400
|
||||
+++ libdrm-2.4.65/libkms/kms-symbol-check 2015-10-18 23:46:10.683869471 -0400
|
||||
@@ -1,6 +1,6 @@
|
||||
#!/bin/bash
|
||||
|
||||
-# The following symbols (past the first five) are taken from the public headers.
|
||||
+# The following symbols (past the first 12) are taken from the public headers.
|
||||
# A list of the latter should be available Makefile.sources/LIBKMS_H_FILES
|
||||
|
||||
FUNCS=$(nm -D --format=bsd --defined-only ${1-.libs/libkms.so} | awk '{print $3}'| while read func; do
|
||||
@@ -10,6 +10,13 @@
|
||||
_end
|
||||
_fini
|
||||
_init
|
||||
+_fbss
|
||||
+_fdata
|
||||
+_ftext
|
||||
+__bss_start__
|
||||
+__bss_end__
|
||||
+_bss_end__
|
||||
+__end__
|
||||
kms_bo_create
|
||||
kms_bo_destroy
|
||||
kms_bo_get_prop
|
||||
--- libdrm-2.4.65/intel/intel-symbol-check.orig 2015-05-04 11:47:43.000000000 -0400
|
||||
+++ libdrm-2.4.65/intel/intel-symbol-check 2015-10-18 23:55:53.309558508 -0400
|
||||
@@ -1,6 +1,6 @@
|
||||
#!/bin/bash
|
||||
|
||||
-# The following symbols (past the first five) are taken from the public headers.
|
||||
+# The following symbols (past the first 12) are taken from the public headers.
|
||||
# A list of the latter should be available Makefile.sources/LIBDRM_INTEL_H_FILES
|
||||
|
||||
FUNCS=$(nm -D --format=bsd --defined-only ${1-.libs/libdrm_intel.so} | awk '{print $3}' | while read func; do
|
||||
@@ -10,6 +10,13 @@
|
||||
_end
|
||||
_fini
|
||||
_init
|
||||
+_fbss
|
||||
+_fdata
|
||||
+_ftext
|
||||
+__bss_start__
|
||||
+__bss_end__
|
||||
+_bss_end__
|
||||
+__end__
|
||||
drm_intel_bo_alloc
|
||||
drm_intel_bo_alloc_for_render
|
||||
drm_intel_bo_alloc_tiled
|
||||
--- libdrm-2.4.65/amdgpu/amdgpu-symbol-check.orig 2015-08-17 10:08:11.000000000 -0400
|
||||
+++ libdrm-2.4.65/amdgpu/amdgpu-symbol-check 2015-10-18 23:56:10.606917723 -0400
|
||||
@@ -1,6 +1,6 @@
|
||||
#!/bin/bash
|
||||
|
||||
-# The following symbols (past the first five) are taken from the public headers.
|
||||
+# The following symbols (past the first 12) are taken from the public headers.
|
||||
# A list of the latter should be available Makefile.am/libdrm_amdgpuinclude_HEADERS
|
||||
|
||||
FUNCS=$(nm -D --format=bsd --defined-only ${1-.libs/libdrm_amdgpu.so} | awk '{print $3}' | while read func; do
|
||||
@@ -10,6 +10,13 @@
|
||||
_end
|
||||
_fini
|
||||
_init
|
||||
+_fbss
|
||||
+_fdata
|
||||
+_ftext
|
||||
+__bss_start__
|
||||
+__bss_end__
|
||||
+_bss_end__
|
||||
+__end__
|
||||
amdgpu_bo_alloc
|
||||
amdgpu_bo_cpu_map
|
||||
amdgpu_bo_cpu_unmap
|
||||
--- libdrm-2.4.65/exynos/exynos-symbol-check.orig 2015-05-04 11:47:43.000000000 -0400
|
||||
+++ libdrm-2.4.65/exynos/exynos-symbol-check 2015-10-18 23:56:32.025486153 -0400
|
||||
@@ -1,6 +1,6 @@
|
||||
#!/bin/bash
|
||||
|
||||
-# The following symbols (past the first five) are taken from the public headers.
|
||||
+# The following symbols (past the first 12) are taken from the public headers.
|
||||
# A list of the latter should be available Makefile.am/libdrm_exynos*_HEADERS
|
||||
|
||||
FUNCS=$(nm -D --format=bsd --defined-only ${1-.libs/libdrm_exynos.so} | awk '{print $3}'| while read func; do
|
||||
@@ -10,6 +10,13 @@
|
||||
_end
|
||||
_fini
|
||||
_init
|
||||
+_fbss
|
||||
+_fdata
|
||||
+_ftext
|
||||
+__bss_start__
|
||||
+__bss_end__
|
||||
+_bss_end__
|
||||
+__end__
|
||||
exynos_bo_create
|
||||
exynos_bo_destroy
|
||||
exynos_bo_from_name
|
||||
--- libdrm-2.4.65/omap/omap-symbol-check.orig 2015-05-04 11:47:43.000000000 -0400
|
||||
+++ libdrm-2.4.65/omap/omap-symbol-check 2015-10-18 23:56:44.834438626 -0400
|
||||
@@ -1,6 +1,6 @@
|
||||
#!/bin/bash
|
||||
|
||||
-# The following symbols (past the first five) are taken from the public headers.
|
||||
+# The following symbols (past the first 12) are taken from the public headers.
|
||||
# A list of the latter should be available Makefile.am/libdrm_omap*HEADERS
|
||||
|
||||
FUNCS=$(nm -D --format=bsd --defined-only ${1-.libs/libdrm_omap.so} | awk '{print $3}'| while read func; do
|
||||
@@ -10,6 +10,13 @@
|
||||
_end
|
||||
_fini
|
||||
_init
|
||||
+_fbss
|
||||
+_fdata
|
||||
+_ftext
|
||||
+__bss_start__
|
||||
+__bss_end__
|
||||
+_bss_end__
|
||||
+__end__
|
||||
omap_bo_cpu_fini
|
||||
omap_bo_cpu_prep
|
||||
omap_bo_del
|
||||
--- libdrm-2.4.65/tegra/tegra-symbol-check.orig 2015-05-04 11:47:43.000000000 -0400
|
||||
+++ libdrm-2.4.65/tegra/tegra-symbol-check 2015-10-18 23:57:00.756759698 -0400
|
||||
@@ -1,6 +1,6 @@
|
||||
#!/bin/bash
|
||||
|
||||
-# The following symbols (past the first nine) are taken from tegra.h.
|
||||
+# The following symbols (past the first 12) are taken from tegra.h.
|
||||
|
||||
FUNCS=$(nm -D --format=bsd --defined-only ${1-.libs/libdrm_tegra.so} | awk '{print $3}'| while read func; do
|
||||
( grep -q "^$func$" || echo $func ) <<EOF
|
||||
@@ -9,6 +9,9 @@
|
||||
__bss_start
|
||||
__end__
|
||||
_bss_end__
|
||||
+_fbss
|
||||
+_fdata
|
||||
+_ftext
|
||||
_edata
|
||||
_end
|
||||
_fini
|
||||
--- libdrm-2.4.65/radeon/radeon-symbol-check.orig 2015-05-04 11:47:43.000000000 -0400
|
||||
+++ libdrm-2.4.65/radeon/radeon-symbol-check 2015-10-18 23:57:00.756759698 -0400
|
||||
@@ -1,6 +1,6 @@
|
||||
#!/bin/bash
|
||||
|
||||
-# The following symbols (past the first five) are taken from the public headers.
|
||||
+# The following symbols (past the first 12) are taken from the public headers.
|
||||
# A list of the latter should be available Makefile.sources/LIBDRM_RADEON_H_FILES
|
||||
|
||||
FUNCS=$(nm -D --format=bsd --defined-only ${1-.libs/libdrm_tegra.so} | awk '{print $3}'| while read func; do
|
||||
@@ -10,6 +10,13 @@
|
||||
_end
|
||||
_fini
|
||||
_init
|
||||
+_fbss
|
||||
+_fdata
|
||||
+_ftext
|
||||
+__bss_start__
|
||||
+__bss_end__
|
||||
+_bss_end__
|
||||
+__end__
|
||||
radeon_bo_debug
|
||||
radeon_bo_get_handle
|
||||
radeon_bo_get_src_domain
|
|
@ -483,18 +483,16 @@ rasterisation.")
|
|||
(define-public libdrm
|
||||
(package
|
||||
(name "libdrm")
|
||||
(version "2.4.100")
|
||||
(source
|
||||
(origin
|
||||
(method url-fetch)
|
||||
(uri (string-append
|
||||
"https://dri.freedesktop.org/libdrm/libdrm-"
|
||||
version
|
||||
".tar.bz2"))
|
||||
(sha256
|
||||
(base32
|
||||
"0p8a1l3a3s40i81mawm8nhrbk7p97ss05qkawp1yx73c30lchz67"))
|
||||
(patches (search-patches "libdrm-symbol-check.patch"))))
|
||||
(version "2.4.101")
|
||||
(source (origin
|
||||
(method url-fetch)
|
||||
(uri (string-append
|
||||
"https://dri.freedesktop.org/libdrm/libdrm-"
|
||||
version ".tar.xz"))
|
||||
(sha256
|
||||
(base32
|
||||
"19vqbhqljhln0lrpnv3s7y3lkhsdcp76dl8bhqj3cis9ism1pwyx"))
|
||||
(patches (search-patches "libdrm-realpath-virtio.patch"))))
|
||||
(build-system meson-build-system)
|
||||
(arguments
|
||||
`(#:configure-flags
|
||||
|
|
Reference in New Issue