aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorstefson <herrtimson@yahoo.de>2020-01-14 09:10:15 +0100
committerAnthony G. Basile <blueness@gentoo.org>2020-01-16 19:01:17 -0500
commit0671a09797e58cfe79df93de1ddde1dccf86b76a (patch)
treed6b4a6b69c80abe0d4ac033547a170e0b626bae5 /x11-base
parentRevert "x11-base/xorg-server: Fix metadata.xml for missing IUSE libglvnd" (diff)
downloadmusl-0671a09797e58cfe79df93de1ddde1dccf86b76a.tar.gz
musl-0671a09797e58cfe79df93de1ddde1dccf86b76a.tar.bz2
musl-0671a09797e58cfe79df93de1ddde1dccf86b76a.zip
Revert "x11-base/xorg-server: bump to v1.20.6"
This reverts commit c6cdc79a4c4289d8212269ba51ea0c79434fff3b. the draft was accidently merged, this is unfinished and needs to be re-evaluated. Signed-off-by: Steffen Kuhn <nielson2@yandex.com> Signed-off-by: Anthony G. Basile <blueness@gentoo.org>
Diffstat (limited to 'x11-base')
-rw-r--r--x11-base/xorg-server/Manifest2
-rw-r--r--x11-base/xorg-server/files/xorg-server-1.20.4-shm-Pick-the-shm-dir-at-run-time-not-build-time.patch174
-rw-r--r--x11-base/xorg-server/files/xorg-server-1.20.4-shm-Use-memfd_create-when-possible.patch89
-rw-r--r--x11-base/xorg-server/files/xorg-server-1.20.4-shm-reindent-shm_tmpfile-to-follow-our-standards.patch72
-rw-r--r--x11-base/xorg-server/xorg-server-1.20.5.ebuild (renamed from x11-base/xorg-server/xorg-server-1.20.6.ebuild)35
5 files changed, 354 insertions, 18 deletions
diff --git a/x11-base/xorg-server/Manifest b/x11-base/xorg-server/Manifest
index 6f02874..f978f86 100644
--- a/x11-base/xorg-server/Manifest
+++ b/x11-base/xorg-server/Manifest
@@ -1 +1 @@
-DIST xorg-server-1.20.6.tar.bz2 6298697 BLAKE2B 30e505cf83bb2b20e17533b89b81521d029412ea6bd804ecf20458af20364172eb7b21561f14c885d5e16597e6d09985b255b6cec2beb30662658d9e316bc953 SHA512 9aa0ba4aee92fe628f2b8c41e4fe0134dc86154bb8787f907884ef2fd970e18e68e72ea8a1beb706d11ecf155b2abc9731f1abadff251ed592f8cca3b1240dd6
+DIST xorg-server-1.20.5.tar.bz2 6126757 BLAKE2B 2374c6f39acd80174d9cf9c15b6a75f420de3a9b7b51a41385a326fed106fc57fdc5a0a4a08beba36a8d65bff1c8c8d35bb50c73c5285ee206f3293a212369be SHA512 625f0626b122cf95600abe382c3217348999357a0e2d2443092f1b67cff1c98d7ef09303884ceaeac181e0555dc56b0d4d44bda45cc464dac2d9a50c5b32d631
diff --git a/x11-base/xorg-server/files/xorg-server-1.20.4-shm-Pick-the-shm-dir-at-run-time-not-build-time.patch b/x11-base/xorg-server/files/xorg-server-1.20.4-shm-Pick-the-shm-dir-at-run-time-not-build-time.patch
new file mode 100644
index 0000000..54ed629
--- /dev/null
+++ b/x11-base/xorg-server/files/xorg-server-1.20.4-shm-Pick-the-shm-dir-at-run-time-not-build-time.patch
@@ -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
+
diff --git a/x11-base/xorg-server/files/xorg-server-1.20.4-shm-Use-memfd_create-when-possible.patch b/x11-base/xorg-server/files/xorg-server-1.20.4-shm-Use-memfd_create-when-possible.patch
new file mode 100644
index 0000000..fce2594
--- /dev/null
+++ b/x11-base/xorg-server/files/xorg-server-1.20.4-shm-Use-memfd_create-when-possible.patch
@@ -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
+
diff --git a/x11-base/xorg-server/files/xorg-server-1.20.4-shm-reindent-shm_tmpfile-to-follow-our-standards.patch b/x11-base/xorg-server/files/xorg-server-1.20.4-shm-reindent-shm_tmpfile-to-follow-our-standards.patch
new file mode 100644
index 0000000..1ce9e13
--- /dev/null
+++ b/x11-base/xorg-server/files/xorg-server-1.20.4-shm-reindent-shm_tmpfile-to-follow-our-standards.patch
@@ -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
+
diff --git a/x11-base/xorg-server/xorg-server-1.20.6.ebuild b/x11-base/xorg-server/xorg-server-1.20.5.ebuild
index edf3db9..dfc7110 100644
--- a/x11-base/xorg-server/xorg-server-1.20.6.ebuild
+++ b/x11-base/xorg-server/xorg-server-1.20.5.ebuild
@@ -1,9 +1,10 @@
-# Copyright 1999-2020 Gentoo Authors
+# Copyright 1999-2019 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=7
XORG_DOC=doc
+XORG_EAUTORECONF="yes"
inherit xorg-3 multilib flag-o-matic
EGIT_REPO_URI="https://gitlab.freedesktop.org/xorg/xserver.git"
@@ -14,13 +15,9 @@ if [[ ${PV} != 9999* ]]; then
fi
IUSE_SERVERS="dmx kdrive wayland xephyr xnest xorg xvfb"
-IUSE="${IUSE_SERVERS} debug elogind ipv6 libressl libglvnd minimal selinux +suid systemd +udev unwind xcsecurity"
+IUSE="${IUSE_SERVERS} debug elogind +glamor ipv6 libressl minimal selinux +suid systemd +udev unwind xcsecurity"
-CDEPEND="libglvnd? (
- media-libs/libglvnd
- !app-eselect/eselect-opengl
- )
- !libglvnd? ( >=app-eselect/eselect-opengl-1.3.0 )
+CDEPEND=">=app-eselect/eselect-opengl-1.3.0
!libressl? ( dev-libs/openssl:0= )
libressl? ( dev-libs/libressl:0= )
>=x11-apps/iceauth-1.0.2
@@ -51,6 +48,11 @@ CDEPEND="libglvnd? (
>=x11-libs/libXres-1.0.3
>=x11-libs/libXtst-1.0.99.2
)
+ glamor? (
+ media-libs/libepoxy[X]
+ >=media-libs/mesa-18[egl,gbm]
+ !x11-libs/glamor
+ )
kdrive? (
>=x11-libs/libXext-1.0.5
x11-libs/libXv
@@ -66,14 +68,13 @@ CDEPEND="libglvnd? (
!minimal? (
>=x11-libs/libX11-1.1.5
>=x11-libs/libXext-1.0.5
- >=media-libs/mesa-18[X(+),egl,gbm]
- media-libs/libepoxy[X,egl(+)]
+ >=media-libs/mesa-18
)
udev? ( virtual/libudev:= )
unwind? ( sys-libs/libunwind )
wayland? (
>=dev-libs/wayland-1.3.0
- media-libs/libepoxy[egl(+)]
+ media-libs/libepoxy
>=dev-libs/wayland-protocols-1.1
)
>=x11-apps/xinit-1.3.3-r1
@@ -114,10 +115,13 @@ REQUIRED_USE="!minimal? (
)
elogind? ( udev )
?? ( elogind systemd )
- minimal? ( !wayland )
+ minimal? ( !glamor !wayland )
xephyr? ( kdrive )"
UPSTREAMED_PATCHES=(
+ "${FILESDIR}"/${PN}-1.20.4-shm-reindent-shm_tmpfile-to-follow-our-standards.patch
+ "${FILESDIR}"/${PN}-1.20.4-shm-Pick-the-shm-dir-at-run-time-not-build-time.patch
+ "${FILESDIR}"/${PN}-1.20.4-shm-Use-memfd_create-when-possible.patch
)
PATCHES=(
@@ -129,10 +133,9 @@ PATCHES=(
)
pkg_setup() {
- if use wayland && use minimal; then
+ if use wayland && ! use glamor; then
ewarn "glamor is necessary for acceleration under Xwayland."
ewarn "Performance may be unacceptable without it."
- ewarn "Build with USE=-minimal to enable glamor."
fi
# localstatedir is used for the log location; we need to override the default
@@ -144,6 +147,7 @@ pkg_setup() {
$(use_enable ipv6)
$(use_enable debug)
$(use_enable dmx)
+ $(use_enable glamor)
$(use_enable kdrive)
$(use_enable unwind libunwind)
$(use_enable wayland xwayland)
@@ -152,7 +156,6 @@ pkg_setup() {
$(use_enable !minimal dri)
$(use_enable !minimal dri2)
$(use_enable !minimal dri3)
- $(use_enable !minimal glamor)
$(use_enable !minimal glx)
$(use_enable xcsecurity)
$(use_enable xephyr)
@@ -204,9 +207,7 @@ src_install() {
pkg_postinst() {
if ! use minimal; then
# sets up libGL and DRI2 symlinks if needed (ie, on a fresh install)
- if ! use libglvnd; then
- eselect opengl set xorg-x11 --use-old
- fi
+ eselect opengl set xorg-x11 --use-old
fi
}