Added missing patch files.
This commit is contained in:
parent
3003b322e6
commit
02961620cf
|
@ -19,6 +19,9 @@ AUX xorg-server-1.19-randr-Account-for-panning-and-transforms-when-constr.patch
|
|||
AUX xorg-server-1.19.4-sysmacros.patch 986 BLAKE2B 04c111591a6a558913217b24aa2357478e7d931b6cee5185dda31ebd38d68463b4a158a18d8a60ffa7ccc5c65e246f261ebbf7c0ebc81fd3ae31e7579b7adab4 SHA512 858676058779363741901ffbf79666f723f917b49f8627ddd2f31768873adfb416a70bc298e2356861cb5abca8be54a6c64f8fa4fd11a91cce072b93857ad168
|
||||
AUX xorg-server-1.19.5-glx-do-not-pick-sRGB-config-for-32-bit-RGBA-visual.patch 1555 BLAKE2B ef0a52b2341939f254bdce6b705f0591d0888c8043e5c0da1c4c4e97cdac632c56b27392ac2d7ac63653c7dfe1d381edd619a5e0c1c78f3bf255348c99c30f24 SHA512 66cd27608019557029f15aa81cf1a067e124ec0f854af9e732fef8b12bade4f1797481c86de2437b63ec5364fbeb1e3e05a39aa08df71ad08df79cd7d244e280
|
||||
AUX xorg-server-1.19.99.901-randr-fix-crash.patch 1774 BLAKE2B 6c8aba90b64989dc215b02514eb53412f8a7353a43373094bf0d0a8564338a4c409f5eabe4a2244fbaba46e6ed0b70d5253027319c92385c83b3a90f8e1911f6 SHA512 8513e59ea8d9782c6f088f202436b1f773a3e782d00a09c879ef49a050bc32aee0eaa8f545ecc4441e57ab82778b07d4e78b480356391e41c528d5b6b3fdda1e
|
||||
AUX xorg-server-1.20.4-shm-Pick-the-shm-dir-at-run-time-not-build-time.patch 4981 BLAKE2B 46b6548ebddbd962725b4e2a08060decd84f33dc74c2c4a7f4325402712b9dc84fd3325b2027fe0b98e9dd6a6a39bc976ba2a35481c5c49da310cd45a0e4dd3f SHA512 423b8869c3ce2ff74373aa04dca788896d8d47380b5b2368f51e5cc3100f47a94384ef2f616779a44d4cd04b8e0f997190ab7df58ae4605b5c9819fe1f93fb45
|
||||
AUX xorg-server-1.20.4-shm-Use-memfd_create-when-possible.patch 3194 BLAKE2B 6aca2b21b6b82cdd81a82d45bdbd1f861d4babdf222b73d285f118b42fdcb0a2b1f2949ab2141c7d95d3819c6687dc2323b4da19fbe99d865a2e51393b2c534a SHA512 a2de27ade9c79e8712c66d3ec8a1c9d4af0acdbbbc9bfdc58f0f9d8f2830a069fc3f3a74c92f5b0b0ff889bfc89017e7d0fed7fcd10b8916d0589b9f9171f81a
|
||||
AUX xorg-server-1.20.4-shm-reindent-shm_tmpfile-to-follow-our-standards.patch 1724 BLAKE2B 34c607f6b6a6f21ed6b34d7a87cb3bc1774f526f32144218c7d5d338474c08c98c72a87b41f3d0afcaf81dc0e8d5989a48fd8e64a6a9e25ad968ad8156f6e984 SHA512 49d5af904bac03cfc8ad89b70541e9af6687f7f0153d06ada64e2226d27dddc1b7bb27024bed73c20c365197858957730de005c515bbae8e22b610c3241b70e4
|
||||
AUX xorg-sets.conf 199 BLAKE2B e9414694f372d3f2a65bee903522094a60e261ddcd0c49a1d85a2ee804f3edbb5c605ed2d0b44839a91e98957f05ea88da87530f5f36b2db249e09ee56ee2975 SHA512 910fe28f20909243044f079ff35136942b8790f4f28ac42ffc64a76b7f03cd22057087fa5e4e01192080b52c0d89000ea96d5a807c6f11f680d3f43312c5be41
|
||||
DIST xorg-server-1.19.5.tar.bz2 5965044 BLAKE2B 23375793ea4459a962f412440e307081ce2acd3c646e5db4d1bfac20e267bcbb1752ba8f6de66df06d25eaf92d1b55082a80eced0d44c257a757d5926ca6a7f3 SHA512 928dea5850b98cd815004cfa133eca23cfa9521920c934c68a92787f2cae13cca1534eee772a4fb74b8ae8cb92662b5d68b95b834c8aa8ec57cd57cb4e5dd45c
|
||||
DIST xorg-server-1.20.3.tar.bz2 6205000 BLAKE2B 9fc8acf1812d0aa4800941dd1846060f91edf1e7ebc92b35e8c2028266d88d3ab3ba14e95f535e5ee41941f8e20769ee75723ba609f5653d4892f97bc5cf91c4 SHA512 ee44554f86df4297f54c5871fe7a18954eeef4338775a25f36d6577b279c4775f61128da71b86cfaeadcc080838d6749dede138d4db178866579da2056543fba
|
||||
|
|
|
@ -0,0 +1,174 @@
|
|||
From 19f6cb570becbc4e355807199c6e251fc7935132 Mon Sep 17 00:00:00 2001
|
||||
From: Eric Anholt <eric@anholt.net>
|
||||
Date: Wed, 19 Sep 2018 13:28:06 -0700
|
||||
Subject: [PATCH xserver] shm: Pick the shm dir at run time, not build time.
|
||||
|
||||
Prodding the builder's filesystem for tmp dirs doesn't necessarily
|
||||
tell you anything about what the actual host's filesystem is going to
|
||||
look like, so we should just try the dirs at runtime.
|
||||
|
||||
Signed-off-by: Eric Anholt <eric@anholt.net>
|
||||
---
|
||||
Xext/shm.c | 48 +++++++++++++++++++++++++----------------
|
||||
configure.ac | 43 ------------------------------------
|
||||
include/dix-config.h.in | 3 ---
|
||||
include/meson.build | 5 -----
|
||||
4 files changed, 29 insertions(+), 70 deletions(-)
|
||||
|
||||
diff --git a/Xext/shm.c b/Xext/shm.c
|
||||
index ed43b9202..2739a59e7 100644
|
||||
--- a/Xext/shm.c
|
||||
+++ b/Xext/shm.c
|
||||
@@ -1194,36 +1194,46 @@ ProcShmAttachFd(ClientPtr client)
|
||||
static int
|
||||
shm_tmpfile(void)
|
||||
{
|
||||
-#ifdef SHMDIR
|
||||
+ const char *shmdirs[] = {
|
||||
+ "/run/shm",
|
||||
+ "/var/tmp",
|
||||
+ "/tmp",
|
||||
+ };
|
||||
int fd;
|
||||
- char template[] = SHMDIR "/shmfd-XXXXXX";
|
||||
+
|
||||
#ifdef O_TMPFILE
|
||||
- fd = open(SHMDIR, O_TMPFILE|O_RDWR|O_CLOEXEC|O_EXCL, 0666);
|
||||
- if (fd >= 0) {
|
||||
- DebugF ("Using O_TMPFILE\n");
|
||||
- return fd;
|
||||
+ for (int i = 0; i < ARRAY_SIZE(shmdirs); i++) {
|
||||
+ fd = open(shmdirs[i], O_TMPFILE|O_RDWR|O_CLOEXEC|O_EXCL, 0666);
|
||||
+ if (fd >= 0) {
|
||||
+ DebugF ("Using O_TMPFILE\n");
|
||||
+ return fd;
|
||||
+ }
|
||||
}
|
||||
ErrorF ("Not using O_TMPFILE\n");
|
||||
#endif
|
||||
+
|
||||
+ for (int i = 0; i < ARRAY_SIZE(shmdirs); i++) {
|
||||
+ char template[PATH_MAX];
|
||||
+ snprintf(template, ARRAY_SIZE(template), "%s/shmfd-XXXXXX", shmdirs[i]);
|
||||
#ifdef HAVE_MKOSTEMP
|
||||
- fd = mkostemp(template, O_CLOEXEC);
|
||||
+ fd = mkostemp(template, O_CLOEXEC);
|
||||
#else
|
||||
- fd = mkstemp(template);
|
||||
+ fd = mkstemp(template);
|
||||
#endif
|
||||
- if (fd < 0)
|
||||
- return -1;
|
||||
- unlink(template);
|
||||
+ if (fd < 0)
|
||||
+ continue;
|
||||
+ unlink(template);
|
||||
#ifndef HAVE_MKOSTEMP
|
||||
- int flags = fcntl(fd, F_GETFD);
|
||||
- if (flags != -1) {
|
||||
- flags |= FD_CLOEXEC;
|
||||
- (void) fcntl(fd, F_SETFD, &flags);
|
||||
- }
|
||||
+ int flags = fcntl(fd, F_GETFD);
|
||||
+ if (flags != -1) {
|
||||
+ flags |= FD_CLOEXEC;
|
||||
+ (void) fcntl(fd, F_SETFD, &flags);
|
||||
+ }
|
||||
#endif
|
||||
- return fd;
|
||||
-#else
|
||||
+ return fd;
|
||||
+ }
|
||||
+
|
||||
return -1;
|
||||
-#endif
|
||||
}
|
||||
|
||||
static int
|
||||
diff --git a/configure.ac b/configure.ac
|
||||
index 359b62cb5..57a233102 100644
|
||||
--- a/configure.ac
|
||||
+++ b/configure.ac
|
||||
@@ -1115,49 +1115,6 @@ case "$DRI2,$HAVE_DRI2PROTO" in
|
||||
esac
|
||||
AM_CONDITIONAL(DRI2, test "x$DRI2" = xyes)
|
||||
|
||||
-dnl
|
||||
-dnl Locate a suitable tmp file system for creating shared memeory files
|
||||
-dnl
|
||||
-
|
||||
-AC_ARG_WITH(shared-memory-dir, AS_HELP_STRING([--with-shared-memory-dir=PATH], [Path to directory in a world-writable temporary directory for anonymous shared memory (default: auto)]),
|
||||
-[],
|
||||
-[with_shared_memory_dir=yes])
|
||||
-
|
||||
-shmdirs="/run/shm /var/tmp /tmp"
|
||||
-
|
||||
-case x"$with_shared_memory_dir" in
|
||||
-xyes)
|
||||
- for dir in $shmdirs; do
|
||||
- case x"$with_shared_memory_dir" in
|
||||
- xyes)
|
||||
- echo Checking temp dir "$dir"
|
||||
- if test -d "$dir"; then
|
||||
- with_shared_memory_dir="$dir"
|
||||
- fi
|
||||
- ;;
|
||||
- esac
|
||||
- done
|
||||
- ;;
|
||||
-x/*)
|
||||
- ;;
|
||||
-xno)
|
||||
- ;;
|
||||
-*)
|
||||
- AC_MSG_ERROR([Invalid directory specified for --with-shared-memory-dir: $with_shared_memory_dir])
|
||||
- ;;
|
||||
-esac
|
||||
-
|
||||
-case x"$with_shared_memory_dir" in
|
||||
-xyes)
|
||||
- AC_MSG_ERROR([No directory found for shared memory temp files.])
|
||||
- ;;
|
||||
-xno)
|
||||
- ;;
|
||||
-*)
|
||||
- AC_DEFINE_UNQUOTED(SHMDIR, ["$with_shared_memory_dir"], [Directory for shared memory temp files])
|
||||
- ;;
|
||||
-esac
|
||||
-
|
||||
AC_ARG_ENABLE(xtrans-send-fds, AS_HELP_STRING([--disable-xtrans-send-fds], [Use Xtrans support for fd passing (default: auto)]), [XTRANS_SEND_FDS=$enableval], [XTRANS_SEND_FDS=auto])
|
||||
|
||||
case "x$XTRANS_SEND_FDS" in
|
||||
diff --git a/include/dix-config.h.in b/include/dix-config.h.in
|
||||
index f8df86608..3bd22b8bb 100644
|
||||
--- a/include/dix-config.h.in
|
||||
+++ b/include/dix-config.h.in
|
||||
@@ -452,9 +452,6 @@
|
||||
/* Wrap SIGBUS to catch MIT-SHM faults */
|
||||
#undef BUSFAULT
|
||||
|
||||
-/* Directory for shared memory temp files */
|
||||
-#undef SHMDIR
|
||||
-
|
||||
/* Don't let Xdefs.h define 'pointer' */
|
||||
#define _XTYPEDEF_POINTER 1
|
||||
|
||||
diff --git a/include/meson.build b/include/meson.build
|
||||
index 4a0c12f5a..04c41e999 100644
|
||||
--- a/include/meson.build
|
||||
+++ b/include/meson.build
|
||||
@@ -91,11 +91,6 @@ conf_data.set('SYSTEMD_LOGIND', build_systemd_logind)
|
||||
conf_data.set('NEED_DBUS', build_systemd_logind or build_hal)
|
||||
conf_data.set('CONFIG_WSCONS', host_machine.system() == 'openbsd')
|
||||
|
||||
-# XXX: SHMDIR is weird in autoconf, probing the build system for
|
||||
-# various tmp directories. Could we replace it with C code at runtime
|
||||
-# that just uses whatever directory works?
|
||||
-conf_data.set_quoted('SHMDIR', '/tmp')
|
||||
-
|
||||
conf_data.set('HAVE_XSHMFENCE', xshmfence_dep.found())
|
||||
conf_data.set('WITH_LIBDRM', libdrm_dep.found())
|
||||
conf_data.set('GLAMOR_HAS_EGL_QUERY_DMABUF',
|
||||
--
|
||||
2.19.2
|
||||
|
|
@ -0,0 +1,89 @@
|
|||
From f6753c117ef0f83499d5e2d6dda226fec9ddf803 Mon Sep 17 00:00:00 2001
|
||||
From: Alexander Volkov <a.volkov@rusbitech.ru>
|
||||
Date: Mon, 11 Feb 2019 18:54:10 +0300
|
||||
Subject: [PATCH xserver] shm: Use memfd_create when possible
|
||||
|
||||
It doesn't require shared memory dir and thus allows
|
||||
to avoid cases when this dir is detected incorrectly,
|
||||
as in https://bugreports.qt.io/browse/QTBUG-71440
|
||||
|
||||
Signed-off-by: Alexander Volkov <a.volkov@rusbitech.ru>
|
||||
---
|
||||
Xext/shm.c | 12 ++++++++++++
|
||||
configure.ac | 2 +-
|
||||
include/dix-config.h.in | 3 +++
|
||||
include/meson.build | 1 +
|
||||
4 files changed, 17 insertions(+), 1 deletion(-)
|
||||
|
||||
diff --git a/Xext/shm.c b/Xext/shm.c
|
||||
index 2739a59e7..506fd4df1 100644
|
||||
--- a/Xext/shm.c
|
||||
+++ b/Xext/shm.c
|
||||
@@ -35,6 +35,9 @@ in this Software without prior written authorization from The Open Group.
|
||||
#include <sys/types.h>
|
||||
#include <sys/ipc.h>
|
||||
#include <sys/shm.h>
|
||||
+#ifdef HAVE_MEMFD_CREATE
|
||||
+#include <sys/mman.h>
|
||||
+#endif
|
||||
#include <unistd.h>
|
||||
#include <sys/stat.h>
|
||||
#include <fcntl.h>
|
||||
@@ -1201,6 +1204,15 @@ shm_tmpfile(void)
|
||||
};
|
||||
int fd;
|
||||
|
||||
+#ifdef HAVE_MEMFD_CREATE
|
||||
+ fd = memfd_create("xorg", MFD_CLOEXEC|MFD_ALLOW_SEALING);
|
||||
+ if (fd != -1) {
|
||||
+ fcntl(fd, F_ADD_SEALS, F_SEAL_SHRINK);
|
||||
+ DebugF ("Using memfd_create\n");
|
||||
+ return fd;
|
||||
+ }
|
||||
+#endif
|
||||
+
|
||||
#ifdef O_TMPFILE
|
||||
for (int i = 0; i < ARRAY_SIZE(shmdirs); i++) {
|
||||
fd = open(shmdirs[i], O_TMPFILE|O_RDWR|O_CLOEXEC|O_EXCL, 0666);
|
||||
diff --git a/configure.ac b/configure.ac
|
||||
index 0ca96aeb8..79ff7fa64 100644
|
||||
--- a/configure.ac
|
||||
+++ b/configure.ac
|
||||
@@ -159,7 +159,7 @@ dnl Checks for library functions.
|
||||
AC_CHECK_FUNCS([backtrace geteuid getuid issetugid getresuid \
|
||||
getdtablesize getifaddrs getpeereid getpeerucred getprogname getzoneid \
|
||||
mmap posix_fallocate seteuid shmctl64 strncasecmp vasprintf vsnprintf \
|
||||
- walkcontext setitimer poll epoll_create1 mkostemp])
|
||||
+ walkcontext setitimer poll epoll_create1 mkostemp memfd_create])
|
||||
AC_CONFIG_LIBOBJ_DIR([os])
|
||||
AC_REPLACE_FUNCS([reallocarray strcasecmp strcasestr strlcat strlcpy strndup\
|
||||
timingsafe_memcmp])
|
||||
diff --git a/include/dix-config.h.in b/include/dix-config.h.in
|
||||
index 855b3d50c..9eb1a924e 100644
|
||||
--- a/include/dix-config.h.in
|
||||
+++ b/include/dix-config.h.in
|
||||
@@ -128,6 +128,9 @@
|
||||
/* Define to 1 if you have the <linux/fb.h> header file. */
|
||||
#undef HAVE_LINUX_FB_H
|
||||
|
||||
+/* Define to 1 if you have the `memfd_create' function. */
|
||||
+#undef HAVE_MEMFD_CREATE
|
||||
+
|
||||
/* Define to 1 if you have the `mkostemp' function. */
|
||||
#undef HAVE_MKOSTEMP
|
||||
|
||||
diff --git a/include/meson.build b/include/meson.build
|
||||
index 04c41e999..bbd5a6690 100644
|
||||
--- a/include/meson.build
|
||||
+++ b/include/meson.build
|
||||
@@ -141,6 +141,7 @@ conf_data.set('HAVE_GETPEEREID', cc.has_function('getpeereid'))
|
||||
conf_data.set('HAVE_GETPEERUCRED', cc.has_function('getpeerucred'))
|
||||
conf_data.set('HAVE_GETPROGNAME', cc.has_function('getprogname'))
|
||||
conf_data.set('HAVE_GETZONEID', cc.has_function('getzoneid'))
|
||||
+conf_data.set('HAVE_MEMFD_CREATE', cc.has_function('memfd_create'))
|
||||
conf_data.set('HAVE_MKOSTEMP', cc.has_function('mkostemp'))
|
||||
conf_data.set('HAVE_MMAP', cc.has_function('mmap'))
|
||||
conf_data.set('HAVE_POLL', cc.has_function('poll'))
|
||||
--
|
||||
2.19.2
|
||||
|
|
@ -0,0 +1,72 @@
|
|||
From 804a9b4f57107fa2d0ed1ae0becda5bebaffe6e1 Mon Sep 17 00:00:00 2001
|
||||
From: Eric Anholt <eric@anholt.net>
|
||||
Date: Wed, 19 Sep 2018 13:20:12 -0700
|
||||
Subject: [PATCH xserver] shm: reindent shm_tmpfile to follow our standards.
|
||||
|
||||
Signed-off-by: Eric Anholt <eric@anholt.net>
|
||||
---
|
||||
Xext/shm.c | 40 ++++++++++++++++++++--------------------
|
||||
1 file changed, 20 insertions(+), 20 deletions(-)
|
||||
|
||||
diff --git a/Xext/shm.c b/Xext/shm.c
|
||||
index 589ed0b4d..ed43b9202 100644
|
||||
--- a/Xext/shm.c
|
||||
+++ b/Xext/shm.c
|
||||
@@ -1195,34 +1195,34 @@ static int
|
||||
shm_tmpfile(void)
|
||||
{
|
||||
#ifdef SHMDIR
|
||||
- int fd;
|
||||
- char template[] = SHMDIR "/shmfd-XXXXXX";
|
||||
+ int fd;
|
||||
+ char template[] = SHMDIR "/shmfd-XXXXXX";
|
||||
#ifdef O_TMPFILE
|
||||
- fd = open(SHMDIR, O_TMPFILE|O_RDWR|O_CLOEXEC|O_EXCL, 0666);
|
||||
- if (fd >= 0) {
|
||||
- DebugF ("Using O_TMPFILE\n");
|
||||
- return fd;
|
||||
- }
|
||||
- ErrorF ("Not using O_TMPFILE\n");
|
||||
+ fd = open(SHMDIR, O_TMPFILE|O_RDWR|O_CLOEXEC|O_EXCL, 0666);
|
||||
+ if (fd >= 0) {
|
||||
+ DebugF ("Using O_TMPFILE\n");
|
||||
+ return fd;
|
||||
+ }
|
||||
+ ErrorF ("Not using O_TMPFILE\n");
|
||||
#endif
|
||||
#ifdef HAVE_MKOSTEMP
|
||||
- fd = mkostemp(template, O_CLOEXEC);
|
||||
+ fd = mkostemp(template, O_CLOEXEC);
|
||||
#else
|
||||
- fd = mkstemp(template);
|
||||
+ fd = mkstemp(template);
|
||||
#endif
|
||||
- if (fd < 0)
|
||||
- return -1;
|
||||
- unlink(template);
|
||||
+ if (fd < 0)
|
||||
+ return -1;
|
||||
+ unlink(template);
|
||||
#ifndef HAVE_MKOSTEMP
|
||||
- int flags = fcntl(fd, F_GETFD);
|
||||
- if (flags != -1) {
|
||||
- flags |= FD_CLOEXEC;
|
||||
- (void) fcntl(fd, F_SETFD, &flags);
|
||||
- }
|
||||
+ int flags = fcntl(fd, F_GETFD);
|
||||
+ if (flags != -1) {
|
||||
+ flags |= FD_CLOEXEC;
|
||||
+ (void) fcntl(fd, F_SETFD, &flags);
|
||||
+ }
|
||||
#endif
|
||||
- return fd;
|
||||
+ return fd;
|
||||
#else
|
||||
- return -1;
|
||||
+ return -1;
|
||||
#endif
|
||||
}
|
||||
|
||||
--
|
||||
2.19.2
|
||||
|
Loading…
Reference in a new issue