mirror of
https://github.com/gentoo-mirror/gentoo.git
synced 2026-08-24 06:48:18 -07:00
x11-base/xorg-server: Version bump to 1.20.4
Closes: https://bugs.gentoo.org/677752 Signed-off-by: Matt Turner <mattst88@gentoo.org>
This commit is contained in:
@@ -1 +1,2 @@
|
||||
DIST xorg-server-1.20.3.tar.bz2 6205000 BLAKE2B 9fc8acf1812d0aa4800941dd1846060f91edf1e7ebc92b35e8c2028266d88d3ab3ba14e95f535e5ee41941f8e20769ee75723ba609f5653d4892f97bc5cf91c4 SHA512 ee44554f86df4297f54c5871fe7a18954eeef4338775a25f36d6577b279c4775f61128da71b86cfaeadcc080838d6749dede138d4db178866579da2056543fba
|
||||
DIST xorg-server-1.20.4.tar.bz2 6123780 BLAKE2B 224dda54f433315f6614cbee5bc54db91d9d9e190c06ac7f26e334b80b9d4a612ff4b2a4f10f50a6f928ecdbea40172d5578289fbf88411f006bcd473253b05d SHA512 f1c92ef6d7613e0636973d3395b48dfdad42230847ab1c8b1cea84647a968f649f9aba97bdb01c10ee8351cbe954d4e6ca4a0fc84bb8fa662d49c8ba2aee00a8
|
||||
|
||||
@@ -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
|
||||
|
||||
217
x11-base/xorg-server/xorg-server-1.20.4.ebuild
Normal file
217
x11-base/xorg-server/xorg-server-1.20.4.ebuild
Normal file
@@ -0,0 +1,217 @@
|
||||
# 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://anongit.freedesktop.org/git/xorg/xserver.git"
|
||||
|
||||
DESCRIPTION="X.Org X servers"
|
||||
SLOT="0/${PV}"
|
||||
if [[ ${PV} != 9999* ]]; then
|
||||
KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~mips ~ppc ~ppc64 ~s390 ~sh ~sparc ~x86 ~amd64-fbsd ~x86-fbsd ~amd64-linux ~x86-linux"
|
||||
fi
|
||||
|
||||
IUSE_SERVERS="dmx kdrive wayland xephyr xnest xorg xvfb"
|
||||
IUSE="${IUSE_SERVERS} debug +glamor ipv6 libressl minimal selinux +suid systemd +udev unwind xcsecurity"
|
||||
|
||||
CDEPEND=">=app-eselect/eselect-opengl-1.3.0
|
||||
!libressl? ( dev-libs/openssl:0= )
|
||||
libressl? ( dev-libs/libressl:0= )
|
||||
>=x11-apps/iceauth-1.0.2
|
||||
>=x11-apps/rgb-1.0.3
|
||||
>=x11-apps/xauth-1.0.3
|
||||
x11-apps/xkbcomp
|
||||
>=x11-libs/libdrm-2.4.89
|
||||
>=x11-libs/libpciaccess-0.12.901
|
||||
>=x11-libs/libXau-1.0.4
|
||||
>=x11-libs/libXdmcp-1.0.2
|
||||
>=x11-libs/libXfont2-2.0.1
|
||||
>=x11-libs/libxkbfile-1.0.4
|
||||
>=x11-libs/libxshmfence-1.1
|
||||
>=x11-libs/pixman-0.27.2
|
||||
>=x11-libs/xtrans-1.3.5
|
||||
>=x11-misc/xbitmaps-1.0.1
|
||||
>=x11-misc/xkeyboard-config-2.4.1-r3
|
||||
dmx? (
|
||||
x11-libs/libXt
|
||||
>=x11-libs/libdmx-1.0.99.1
|
||||
>=x11-libs/libX11-1.1.5
|
||||
>=x11-libs/libXaw-1.0.4
|
||||
>=x11-libs/libXext-1.0.99.4
|
||||
>=x11-libs/libXfixes-5.0
|
||||
>=x11-libs/libXi-1.2.99.1
|
||||
>=x11-libs/libXmu-1.0.3
|
||||
x11-libs/libXrender
|
||||
>=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
|
||||
)
|
||||
xephyr? (
|
||||
x11-libs/libxcb[xkb]
|
||||
x11-libs/xcb-util
|
||||
x11-libs/xcb-util-image
|
||||
x11-libs/xcb-util-keysyms
|
||||
x11-libs/xcb-util-renderutil
|
||||
x11-libs/xcb-util-wm
|
||||
)
|
||||
!minimal? (
|
||||
>=x11-libs/libX11-1.1.5
|
||||
>=x11-libs/libXext-1.0.5
|
||||
>=media-libs/mesa-18
|
||||
)
|
||||
udev? ( virtual/libudev:= )
|
||||
unwind? ( sys-libs/libunwind )
|
||||
wayland? (
|
||||
>=dev-libs/wayland-1.3.0
|
||||
media-libs/libepoxy
|
||||
>=dev-libs/wayland-protocols-1.1
|
||||
)
|
||||
>=x11-apps/xinit-1.3.3-r1
|
||||
systemd? (
|
||||
sys-apps/dbus
|
||||
sys-apps/systemd
|
||||
)"
|
||||
|
||||
DEPEND="${CDEPEND}
|
||||
sys-devel/flex
|
||||
>=x11-base/xorg-proto-2018.3
|
||||
dmx? (
|
||||
doc? (
|
||||
|| (
|
||||
www-client/links
|
||||
www-client/lynx
|
||||
www-client/w3m
|
||||
)
|
||||
)
|
||||
)"
|
||||
|
||||
RDEPEND="${CDEPEND}
|
||||
selinux? ( sec-policy/selinux-xserver )
|
||||
!x11-drivers/xf86-video-modesetting
|
||||
"
|
||||
|
||||
PDEPEND="
|
||||
xorg? ( >=x11-base/xorg-drivers-$(ver_cut 1-2) )"
|
||||
|
||||
REQUIRED_USE="!minimal? (
|
||||
|| ( ${IUSE_SERVERS} )
|
||||
)
|
||||
minimal? ( !glamor !wayland )
|
||||
xephyr? ( kdrive )"
|
||||
|
||||
UPSTREAMED_PATCHES=(
|
||||
"${FILESDIR}"/${P}-shm-reindent-shm_tmpfile-to-follow-our-standards.patch
|
||||
"${FILESDIR}"/${P}-shm-Pick-the-shm-dir-at-run-time-not-build-time.patch
|
||||
"${FILESDIR}"/${P}-shm-Use-memfd_create-when-possible.patch
|
||||
)
|
||||
|
||||
PATCHES=(
|
||||
"${UPSTREAMED_PATCHES[@]}"
|
||||
"${FILESDIR}"/${PN}-1.12-unloadsubmodule.patch
|
||||
# needed for new eselect-opengl, bug #541232
|
||||
"${FILESDIR}"/${PN}-1.18-support-multiple-Files-sections.patch
|
||||
)
|
||||
|
||||
pkg_setup() {
|
||||
if use wayland && ! use glamor; then
|
||||
ewarn "glamor is necessary for acceleration under Xwayland."
|
||||
ewarn "Performance may be unacceptable without it."
|
||||
fi
|
||||
|
||||
# localstatedir is used for the log location; we need to override the default
|
||||
# from ebuild.sh
|
||||
# sysconfdir is used for the xorg.conf location; same applies
|
||||
# NOTE: fop is used for doc generating; and I have no idea if Gentoo
|
||||
# package it somewhere
|
||||
XORG_CONFIGURE_OPTIONS=(
|
||||
$(use_enable ipv6)
|
||||
$(use_enable debug)
|
||||
$(use_enable dmx)
|
||||
$(use_enable glamor)
|
||||
$(use_enable kdrive)
|
||||
$(use_enable unwind libunwind)
|
||||
$(use_enable wayland xwayland)
|
||||
$(use_enable !minimal record)
|
||||
$(use_enable !minimal xfree86-utils)
|
||||
$(use_enable !minimal dri)
|
||||
$(use_enable !minimal dri2)
|
||||
$(use_enable !minimal dri3)
|
||||
$(use_enable !minimal glx)
|
||||
$(use_enable xcsecurity)
|
||||
$(use_enable xephyr)
|
||||
$(use_enable xnest)
|
||||
$(use_enable xorg)
|
||||
$(use_enable xvfb)
|
||||
$(use_enable udev config-udev)
|
||||
$(use_with doc doxygen)
|
||||
$(use_with doc xmlto)
|
||||
$(use_with systemd systemd-daemon)
|
||||
$(use_enable systemd systemd-logind)
|
||||
$(usex suid $(use_enable systemd suid-wrapper) '--disable-suid-wrapper')
|
||||
$(usex suid $(use_enable !systemd install-setuid) '--disable-install-setuid')
|
||||
--enable-libdrm
|
||||
--sysconfdir="${EPREFIX}"/etc/X11
|
||||
--localstatedir="${EPREFIX}"/var
|
||||
--with-fontrootdir="${EPREFIX}"/usr/share/fonts
|
||||
--with-xkb-output="${EPREFIX}"/var/lib/xkb
|
||||
--disable-config-hal
|
||||
--disable-linux-acpi
|
||||
--without-dtrace
|
||||
--without-fop
|
||||
--with-os-vendor=Gentoo
|
||||
--with-sha1=libcrypto
|
||||
)
|
||||
}
|
||||
|
||||
src_install() {
|
||||
default
|
||||
|
||||
server_based_install
|
||||
|
||||
if ! use minimal && use xorg; then
|
||||
# Install xorg.conf.example into docs
|
||||
dodoc "${S}"/hw/xfree86/xorg.conf.example
|
||||
fi
|
||||
|
||||
newinitd "${FILESDIR}"/xdm-setup.initd-1 xdm-setup
|
||||
newinitd "${FILESDIR}"/xdm.initd-11 xdm
|
||||
newconfd "${FILESDIR}"/xdm.confd-4 xdm
|
||||
|
||||
# install the @x11-module-rebuild set for Portage
|
||||
insinto /usr/share/portage/config/sets
|
||||
newins "${FILESDIR}"/xorg-sets.conf xorg.conf
|
||||
|
||||
find "${ED}"/var -type d -empty -delete || die
|
||||
}
|
||||
|
||||
pkg_postinst() {
|
||||
# sets up libGL and DRI2 symlinks if needed (ie, on a fresh install)
|
||||
eselect opengl set xorg-x11 --use-old
|
||||
}
|
||||
|
||||
pkg_postrm() {
|
||||
# Get rid of module dir to ensure opengl-update works properly
|
||||
if [[ -z ${REPLACED_BY_VERSION} && -e ${EROOT}/usr/$(get_libdir)/xorg/modules ]]; then
|
||||
rm -rf "${EROOT}"/usr/$(get_libdir)/xorg/modules
|
||||
fi
|
||||
}
|
||||
|
||||
server_based_install() {
|
||||
if ! use xorg; then
|
||||
rm "${ED}"/usr/share/man/man1/Xserver.1x \
|
||||
"${ED}"/usr/$(get_libdir)/xserver/SecurityPolicy \
|
||||
"${ED}"/usr/$(get_libdir)/pkgconfig/xorg-server.pc \
|
||||
"${ED}"/usr/share/man/man1/Xserver.1x
|
||||
fi
|
||||
}
|
||||
Reference in New Issue
Block a user