diff --git a/libdrm/0001-fix-export-symbols.patch b/libdrm/0001-fix-export-symbols.patch deleted file mode 100644 index f80e361752..0000000000 --- a/libdrm/0001-fix-export-symbols.patch +++ /dev/null @@ -1,23 +0,0 @@ -Description: fix export symbols -Author: Han Gao - -Last-Update: 2023-04-10 - ---- libdrm-2.4.114.orig/core-symbols.txt -+++ libdrm-2.4.114/core-symbols.txt -@@ -120,6 +120,7 @@ drmModeFreeCrtc - drmModeFreeEncoder - drmModeFreeFB - drmModeFreeFB2 -+drmModeFreeFormats - drmModeFreeModeInfo - drmModeFreeObjectProperties - drmModeFreePlane -@@ -147,6 +148,7 @@ drmModeObjectGetProperties - drmModeObjectSetProperty - drmModePageFlip - drmModePageFlipTarget -+drmModePopulateFormats - drmModeRevokeLease - drmModeRmFB - drmModeSetCrtc diff --git a/libdrm/0003-libsync-add-support-for-pre-v4.7-kernels.patch b/libdrm/0003-libsync-add-support-for-pre-v4.7-kernels.patch deleted file mode 100644 index 9e962a0948..0000000000 --- a/libdrm/0003-libsync-add-support-for-pre-v4.7-kernels.patch +++ /dev/null @@ -1,92 +0,0 @@ -From fbe2100a295bafe2567e976fce5e0664b854e8b4 Mon Sep 17 00:00:00 2001 -From: Brendan King -Date: Tue, 13 Jun 2017 15:52:44 +0100 -Subject: [PATCH 3/6] libsync: add support for pre-v4.7 kernels - -Add support for the the sync merge ioctl supported by older kernels. ---- - libsync.h | 44 +++++++++++++++++++++++++++++++++++++++++--- - 1 file changed, 41 insertions(+), 3 deletions(-) - -diff --git a/libsync.h b/libsync.h -index f1a2f96..c3b8a38 100644 ---- a/libsync.h -+++ b/libsync.h -@@ -40,6 +40,10 @@ - extern "C" { - #endif - -+#ifndef SYNC_IOC_MAGIC -+#define SYNC_IOC_MAGIC '>' -+#endif -+ - #ifndef SYNC_IOC_MERGE - /* duplicated from linux/sync_file.h to avoid build-time dependency - * on new (v4.7) kernel headers. Once distro's are mostly using -@@ -53,10 +57,22 @@ struct sync_merge_data { - uint32_t flags; - uint32_t pad; - }; --#define SYNC_IOC_MAGIC '>' - #define SYNC_IOC_MERGE _IOWR(SYNC_IOC_MAGIC, 3, struct sync_merge_data) - #endif - -+#ifndef SYNC_IOC_LEGACY_MERGE -+/* the legacy definitions are based on the contents of -+ * drivers/staging/android/uapi/sync.h in the v4.4 kernel. -+ */ -+struct sync_legacy_merge_data { -+ int32_t fd2; -+ char name[32]; -+ int32_t fence; -+}; -+ -+#define SYNC_IOC_LEGACY_MERGE _IOWR(SYNC_IOC_MAGIC, 1, \ -+ struct sync_legacy_merge_data) -+#endif - - static inline int sync_wait(int fd, int timeout) - { -@@ -83,6 +99,24 @@ static inline int sync_wait(int fd, int timeout) - return ret; - } - -+static inline int sync_legacy_merge(const char *name, int fd1, int fd2) -+{ -+ struct sync_legacy_merge_data data; -+ int ret; -+ -+ data.fd2 = fd2; -+ strncpy(data.name, name, sizeof(data.name)); -+ -+ do { -+ ret = ioctl(fd1, SYNC_IOC_LEGACY_MERGE, &data); -+ } while (ret == -1 && (errno == EINTR || errno == EAGAIN)); -+ -+ if (ret < 0) -+ return ret; -+ -+ return data.fence; -+} -+ - static inline int sync_merge(const char *name, int fd1, int fd2) - { - struct sync_merge_data data = {0}; -@@ -95,8 +129,12 @@ static inline int sync_merge(const char *name, int fd1, int fd2) - ret = ioctl(fd1, SYNC_IOC_MERGE, &data); - } while (ret == -1 && (errno == EINTR || errno == EAGAIN)); - -- if (ret < 0) -- return ret; -+ if (ret < 0) { -+ if (errno == ENOTTY) -+ return sync_legacy_merge(name, fd1, fd2); -+ else -+ return ret; -+ } - - return data.fence; - } --- -2.7.4 - diff --git a/libdrm/0004-Add-sync_fence_info-and-sync_pt_info.patch b/libdrm/0004-Add-sync_fence_info-and-sync_pt_info.patch deleted file mode 100644 index 5a17f323a5..0000000000 --- a/libdrm/0004-Add-sync_fence_info-and-sync_pt_info.patch +++ /dev/null @@ -1,212 +0,0 @@ -From fef264e0844cfd49be3fdc19a6cea3f2d0f273a8 Mon Sep 17 00:00:00 2001 -From: Brendan King -Date: Thu, 24 Aug 2017 13:28:38 +0100 -Subject: [PATCH 4/6] Add sync_fence_info and sync_pt_info - -For pre-4.7 kernels, sync_fence_info returns the data from the -SYNC_IOC_FENCE_INFO ioctl. For newer kernels, the SYNC_IOC_FILE_INFO -ioctl is called, and the data converted to SYNC_IOC_FENCE_INFO form. ---- - libsync.h | 172 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ - 1 file changed, 172 insertions(+) - -diff --git a/libsync.h b/libsync.h -index c3b8a38..44f7330 100644 ---- a/libsync.h -+++ b/libsync.h -@@ -31,6 +31,7 @@ - #include - #include - #include -+#include - #include - #include - #include -@@ -74,6 +75,54 @@ struct sync_legacy_merge_data { - struct sync_legacy_merge_data) - #endif - -+#ifndef SYNC_IOC_FILE_INFO -+/* duplicated from linux/sync_file.h to avoid a build-time dependency -+ * on new (v4.7) kernel headers. -+ */ -+struct sync_fence_info { -+ char obj_name[32]; -+ char driver_name[32]; -+ int32_t status; -+ uint32_t flags; -+ uint64_t timestamp_ns; -+}; -+ -+struct sync_file_info { -+ char name[32]; -+ int32_t status; -+ uint32_t flags; -+ uint32_t num_fences; -+ uint32_t pad; -+ uint64_t sync_fence_info; -+}; -+ -+#define SYNC_IOC_FILE_INFO _IOWR(SYNC_IOC_MAGIC, 4, struct sync_file_info) -+#endif -+ -+#ifndef SYNC_IOC_LEGACY_FENCE_INFO -+/* the legacy definitions are based on the contents of -+ * drivers/staging/android/uapi/sync.h in the v4.4 kernel. -+ */ -+struct sync_pt_info { -+ uint32_t len; -+ char obj_name[32]; -+ char driver_name[32]; -+ int32_t status; -+ uint64_t timestamp_ns; -+ uint8_t driver_data[0]; -+}; -+ -+struct sync_fence_info_data { -+ uint32_t len; -+ char name[32]; -+ int32_t status; -+ uint8_t pt_info[0]; -+}; -+ -+#define SYNC_IOC_LEGACY_FENCE_INFO _IOWR(SYNC_IOC_MAGIC, 2, \ -+ struct sync_fence_info_data) -+#endif -+ - static inline int sync_wait(int fd, int timeout) - { - struct pollfd fds = {0}; -@@ -179,6 +228,129 @@ static inline int sync_accumulate(const char *name, int *fd1, int fd2) - return 0; - } - -+static inline struct sync_pt_info *sync_pt_info( -+ struct sync_fence_info_data *info, -+ struct sync_pt_info *pt_info) -+{ -+ if (!pt_info) -+ pt_info = (struct sync_pt_info *)info->pt_info; -+ else -+ pt_info = (struct sync_pt_info *)((uint8_t *)pt_info + -+ pt_info->len); -+ -+ if ((uint32_t)((uint8_t *)pt_info - (uint8_t *)info) >= info->len) -+ return NULL; -+ -+ return pt_info; -+} -+ -+static inline struct sync_fence_info_data *sync_legacy_fence_info(int fd) -+{ -+ const uint32_t len = 4096; -+ struct sync_fence_info_data *info = malloc(len); -+ int ret; -+ -+ if (!info) -+ return NULL; -+ -+ info->len = len; -+ -+ do { -+ ret = ioctl(fd, SYNC_IOC_LEGACY_FENCE_INFO, info); -+ } while (ret == -1 && (errno == EINTR || errno == EAGAIN)); -+ -+ if (ret < 0) { -+ free(info); -+ return NULL; -+ } -+ -+ return info; -+} -+ -+static inline struct sync_fence_info_data *fence_info_from_file_info( -+ struct sync_file_info *file_info, -+ uint32_t num_fences) -+{ -+ struct sync_fence_info_data *info; -+ size_t info_len; -+ struct sync_pt_info *pt_info = NULL; -+ struct sync_fence_info *fence_info; -+ uint32_t i; -+ -+ info_len = sizeof(*info) + num_fences * sizeof(*pt_info); -+ info = malloc(info_len); -+ if (!info) -+ return NULL; -+ -+ info->len = info_len; -+ strncpy(info->name, file_info->name, sizeof(info->name)); -+ info->status = file_info->status; -+ -+ fence_info = (struct sync_fence_info *)(uintptr_t) -+ file_info->sync_fence_info; -+ for (i = 0; i < num_fences; i++) { -+ pt_info = sync_pt_info(info, pt_info); -+ assert(pt_info); -+ -+ pt_info->len = sizeof(*pt_info); -+ strncpy(pt_info->obj_name, fence_info->obj_name, -+ sizeof(pt_info->obj_name)); -+ strncpy(pt_info->driver_name, fence_info->driver_name, -+ sizeof(pt_info->driver_name)); -+ pt_info->status = fence_info->status; -+ pt_info->timestamp_ns = fence_info->timestamp_ns; -+ -+ fence_info++; -+ } -+ -+ return info; -+} -+ -+static inline struct sync_fence_info_data *sync_fence_info(int fd) -+{ -+ struct sync_fence_info_data *info = NULL; -+ struct sync_file_info initial_info = {""}; -+ struct sync_file_info *file_info; -+ int ret; -+ -+ do { -+ ret = ioctl(fd, SYNC_IOC_FILE_INFO, &initial_info); -+ } while (ret == -1 && (errno == EINTR || errno == EAGAIN)); -+ -+ if (ret < 0) { -+ if (errno == ENOTTY) -+ return sync_legacy_fence_info(fd); -+ else -+ return NULL; -+ } -+ -+ file_info = calloc(1, sizeof(*file_info) + initial_info.num_fences * -+ sizeof(struct sync_fence_info)); -+ if (!file_info) -+ return NULL; -+ -+ file_info->num_fences = initial_info.num_fences; -+ file_info->sync_fence_info = (uint64_t)(uintptr_t)(file_info + 1); -+ -+ do { -+ ret = ioctl(fd, SYNC_IOC_FILE_INFO, file_info); -+ } while (ret == -1 && (errno == EINTR || errno == EAGAIN)); -+ -+ if (ret < 0) -+ goto free_file_info; -+ -+ info = fence_info_from_file_info(file_info, initial_info.num_fences); -+ -+free_file_info: -+ free(file_info); -+ -+ return info; -+} -+ -+static inline void sync_fence_info_free(struct sync_fence_info_data *info) -+{ -+ free(info); -+} - #if defined(__cplusplus) - } - #endif --- -2.7.4 - diff --git a/libdrm/0005-xf86drm-add-support-for-populating-drm-formats.patch b/libdrm/0005-xf86drm-add-support-for-populating-drm-formats.patch deleted file mode 100644 index fb6f5617ce..0000000000 --- a/libdrm/0005-xf86drm-add-support-for-populating-drm-formats.patch +++ /dev/null @@ -1,168 +0,0 @@ -From 001ef51239541dd91f854ea5a5f569f2b338ad82 Mon Sep 17 00:00:00 2001 -From: Luigi Santivetti -Date: Tue, 24 Sep 2019 13:09:31 +0100 -Subject: [PATCH 5/6] xf86drm: add support for populating drm formats - -This change lets libdrm take care of allocation and deallocation of -the drmModePlane formats on behalf of clients. Weston, xserver and -others can use this functionaly instead of querying and parsing the -drm blob. - -NOTE: this change is based on weston/kms.c - -Change-Id: Id318322ee6b8f02442a37797669edd0363a58d88 -Signed-off-by: Luigi Santivetti ---- - xf86drmMode.c | 108 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ - xf86drmMode.h | 12 +++++++ - 2 files changed, 120 insertions(+) - -Index: libdrm-2.4.114/xf86drmMode.c -=================================================================== ---- libdrm-2.4.114.orig/xf86drmMode.c -+++ libdrm-2.4.114/xf86drmMode.c -@@ -858,6 +858,114 @@ drm_public bool drmModeFormatModifierBlo - return has_fmt; - } - -+static inline uint32_t * -+formats_ptr(struct drm_format_modifier_blob *blob) -+{ -+ return (uint32_t *)(((uint8_t *)blob) + blob->formats_offset); -+} -+ -+static inline struct drm_format_modifier * -+modifiers_ptr(struct drm_format_modifier_blob *blob) -+{ -+ return (struct drm_format_modifier *)(((uint8_t *)blob) + -+ blob->modifiers_offset); -+} -+ -+drm_public void -+drmModeFreeFormats(drmModeFormatsPtr drm_mode_fmt) -+{ -+ uint32_t i; -+ -+ if (!drm_mode_fmt) -+ return; -+ -+ for (i = 0; i < drm_mode_fmt->count; i++) -+ drmFree(drm_mode_fmt->formats[i].modifiers); -+ -+ drmFree(drm_mode_fmt); -+} -+ -+drm_public int -+drmModePopulateFormats(drmModePropertyBlobPtr blob, drmModeFormatsPtr *out_formats) -+{ -+ struct drm_format_modifier_blob *fmt_mod_blob; -+ struct drm_format_modifier *blob_modifiers; -+ drmModeFormatsPtr drm_mode_fmt; -+ uint32_t *blob_formats; -+ uint32_t count_formats; -+ uint32_t i; -+ -+ if (!blob || !out_formats) -+ return -EINVAL; -+ -+ fmt_mod_blob = blob->data; -+ blob_formats = formats_ptr(fmt_mod_blob); -+ blob_modifiers = modifiers_ptr(fmt_mod_blob); -+ -+ if (!fmt_mod_blob->count_formats) -+ return -EINVAL; -+ -+ /* The drmModeFormats type supports C versions earlier than C99 -+ * by explicitly defining an array of length 1. Thus, 1 must be -+ * deducted from the runtime value of fmt_mod_blob->count_formats. -+ */ -+ count_formats = fmt_mod_blob->count_formats - 1; -+ drm_mode_fmt = drmMalloc(sizeof(*drm_mode_fmt) + -+ sizeof(drm_mode_fmt->formats[0]) * count_formats); -+ if (!drm_mode_fmt) -+ return -errno; -+ -+ drm_mode_fmt->count = 0; -+ -+ for (i = 0; i < fmt_mod_blob->count_formats; i++) { -+ uint32_t count_valid_modifiers = 0; -+ uint64_t *modifiers = NULL; -+ unsigned j; -+ -+ for (j = 0; j < fmt_mod_blob->count_modifiers; j++) { -+ struct drm_format_modifier *mod = &blob_modifiers[j]; -+ -+ if ((i < mod->offset) || (i > mod->offset + 63)) -+ continue; -+ if (!(mod->formats & (1 << (i - mod->offset)))) -+ continue; -+ -+ modifiers = realloc(modifiers, -+ (count_valid_modifiers + 1) * -+ sizeof(*modifiers)); -+ if (!modifiers) -+ goto err_allocs; -+ -+ modifiers[count_valid_modifiers++] = mod->modifier; -+ } -+ -+ /* Couldn't find valid modifiers, fallback to use linear */ -+ if (count_valid_modifiers == 0) { -+ modifiers = drmMalloc(sizeof(*modifiers)); -+ if (!modifiers) -+ goto err_allocs; -+ -+ *modifiers = 0; /* as DRM_FORMAT_MOD_LINEAR */ -+ count_valid_modifiers = 1; -+ } -+ -+ /* If realloc fails, in order to free all previoulsy allocated -+ * modifiers, always update drm_mode_fmt->count. -+ */ -+ drm_mode_fmt->count++; -+ drm_mode_fmt->formats[i].format = blob_formats[i]; -+ drm_mode_fmt->formats[i].modifiers = modifiers; -+ drm_mode_fmt->formats[i].count_modifiers = count_valid_modifiers; -+ } -+ -+ *out_formats = drm_mode_fmt; -+ return 0; -+ -+err_allocs: -+ drmModeFreeFormats(drm_mode_fmt); -+ return -errno; -+} -+ - drm_public void drmModeFreePropertyBlob(drmModePropertyBlobPtr ptr) - { - if (!ptr) -Index: libdrm-2.4.114/xf86drmMode.h -=================================================================== ---- libdrm-2.4.114.orig/xf86drmMode.h -+++ libdrm-2.4.114/xf86drmMode.h -@@ -238,6 +238,15 @@ typedef struct _drmModeFormatModifierIte - uint64_t mod; - } drmModeFormatModifierIterator; - -+typedef struct _drmModeFormats { -+ uint32_t count; -+ struct { -+ uint32_t format; -+ uint32_t count_modifiers; -+ uint64_t *modifiers; -+ } formats[1]; -+} drmModeFormats, *drmModeFormatsPtr; -+ - typedef struct _drmModePlane { - uint32_t count_formats; - uint32_t *formats; -@@ -410,6 +419,9 @@ extern void drmModeFreeProperty(drmModeP - extern drmModePropertyBlobPtr drmModeGetPropertyBlob(int fd, uint32_t blob_id); - extern bool drmModeFormatModifierBlobIterNext(const drmModePropertyBlobRes *blob, - drmModeFormatModifierIterator *iter); -+extern int drmModePopulateFormats(drmModePropertyBlobPtr ptr, -+ drmModeFormatsPtr *out_formats); -+extern void drmModeFreeFormats(drmModeFormatsPtr ptr); - extern void drmModeFreePropertyBlob(drmModePropertyBlobPtr ptr); - extern int drmModeConnectorSetProperty(int fd, uint32_t connector_id, uint32_t property_id, - uint64_t value); diff --git a/libdrm/0006-Add-sync_file_info-and-sync_get_fence_info.patch b/libdrm/0006-Add-sync_file_info-and-sync_get_fence_info.patch deleted file mode 100644 index c2e857cde2..0000000000 --- a/libdrm/0006-Add-sync_file_info-and-sync_get_fence_info.patch +++ /dev/null @@ -1,148 +0,0 @@ -From a12e3b4490c182ed506f59eda01f1bd0919720f1 Mon Sep 17 00:00:00 2001 -From: Brendan King -Date: Mon, 9 Mar 2020 14:52:17 +0000 -Subject: [PATCH 6/6] Add sync_file_info and sync_get_fence_info - -For pre-4.7 kernels, sync_file_info calls the SYNC_IOC_FENCE_INFO ioctl, -and converts the data to SYNC_IOC_FILE_INFO form. For newer kernels, -sync_file_info returns data from the SYNC_IOC_FILE_INFO ioctl. - -This patch depends on patch "Add sync_fence_info and sync_pt_info", -which added legacy sync info support, using the structure and ioctl -definitions at the top of the patch, as well as the sync_pt_info -function. ---- - libsync.h | 117 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ - 1 file changed, 117 insertions(+) - -diff --git a/libsync.h b/libsync.h -index 44f7330..54acb6f 100644 ---- a/libsync.h -+++ b/libsync.h -@@ -351,6 +351,123 @@ static inline void sync_fence_info_free(struct sync_fence_info_data *info) - { - free(info); - } -+ -+static inline struct sync_fence_info *sync_get_fence_info( -+ struct sync_file_info *file_info) -+{ -+ return (struct sync_fence_info *)(uintptr_t)file_info->sync_fence_info; -+} -+ -+static inline struct sync_file_info *file_info_from_info_data( -+ struct sync_fence_info_data *info) -+{ -+ struct sync_pt_info *pt_info = NULL; -+ uint32_t num_fences = 0; -+ struct sync_file_info *file_info; -+ struct sync_fence_info *fence_info; -+ uint32_t i; -+ -+ while ((pt_info = sync_pt_info(info, pt_info)) != NULL) -+ num_fences++; -+ -+ file_info = calloc(1, sizeof(*file_info) + num_fences * -+ sizeof(*fence_info)); -+ if (!file_info) -+ return NULL; -+ -+ strncpy(file_info->name, info->name, sizeof(file_info->name)); -+ file_info->status = info->status; -+ file_info->num_fences = num_fences; -+ file_info->sync_fence_info = (uint64_t)(uintptr_t)(file_info + 1); -+ -+ fence_info = sync_get_fence_info(file_info); -+ for (i = 0; i < num_fences; i++) { -+ pt_info = sync_pt_info(info, pt_info); -+ assert(pt_info); -+ -+ strncpy(fence_info->obj_name, pt_info->obj_name, -+ sizeof(fence_info->obj_name)); -+ strncpy(fence_info->driver_name, pt_info->driver_name, -+ sizeof(fence_info->driver_name)); -+ fence_info->status = pt_info->status; -+ fence_info->timestamp_ns = pt_info->timestamp_ns; -+ -+ fence_info++; -+ } -+ -+ return file_info; -+} -+ -+static inline struct sync_file_info *sync_legacy_file_info(int fd) -+{ -+ const uint32_t len = 4096; -+ struct sync_fence_info_data *info = malloc(len); -+ struct sync_file_info *file_info; -+ int ret; -+ -+ if (!info) -+ return NULL; -+ -+ info->len = len; -+ -+ do { -+ ret = ioctl(fd, SYNC_IOC_LEGACY_FENCE_INFO, info); -+ } while (ret == -1 && (errno == EINTR || errno == EAGAIN)); -+ -+ if (ret < 0) { -+ free(info); -+ return NULL; -+ } -+ -+ file_info = file_info_from_info_data(info); -+ -+ free(info); -+ -+ return file_info; -+} -+ -+static inline void sync_file_info_free(struct sync_file_info *file_info) -+{ -+ free(file_info); -+} -+ -+static inline struct sync_file_info *sync_file_info(int fd) -+{ -+ struct sync_file_info initial_info = {""}; -+ struct sync_file_info *file_info; -+ int ret; -+ -+ do { -+ ret = ioctl(fd, SYNC_IOC_FILE_INFO, &initial_info); -+ } while (ret == -1 && (errno == EINTR || errno == EAGAIN)); -+ -+ if (ret < 0) { -+ if (errno == ENOTTY) -+ return sync_legacy_file_info(fd); -+ else -+ return NULL; -+ } -+ -+ file_info = calloc(1, sizeof(*file_info) + initial_info.num_fences * -+ sizeof(struct sync_fence_info)); -+ if (!file_info) -+ return NULL; -+ -+ file_info->num_fences = initial_info.num_fences; -+ file_info->sync_fence_info = (uint64_t)(uintptr_t)(file_info + 1); -+ -+ do { -+ ret = ioctl(fd, SYNC_IOC_FILE_INFO, file_info); -+ } while (ret == -1 && (errno == EINTR || errno == EAGAIN)); -+ -+ if (ret < 0) { -+ sync_file_info_free(file_info); -+ return NULL; -+ } -+ -+ return file_info; -+} -+ - #if defined(__cplusplus) - } - #endif --- -2.7.4 - diff --git a/libdrm/PKGBUILD b/libdrm/PKGBUILD index f4cdb89b9e..0f48791ad7 100644 --- a/libdrm/PKGBUILD +++ b/libdrm/PKGBUILD @@ -2,50 +2,33 @@ # Maintainer: Andreas Radke pkgname=libdrm -pkgver=2.4.120 +pkgver=2.4.122 pkgrel=1 pkgdesc="Userspace interface to kernel DRM services" url="https://dri.freedesktop.org/" arch=(x86_64 powerpc64le powerpc64 powerpc riscv64) -license=('custom') +license=('MIT') depends=('libpciaccess' 'glibc') makedepends=('python-docutils' 'meson' 'cairo') optdepends=('cairo: needed for modetest tool') replaces=('libdrm-new' 'libdrm-nouveau') source=(https://dri.freedesktop.org/$pkgname/$pkgname-$pkgver.tar.xz{,.sig} - COPYING - 0001-fix-export-symbols.patch - 0003-libsync-add-support-for-pre-v4.7-kernels.patch - 0004-Add-sync_fence_info-and-sync_pt_info.patch - 0005-xf86drm-add-support-for-populating-drm-formats.patch - 0006-Add-sync_file_info-and-sync_get_fence_info.patch) -sha512sums=('6dc16e5134a669eeb59debb1dc2d15b857483ab7476dc2b94bd05a32d8953f046f5656f6cf9e1a63e97e7156fb65ebb58b6a29fe45cb6326058baaf820626e70' + COPYING) +sha512sums=('ea6bac94416d4ba0e9805e142ae62904236bc49f803d4fc10c92968a4df64c818dd42524ad7a4e988062836783a148e27094050bb2754f751a368627f794ad13' 'SKIP' - 'b0ca349b882a4326b19f81f22804fabdb6fb7aef31cdc7b16b0a7ae191bfbb50c7daddb2fc4e6c33f1136af06d060a273de36f6f3412ea326f16fa4309fda660' - 'b43d88cb73cb6f27fc426427d3ec18465813ac317630c2da0f8b608a4776ee111e4b0ba92ec7b1e36d00ef57ab90a44fc67922fd676364541de61c4de77b5ba1' - '08b383319336e2064e13c0bb6d809c47e3949169d4b7aff8ac210e41455c31393b8563f8d32b72341fc6ebae6a834b7d8200e583bcd4c1e42d208ddf71a5d38e' - '77579c20c130f99b8771169c8ccfbbe837a132c26de398d98d62701dd9e0992f1d1add67069f68033d2b43f2c8eed88c4528e46f4ef572c22119249c4cd6b7e0' - '83240c951fe54c615e90277e5df5a754629a2725f09c38ca81664f34fc5fff08a7f4f809e815acfd086cab700a2b8062190cacfd27b2d924c0858fb1fee45d01' - '176cf420fd27bb3418bed8887c86b49df42969357cf01d872b1abdfa5b8564694bf1410b9b094542f7068ab96ef0336b86205c0bedcf5658e5fe95d02d65e4c8') + 'b0ca349b882a4326b19f81f22804fabdb6fb7aef31cdc7b16b0a7ae191bfbb50c7daddb2fc4e6c33f1136af06d060a273de36f6f3412ea326f16fa4309fda660') #validpgpkeys=('10A6D91DA1B05BD29F6DEBAC0C74F35979C486BE') # David Airlie validpgpkeys=('34FF9526CFEF0E97A340E2E40FDE7BE0E88F5E48') # emersion #validpgpkeys=('E9E246A89E65374EB8355796B8B5FA0EFC1EC2FE') # "Leo Liu " #validpgpkeys=('899A810900B815807742E6D895A677A230AC4AA9') # Bas Nieuwenhuizen #validpgpkeys=('2617F6F8DEBB0A7A15C405C983FD600E340FB5FF') # Samuel Pitoiset - -prepare() { - cd $pkgname-$pkgver - patch -Np1 -i ${srcdir}/0001-fix-export-symbols.patch - patch -Np1 -i ${srcdir}/0003-libsync-add-support-for-pre-v4.7-kernels.patch - patch -Np1 -i ${srcdir}/0004-Add-sync_fence_info-and-sync_pt_info.patch - patch -Np1 -i ${srcdir}/0005-xf86drm-add-support-for-populating-drm-formats.patch - patch -Np1 -i ${srcdir}/0006-Add-sync_file_info-and-sync_get_fence_info.patch -} +# validpgpkeys=('F3A52DB8ECE9EB9E33BC48C6917A3EE97A0FCD1A') # "Marek Olšák " +# validpgpkeys=('34FF9526CFEF0E97A340E2E40FDE7BE0E88F5E48') # Simon Ser build() { arch-meson $pkgname-$pkgver build \ -D udev=true \ - -D etnaviv=enabled \ + -D etnaviv=disabled \ -D freedreno=disabled \ -D vc4=disabled \ -D valgrind=disabled \ diff --git a/libdrm/keys/pgp/F3A52DB8ECE9EB9E33BC48C6917A3EE97A0FCD1A.asc b/libdrm/keys/pgp/F3A52DB8ECE9EB9E33BC48C6917A3EE97A0FCD1A.asc new file mode 100644 index 0000000000..6ebeb1dc48 --- /dev/null +++ b/libdrm/keys/pgp/F3A52DB8ECE9EB9E33BC48C6917A3EE97A0FCD1A.asc @@ -0,0 +1,41 @@ +-----BEGIN PGP PUBLIC KEY BLOCK----- + +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 +0rIquOmphGN23PQ1 +=8kC2 +-----END PGP PUBLIC KEY BLOCK-----