public inbox for gentoo-commits@lists.gentoo.org
 help / color / mirror / Atom feed
* [gentoo-commits] repo/gentoo:master commit in: x11-base/xorg-server/files/, x11-base/xorg-server/
@ 2018-03-06 20:25 Matt Turner
  0 siblings, 0 replies; 10+ messages in thread
From: Matt Turner @ 2018-03-06 20:25 UTC (permalink / raw
  To: gentoo-commits

commit:     bbf0927bb971152a4d7e18b7fa3f3c40c186a569
Author:     Matt Turner <mattst88 <AT> gentoo <DOT> org>
AuthorDate: Tue Mar  6 20:23:08 2018 +0000
Commit:     Matt Turner <mattst88 <AT> gentoo <DOT> org>
CommitDate: Tue Mar  6 20:25:20 2018 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=bbf0927b

x11-base/xorg-server: Add upstream patch to fix crash

Closes: https://bugs.gentoo.org/649392

 .../xorg-server-1.19.99.901-randr-fix-crash.patch  | 44 ++++++++++++++++++++++
 ...01.ebuild => xorg-server-1.19.99.901-r1.ebuild} |  1 +
 2 files changed, 45 insertions(+)

diff --git a/x11-base/xorg-server/files/xorg-server-1.19.99.901-randr-fix-crash.patch b/x11-base/xorg-server/files/xorg-server-1.19.99.901-randr-fix-crash.patch
new file mode 100644
index 00000000000..bcaaf867c7a
--- /dev/null
+++ b/x11-base/xorg-server/files/xorg-server-1.19.99.901-randr-fix-crash.patch
@@ -0,0 +1,44 @@
+From 2af0a50a4bb9be9f58681d417ceb9a7029caaf3b Mon Sep 17 00:00:00 2001
+From: Adam Jackson <ajax@redhat.com>
+Date: Wed, 28 Feb 2018 11:23:41 -0500
+Subject: [PATCH] randr: Fix a crash on initialization with GPU screens
+MIME-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+
+RRSetChanged (immediately above) was immune to screens with no master,
+but RRTellChanged was not:
+
+    Thread 1 "X" received signal SIGSEGV, Segmentation fault.
+    RRTellChanged (pScreen=<optimized out>) at ../../randr/randr.c:576
+    576             mastersp = rrGetScrPriv(master);
+    (gdb) bt
+    #0  RRTellChanged (pScreen=<optimized out>) at ../../randr/randr.c:576
+    #1  0x000055555566f1e9 in RRNoticePropertyChange (value=0x555555bfbf28, property=70, output=0x555555bfef10) at ../../randr/rrproperty.c:153
+    #2  RRChangeOutputProperty (output=output@entry=0x555555bfef10, property=<optimized out>, type=type@entry=19, format=format@entry=32, mode=<optimized out>, mode@entry=0, len=len@entry=1, value=0x7fffffffe77c, sendevent=1, pending=0)
+        at ../../randr/rrproperty.c:263
+    #3  0x000055555566dba5 in RROutputSetNonDesktop (output=output@entry=0x555555bfef10, nonDesktop=nonDesktop@entry=0) at ../../randr/rroutput.c:333
+    ...
+
+Reported-by: Michel Dänzer <michel@daenzer.net>
+Signed-off-by: Adam Jackson <ajax@redhat.com>
+---
+ randr/randr.c | 2 ++
+ 1 file changed, 2 insertions(+)
+
+diff --git a/randr/randr.c b/randr/randr.c
+index 339ad3ece..feb54bcc8 100644
+--- a/randr/randr.c
++++ b/randr/randr.c
+@@ -602,6 +602,8 @@ RRTellChanged(ScreenPtr pScreen)
+ 
+     if (pScreen->isGPU) {
+         master = pScreen->current_master;
++        if (!master)
++            return;
+         mastersp = rrGetScrPriv(master);
+     }
+     else {
+-- 
+2.16.1
+

diff --git a/x11-base/xorg-server/xorg-server-1.19.99.901.ebuild b/x11-base/xorg-server/xorg-server-1.19.99.901-r1.ebuild
similarity index 99%
rename from x11-base/xorg-server/xorg-server-1.19.99.901.ebuild
rename to x11-base/xorg-server/xorg-server-1.19.99.901-r1.ebuild
index 37491c682e6..19c536df784 100644
--- a/x11-base/xorg-server/xorg-server-1.19.99.901.ebuild
+++ b/x11-base/xorg-server/xorg-server-1.19.99.901-r1.ebuild
@@ -117,6 +117,7 @@ PATCHES=(
 	"${FILESDIR}"/${PN}-1.12-unloadsubmodule.patch
 	# needed for new eselect-opengl, bug #541232
 	"${FILESDIR}"/${PN}-1.18-support-multiple-Files-sections.patch
+	"${FILESDIR}"/${P}-randr-fix-crash.patch
 )
 
 pkg_pretend() {


^ permalink raw reply related	[flat|nested] 10+ messages in thread

* [gentoo-commits] repo/gentoo:master commit in: x11-base/xorg-server/files/, x11-base/xorg-server/
@ 2018-05-05 19:04 Nick Sarnie
  0 siblings, 0 replies; 10+ messages in thread
From: Nick Sarnie @ 2018-05-05 19:04 UTC (permalink / raw
  To: gentoo-commits

commit:     6d0297870ace46f17905f7440cee1614ce2ffb9b
Author:     Nick Sarnie <sarnex <AT> gentoo <DOT> org>
AuthorDate: Sat May  5 18:55:53 2018 +0000
Commit:     Nick Sarnie <sarnex <AT> gentoo <DOT> org>
CommitDate: Sat May  5 19:04:06 2018 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=6d029787

x11-base/xorg-server: Backport patch to fix colors on Intel GPUs

Colors are broken on Intel GPUs with Mesa 18.0, let's backport the fix

Bug: https://bugs.gentoo.org/653688
Package-Manager: Portage-2.3.36, Repoman-2.3.9

 ...t-pick-sRGB-config-for-32-bit-RGBA-visual.patch |  39 ++++
 x11-base/xorg-server/xorg-server-1.19.5-r2.ebuild  | 251 +++++++++++++++++++++
 2 files changed, 290 insertions(+)

diff --git a/x11-base/xorg-server/files/xorg-server-1.19.5-glx-do-not-pick-sRGB-config-for-32-bit-RGBA-visual.patch b/x11-base/xorg-server/files/xorg-server-1.19.5-glx-do-not-pick-sRGB-config-for-32-bit-RGBA-visual.patch
new file mode 100644
index 00000000000..d7e5e511e5d
--- /dev/null
+++ b/x11-base/xorg-server/files/xorg-server-1.19.5-glx-do-not-pick-sRGB-config-for-32-bit-RGBA-visual.patch
@@ -0,0 +1,39 @@
+From c2954b16c8730c7ed8441fd8dba25900f3aed265 Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?Tapani=20P=C3=A4lli?= <tapani.palli@intel.com>
+Date: Tue, 28 Nov 2017 09:23:29 +0200
+Subject: [PATCH] glx: do not pick sRGB config for 32-bit RGBA visual
+MIME-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+
+This fixes blending issues seen with kwin and gnome-shell when
+32bit visual has sRGB capability set.
+
+Reviewed-by: Adam Jackson <ajax@redhat.com>
+Signed-off-by: Tapani Pälli <tapani.palli@intel.com>
+Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=103699
+Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=103646
+Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=103655
+---
+ glx/glxscreens.c | 5 +++++
+ 1 file changed, 5 insertions(+)
+
+diff --git a/glx/glxscreens.c b/glx/glxscreens.c
+index 73444152a..596d972e0 100644
+--- a/glx/glxscreens.c
++++ b/glx/glxscreens.c
+@@ -271,6 +271,11 @@ pickFBConfig(__GLXscreen * pGlxScreen, VisualPtr visual)
+         /* If it's the 32-bit RGBA visual, demand a 32-bit fbconfig. */
+         if (visual->nplanes == 32 && config->rgbBits != 32)
+             continue;
++        /* If it's the 32-bit RGBA visual, do not pick sRGB capable config.
++         * This can cause issues with compositors that are not sRGB aware.
++         */
++        if (visual->nplanes == 32 && config->sRGBCapable == GL_TRUE)
++            continue;
+         /* Can't use the same FBconfig for multiple X visuals.  I think. */
+         if (config->visualID != 0)
+             continue;
+-- 
+2.17.0
+

diff --git a/x11-base/xorg-server/xorg-server-1.19.5-r2.ebuild b/x11-base/xorg-server/xorg-server-1.19.5-r2.ebuild
new file mode 100644
index 00000000000..4b366b21c80
--- /dev/null
+++ b/x11-base/xorg-server/xorg-server-1.19.5-r2.ebuild
@@ -0,0 +1,251 @@
+# Copyright 1999-2018 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=5
+
+XORG_DOC=doc
+inherit xorg-2 multilib versionator flag-o-matic
+EGIT_REPO_URI="https://anongit.freedesktop.org/git/xorg/xserver.git"
+
+DESCRIPTION="X.Org X servers"
+SLOT="0/${PV}"
+KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~mips ~ppc ~ppc64 ~s390 ~sh ~sparc ~x86 ~amd64-fbsd ~x86-fbsd ~amd64-linux ~arm-linux ~x86-linux"
+
+IUSE_SERVERS="dmx kdrive wayland xephyr xnest xorg xvfb"
+IUSE="${IUSE_SERVERS} debug +glamor ipv6 libressl minimal selinux +suid systemd tslib +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.46
+	>=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-10.3.4-r1[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-10.3.4-r1
+	)
+	tslib? ( >=x11-libs/tslib-1.0 )
+	udev? ( >=virtual/udev-150 )
+	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-proto/bigreqsproto-1.1.0
+	>=x11-proto/compositeproto-0.4
+	>=x11-proto/damageproto-1.1
+	>=x11-proto/fixesproto-5.0
+	>=x11-proto/fontsproto-2.1.3
+	>=x11-proto/glproto-1.4.17-r1
+	>=x11-proto/inputproto-2.3
+	>=x11-proto/kbproto-1.0.3
+	>=x11-proto/randrproto-1.5.0
+	>=x11-proto/recordproto-1.13.99.1
+	>=x11-proto/renderproto-0.11
+	>=x11-proto/resourceproto-1.2.0
+	>=x11-proto/scrnsaverproto-1.1
+	>=x11-proto/trapproto-3.4.3
+	>=x11-proto/videoproto-2.2.2
+	>=x11-proto/xcmiscproto-1.2.0
+	>=x11-proto/xextproto-7.2.99.901
+	>=x11-proto/xf86dgaproto-2.0.99.1
+	>=x11-proto/xf86vidmodeproto-2.2.99.1
+	>=x11-proto/xineramaproto-1.1.3
+	>=x11-proto/xproto-7.0.31
+	>=x11-proto/presentproto-1.0
+	>=x11-proto/dri2proto-2.8
+	>=x11-proto/dri3proto-1.0
+	dmx? (
+		>=x11-proto/dmxproto-2.2.99.1
+		doc? (
+			|| (
+				www-client/links
+				www-client/lynx
+				www-client/w3m
+			)
+		)
+	)
+	!minimal? (
+		>=x11-proto/xf86driproto-2.1.0
+	)"
+
+RDEPEND="${CDEPEND}
+	selinux? ( sec-policy/selinux-xserver )
+	!x11-drivers/xf86-video-modesetting
+"
+
+PDEPEND="
+	xorg? ( >=x11-base/xorg-drivers-$(get_version_component_range 1-2) )"
+
+REQUIRED_USE="!minimal? (
+		|| ( ${IUSE_SERVERS} )
+	)
+	xephyr? ( kdrive )"
+
+#UPSTREAMED_PATCHES=(
+#	"${WORKDIR}/patches/"
+#)
+
+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
+	"${FILESDIR}"/${PN}-1.19.4-sysmacros.patch #633530
+	"${FILESDIR}"/${PN}-1.19.5-glx-do-not-pick-sRGB-config-for-32-bit-RGBA-visual.patch #653688
+)
+
+pkg_pretend() {
+	# older gcc is not supported
+	[[ "${MERGE_TYPE}" != "binary" && $(gcc-major-version) -lt 4 ]] && \
+		die "Sorry, but gcc earlier than 4.0 will not work for xorg-server."
+}
+
+pkg_setup() {
+	if use wayland && ! use glamor; then
+		ewarn "glamor is necessary for acceleration under Xwayland."
+		ewarn "Performance may be unacceptable without it."
+	fi
+}
+
+src_configure() {
+	# 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 kdrive kdrive-kbd)
+		$(use_enable kdrive kdrive-mouse)
+		$(use_enable kdrive kdrive-evdev)
+		$(use_enable suid install-setuid)
+		$(use_enable tslib)
+		$(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 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)
+		--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
+	)
+
+	xorg-2_src_configure
+}
+
+src_install() {
+	xorg-2_src_install
+
+	server_based_install
+
+	if ! use minimal && use xorg; then
+		# Install xorg.conf.example into docs
+		dodoc "${AUTOTOOLS_BUILD_DIR}"/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
+}
+
+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
+}


^ permalink raw reply related	[flat|nested] 10+ messages in thread

* [gentoo-commits] repo/gentoo:master commit in: x11-base/xorg-server/files/, x11-base/xorg-server/
@ 2019-02-28  5:47 Matt Turner
  0 siblings, 0 replies; 10+ messages in thread
From: Matt Turner @ 2019-02-28  5:47 UTC (permalink / raw
  To: gentoo-commits

commit:     4b03aab97013ea3cacb778956262dbf16e70fcdf
Author:     Matt Turner <mattst88 <AT> gentoo <DOT> org>
AuthorDate: Thu Feb 28 01:18:22 2019 +0000
Commit:     Matt Turner <mattst88 <AT> gentoo <DOT> org>
CommitDate: Thu Feb 28 05:44:46 2019 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=4b03aab9

x11-base/xorg-server: Version bump to 1.20.4

Closes: https://bugs.gentoo.org/677752
Signed-off-by: Matt Turner <mattst88 <AT> gentoo.org>

 x11-base/xorg-server/Manifest                      |   1 +
 ...ck-the-shm-dir-at-run-time-not-build-time.patch | 174 +++++++++++++++++
 ...1.20.4-shm-Use-memfd_create-when-possible.patch |  89 +++++++++
 ...ndent-shm_tmpfile-to-follow-our-standards.patch |  72 +++++++
 x11-base/xorg-server/xorg-server-1.20.4.ebuild     | 217 +++++++++++++++++++++
 5 files changed, 553 insertions(+)

diff --git a/x11-base/xorg-server/Manifest b/x11-base/xorg-server/Manifest
index 4dc15913393..d0d520e0f00 100644
--- a/x11-base/xorg-server/Manifest
+++ b/x11-base/xorg-server/Manifest
@@ -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

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 00000000000..54ed62935a6
--- /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 00000000000..fce25944537
--- /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 00000000000..1ce9e130794
--- /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.4.ebuild b/x11-base/xorg-server/xorg-server-1.20.4.ebuild
new file mode 100644
index 00000000000..73fb1dab471
--- /dev/null
+++ b/x11-base/xorg-server/xorg-server-1.20.4.ebuild
@@ -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
+}


^ permalink raw reply related	[flat|nested] 10+ messages in thread

* [gentoo-commits] repo/gentoo:master commit in: x11-base/xorg-server/files/, x11-base/xorg-server/
@ 2020-01-26 21:10 Matt Turner
  0 siblings, 0 replies; 10+ messages in thread
From: Matt Turner @ 2020-01-26 21:10 UTC (permalink / raw
  To: gentoo-commits

commit:     5144ab5fc62a428f70645a13012d8d0f697fc040
Author:     Matt Turner <mattst88 <AT> gentoo <DOT> org>
AuthorDate: Sun Jan 26 21:08:01 2020 +0000
Commit:     Matt Turner <mattst88 <AT> gentoo <DOT> org>
CommitDate: Sun Jan 26 21:09:56 2020 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=5144ab5f

x11-base/xorg-server: Drop old versions

Signed-off-by: Matt Turner <mattst88 <AT> gentoo.org>

 x11-base/xorg-server/Manifest                      |   1 -
 ...ck-the-shm-dir-at-run-time-not-build-time.patch | 174 ---------------
 ...1.20.4-shm-Use-memfd_create-when-possible.patch |  89 --------
 ...ndent-shm_tmpfile-to-follow-our-standards.patch |  72 -------
 x11-base/xorg-server/xorg-server-1.20.5.ebuild     | 236 ---------------------
 5 files changed, 572 deletions(-)

diff --git a/x11-base/xorg-server/Manifest b/x11-base/xorg-server/Manifest
index c2b87823b65..3cdea5a75a0 100644
--- a/x11-base/xorg-server/Manifest
+++ b/x11-base/xorg-server/Manifest
@@ -1,3 +1,2 @@
-DIST xorg-server-1.20.5.tar.bz2 6126757 BLAKE2B 2374c6f39acd80174d9cf9c15b6a75f420de3a9b7b51a41385a326fed106fc57fdc5a0a4a08beba36a8d65bff1c8c8d35bb50c73c5285ee206f3293a212369be SHA512 625f0626b122cf95600abe382c3217348999357a0e2d2443092f1b67cff1c98d7ef09303884ceaeac181e0555dc56b0d4d44bda45cc464dac2d9a50c5b32d631
 DIST xorg-server-1.20.6.tar.bz2 6298697 BLAKE2B 30e505cf83bb2b20e17533b89b81521d029412ea6bd804ecf20458af20364172eb7b21561f14c885d5e16597e6d09985b255b6cec2beb30662658d9e316bc953 SHA512 9aa0ba4aee92fe628f2b8c41e4fe0134dc86154bb8787f907884ef2fd970e18e68e72ea8a1beb706d11ecf155b2abc9731f1abadff251ed592f8cca3b1240dd6
 DIST xorg-server-1.20.7.tar.bz2 6303005 BLAKE2B 343ebc1ff45fc1cd459b204d92eabdd0629c94d4338d2d7cb635f73642080d07ef174cfbd83e5b7f253f2918af2d1efbe99d7c75720b88857f69093ee0be1b65 SHA512 c67612e379111c28c68941c0a660abf72be7669591b41ccaa3b3474c4540a03822a28d892831b12ce08bac6e5e7e33504c2d19ef2a0c2298f83bd083459f96f5

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
deleted file mode 100644
index 54ed62935a6..00000000000
--- a/x11-base/xorg-server/files/xorg-server-1.20.4-shm-Pick-the-shm-dir-at-run-time-not-build-time.patch
+++ /dev/null
@@ -1,174 +0,0 @@
-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
deleted file mode 100644
index fce25944537..00000000000
--- a/x11-base/xorg-server/files/xorg-server-1.20.4-shm-Use-memfd_create-when-possible.patch
+++ /dev/null
@@ -1,89 +0,0 @@
-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
deleted file mode 100644
index 1ce9e130794..00000000000
--- a/x11-base/xorg-server/files/xorg-server-1.20.4-shm-reindent-shm_tmpfile-to-follow-our-standards.patch
+++ /dev/null
@@ -1,72 +0,0 @@
-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.5.ebuild b/x11-base/xorg-server/xorg-server-1.20.5.ebuild
deleted file mode 100644
index c3bedac6b16..00000000000
--- a/x11-base/xorg-server/xorg-server-1.20.5.ebuild
+++ /dev/null
@@ -1,236 +0,0 @@
-# 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"
-
-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-linux ~x86-linux"
-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"
-
-CDEPEND="libglvnd? (
-		media-libs/libglvnd
-		!app-eselect/eselect-opengl
-	)
-	!libglvnd? ( >=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
-	)
-	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[X(+),egl,gbm]
-		media-libs/libepoxy[X,egl(+)]
-	)
-	udev? ( virtual/libudev:= )
-	unwind? ( sys-libs/libunwind )
-	wayland? (
-		>=dev-libs/wayland-1.3.0
-		media-libs/libepoxy[egl(+)]
-		>=dev-libs/wayland-protocols-1.1
-	)
-	>=x11-apps/xinit-1.3.3-r1
-	systemd? (
-		sys-apps/dbus
-		sys-apps/systemd
-	)
-	elogind? (
-		sys-apps/dbus
-		sys-auth/elogind
-		sys-auth/pambase[elogind]
-	)
-	"
-
-DEPEND="${CDEPEND}
-	sys-devel/flex
-	>=x11-base/xorg-proto-2018.4
-	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} )
-	)
-	elogind? ( udev )
-	?? ( elogind systemd )
-	minimal? ( !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=(
-	"${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 minimal; 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
-	#	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 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 glamor)
-		$(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)
-		$(usex !elogind $(use_enable systemd systemd-logind) '--enable-systemd-logind')
-		$(use_with systemd systemd-daemon)
-		$(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_prepare() {
-	sed -i -e 's/"gl >= .*"/"gl"/' configure.ac || die
-	default
-	eautoreconf
-}
-
-src_install() {
-	xorg-3_src_install
-
-	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() {
-	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
-	fi
-}
-
-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
-}


^ permalink raw reply related	[flat|nested] 10+ messages in thread

* [gentoo-commits] repo/gentoo:master commit in: x11-base/xorg-server/files/, x11-base/xorg-server/
@ 2020-03-19 21:50 Matt Turner
  0 siblings, 0 replies; 10+ messages in thread
From: Matt Turner @ 2020-03-19 21:50 UTC (permalink / raw
  To: gentoo-commits

commit:     ff6b355183abf835dc5355e01e6ca742eaff3a12
Author:     Matt Turner <mattst88 <AT> gentoo <DOT> org>
AuthorDate: Thu Mar 19 21:13:07 2020 +0000
Commit:     Matt Turner <mattst88 <AT> gentoo <DOT> org>
CommitDate: Thu Mar 19 21:50:43 2020 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=ff6b3551

x11-base/xorg-server: Add patch to build with -fno-common

Closes: https://bugs.gentoo.org/705880
Signed-off-by: Matt Turner <mattst88 <AT> gentoo.org>

 ...erver-1.20.7-Fix-building-with-fno-common.patch | 254 +++++++++++++++++++++
 x11-base/xorg-server/xorg-server-1.20.7.ebuild     |   1 +
 2 files changed, 255 insertions(+)

diff --git a/x11-base/xorg-server/files/xorg-server-1.20.7-Fix-building-with-fno-common.patch b/x11-base/xorg-server/files/xorg-server-1.20.7-Fix-building-with-fno-common.patch
new file mode 100644
index 00000000000..d3011fcb255
--- /dev/null
+++ b/x11-base/xorg-server/files/xorg-server-1.20.7-Fix-building-with-fno-common.patch
@@ -0,0 +1,254 @@
+From 1610ef1d6b5ba99da9d1a639f3b65b2e61514a7d Mon Sep 17 00:00:00 2001
+From: David Seifert <soap@gentoo.org>
+Date: Fri, 24 Jan 2020 12:49:44 +0100
+Subject: [PATCH xserver] Fix building with `-fno-common`
+
+* GCC 10 will switch the default to `-fno-common`.
+  https://gcc.gnu.org/PR85678
+
+Bug: https://bugs.gentoo.org/705880
+Signed-off-by: Matt Turner <mattst88@gmail.com>
+---
+ hw/dmx/config/dmxconfig.c                | 2 +-
+ hw/dmx/config/xdmxconfig.c               | 2 +-
+ hw/dmx/glxProxy/glxext.c                 | 2 --
+ hw/xwayland/xwayland.c                   | 2 +-
+ test/misc.c                              | 2 +-
+ test/xi1/protocol-xchangedevicecontrol.c | 2 +-
+ test/xi2/protocol-common.c               | 2 ++
+ test/xi2/protocol-common.h               | 2 +-
+ test/xi2/protocol-xigetclientpointer.c   | 2 +-
+ test/xi2/protocol-xigetselectedevents.c  | 2 +-
+ test/xi2/protocol-xipassivegrabdevice.c  | 2 +-
+ test/xi2/protocol-xiquerydevice.c        | 2 +-
+ test/xi2/protocol-xiquerypointer.c       | 2 +-
+ test/xi2/protocol-xiqueryversion.c       | 2 +-
+ test/xi2/protocol-xiselectevents.c       | 2 +-
+ test/xi2/protocol-xisetclientpointer.c   | 2 +-
+ test/xi2/protocol-xiwarppointer.c        | 2 +-
+ 17 files changed, 17 insertions(+), 17 deletions(-)
+
+diff --git a/hw/dmx/config/dmxconfig.c b/hw/dmx/config/dmxconfig.c
+index c1a9e1cf3..85bc0dbe4 100644
+--- a/hw/dmx/config/dmxconfig.c
++++ b/hw/dmx/config/dmxconfig.c
+@@ -72,7 +72,7 @@ typedef struct DMXConfigCmdStruct {
+     DMXConfigList *xinputs;
+ } DMXConfigCmd, *DMXConfigCmdPtr;
+ 
+-DMXConfigEntryPtr dmxConfigEntry;
++extern DMXConfigEntryPtr dmxConfigEntry;
+ static DMXConfigCmd dmxConfigCmd;
+ 
+ static int dmxDisplaysFromCommandLine;
+diff --git a/hw/dmx/config/xdmxconfig.c b/hw/dmx/config/xdmxconfig.c
+index 49e4b5459..05d839688 100644
+--- a/hw/dmx/config/xdmxconfig.c
++++ b/hw/dmx/config/xdmxconfig.c
+@@ -65,7 +65,7 @@ extern FILE *yyin;
+ #define DMX_CANVAS_WIDTH  400
+ #define DMX_CANVAS_HEIGHT 500
+ 
+-DMXConfigEntryPtr dmxConfigEntry;
++extern DMXConfigEntryPtr dmxConfigEntry;
+ static DMXConfigVirtualPtr dmxConfigCurrent, dmxConfigNewVirtual;
+ static DMXConfigDisplayPtr dmxConfigCurrentDisplay, dmxConfigNewDisplay;
+ static int dmxConfigGrabbed, dmxConfigGrabbedFine;
+diff --git a/hw/dmx/glxProxy/glxext.c b/hw/dmx/glxProxy/glxext.c
+index 49848bbff..ca9780f99 100644
+--- a/hw/dmx/glxProxy/glxext.c
++++ b/hw/dmx/glxProxy/glxext.c
+@@ -47,8 +47,6 @@
+ #include "extinit.h"
+ #include "glx_extinit.h"
+ 
+-int noGlxExtension;
+-
+ /*
+ ** Forward declarations.
+ */
+diff --git a/hw/xwayland/xwayland.c b/hw/xwayland/xwayland.c
+index feb1058b7..5fefa5923 100644
+--- a/hw/xwayland/xwayland.c
++++ b/hw/xwayland/xwayland.c
+@@ -40,7 +40,7 @@
+ 
+ #ifdef XF86VIDMODE
+ #include <X11/extensions/xf86vmproto.h>
+-_X_EXPORT Bool noXFree86VidModeExtension;
++extern _X_EXPORT Bool noXFree86VidModeExtension;
+ #endif
+ 
+ #ifdef XWL_HAS_GLAMOR
+diff --git a/test/misc.c b/test/misc.c
+index 3c669b677..f1f76cccd 100644
+--- a/test/misc.c
++++ b/test/misc.c
+@@ -33,7 +33,7 @@
+ 
+ #include "tests-common.h"
+ 
+-ScreenInfo screenInfo;
++extern ScreenInfo screenInfo;
+ 
+ static void
+ dix_version_compare(void)
+diff --git a/test/xi1/protocol-xchangedevicecontrol.c b/test/xi1/protocol-xchangedevicecontrol.c
+index 57a15c407..54f1f67cb 100644
+--- a/test/xi1/protocol-xchangedevicecontrol.c
++++ b/test/xi1/protocol-xchangedevicecontrol.c
+@@ -37,7 +37,7 @@
+ 
+ #include "protocol-common.h"
+ 
+-ClientRec client_window;
++extern ClientRec client_window;
+ static ClientRec client_request;
+ 
+ static void
+diff --git a/test/xi2/protocol-common.c b/test/xi2/protocol-common.c
+index 8cd85dd05..05dd3c4e7 100644
+--- a/test/xi2/protocol-common.c
++++ b/test/xi2/protocol-common.c
+@@ -45,6 +45,8 @@ static ClientRec server_client;
+ 
+ void *global_userdata;
+ 
++void (*reply_handler) (ClientPtr client, int len, char *data, void *userdata);
++
+ int enable_GrabButton_wrap = 1;
+ int enable_XISetEventMask_wrap = 1;
+ 
+diff --git a/test/xi2/protocol-common.h b/test/xi2/protocol-common.h
+index 8490529ad..742ce348f 100644
+--- a/test/xi2/protocol-common.h
++++ b/test/xi2/protocol-common.h
+@@ -99,7 +99,7 @@ extern void *global_userdata;
+  * The reply handler called from WriteToClient. Set this handler if you need
+  * to check the reply values.
+  */
+-void (*reply_handler) (ClientPtr client, int len, char *data, void *userdata);
++extern void (*reply_handler) (ClientPtr client, int len, char *data, void *userdata);
+ 
+ /**
+  * The default screen used for the windows. Initialized by init_simple().
+diff --git a/test/xi2/protocol-xigetclientpointer.c b/test/xi2/protocol-xigetclientpointer.c
+index 9c38bd720..244e8438f 100644
+--- a/test/xi2/protocol-xigetclientpointer.c
++++ b/test/xi2/protocol-xigetclientpointer.c
+@@ -46,7 +46,7 @@ static struct {
+     int win;
+ } test_data;
+ 
+-ClientRec client_window;
++extern ClientRec client_window;
+ static ClientRec client_request;
+ 
+ static void
+diff --git a/test/xi2/protocol-xigetselectedevents.c b/test/xi2/protocol-xigetselectedevents.c
+index 9a0fac5d4..b14100224 100644
+--- a/test/xi2/protocol-xigetselectedevents.c
++++ b/test/xi2/protocol-xigetselectedevents.c
+@@ -60,7 +60,7 @@ static struct {
+     int mask_len;
+ } test_data;
+ 
+-ClientRec client_window;
++extern ClientRec client_window;
+ 
+ /* AddResource is called from XISetSEventMask, we don't need this */
+ Bool
+diff --git a/test/xi2/protocol-xipassivegrabdevice.c b/test/xi2/protocol-xipassivegrabdevice.c
+index c703a1ee8..142bcecb7 100644
+--- a/test/xi2/protocol-xipassivegrabdevice.c
++++ b/test/xi2/protocol-xipassivegrabdevice.c
+@@ -41,7 +41,7 @@
+ 
+ #include "protocol-common.h"
+ 
+-ClientRec client_window;
++extern ClientRec client_window;
+ static ClientRec client_request;
+ 
+ #define N_MODS 7
+diff --git a/test/xi2/protocol-xiquerydevice.c b/test/xi2/protocol-xiquerydevice.c
+index a068038fd..6ee8a80fc 100644
+--- a/test/xi2/protocol-xiquerydevice.c
++++ b/test/xi2/protocol-xiquerydevice.c
+@@ -54,7 +54,7 @@ struct test_data {
+     int num_devices_in_reply;
+ };
+ 
+-ClientRec client_window;
++extern ClientRec client_window;
+ 
+ static void reply_XIQueryDevice_data(ClientPtr client, int len, char *data,
+                                      void *closure);
+diff --git a/test/xi2/protocol-xiquerypointer.c b/test/xi2/protocol-xiquerypointer.c
+index ed75d7910..0f5a2b57a 100644
+--- a/test/xi2/protocol-xiquerypointer.c
++++ b/test/xi2/protocol-xiquerypointer.c
+@@ -41,7 +41,7 @@
+ 
+ #include "protocol-common.h"
+ 
+-ClientRec client_window;
++extern ClientRec client_window;
+ static ClientRec client_request;
+ static void reply_XIQueryPointer_data(ClientPtr client, int len,
+                                       char *data, void *closure);
+diff --git a/test/xi2/protocol-xiqueryversion.c b/test/xi2/protocol-xiqueryversion.c
+index 3ce758faa..c7ddbfc10 100644
+--- a/test/xi2/protocol-xiqueryversion.c
++++ b/test/xi2/protocol-xiqueryversion.c
+@@ -58,7 +58,7 @@ struct test_data {
+     int minor_expected;
+ };
+ 
+-ClientRec client_window;
++extern ClientRec client_window;
+ 
+ static void
+ reply_XIQueryVersion(ClientPtr client, int len, char *data, void *closure)
+diff --git a/test/xi2/protocol-xiselectevents.c b/test/xi2/protocol-xiselectevents.c
+index f136c23d0..06050ade7 100644
+--- a/test/xi2/protocol-xiselectevents.c
++++ b/test/xi2/protocol-xiselectevents.c
+@@ -62,7 +62,7 @@
+ 
+ static unsigned char *data[4096 * 20];  /* the request data buffer */
+ 
+-ClientRec client_window;
++extern ClientRec client_window;
+ 
+ int
+ __real_XISetEventMask(DeviceIntPtr dev, WindowPtr win, ClientPtr client,
+diff --git a/test/xi2/protocol-xisetclientpointer.c b/test/xi2/protocol-xisetclientpointer.c
+index 6584bb9cc..ddc9f0000 100644
+--- a/test/xi2/protocol-xisetclientpointer.c
++++ b/test/xi2/protocol-xisetclientpointer.c
+@@ -48,7 +48,7 @@
+ 
+ #include "protocol-common.h"
+ 
+-ClientRec client_window;
++extern ClientRec client_window;
+ static ClientRec client_request;
+ 
+ static void
+diff --git a/test/xi2/protocol-xiwarppointer.c b/test/xi2/protocol-xiwarppointer.c
+index 8484d54e5..e5c2f31ea 100644
+--- a/test/xi2/protocol-xiwarppointer.c
++++ b/test/xi2/protocol-xiwarppointer.c
+@@ -44,7 +44,7 @@
+ static int expected_x = SPRITE_X;
+ static int expected_y = SPRITE_Y;
+ 
+-ClientRec client_window;
++extern ClientRec client_window;
+ 
+ /**
+  * This function overrides the one in the screen rec.
+-- 
+2.24.1
+

diff --git a/x11-base/xorg-server/xorg-server-1.20.7.ebuild b/x11-base/xorg-server/xorg-server-1.20.7.ebuild
index 794466e2d51..33eb1762fd0 100644
--- a/x11-base/xorg-server/xorg-server-1.20.7.ebuild
+++ b/x11-base/xorg-server/xorg-server-1.20.7.ebuild
@@ -118,6 +118,7 @@ REQUIRED_USE="!minimal? (
 	xephyr? ( kdrive )"
 
 UPSTREAMED_PATCHES=(
+	"${FILESDIR}"/${P}-Fix-building-with-fno-common.patch
 )
 
 PATCHES=(


^ permalink raw reply related	[flat|nested] 10+ messages in thread

* [gentoo-commits] repo/gentoo:master commit in: x11-base/xorg-server/files/, x11-base/xorg-server/
@ 2021-12-02  2:37 Sam James
  0 siblings, 0 replies; 10+ messages in thread
From: Sam James @ 2021-12-02  2:37 UTC (permalink / raw
  To: gentoo-commits

commit:     858311492b0112ad227968ba6813cffc1fe85f75
Author:     Sam James <sam <AT> gentoo <DOT> org>
AuthorDate: Thu Dec  2 02:36:34 2021 +0000
Commit:     Sam James <sam <AT> gentoo <DOT> org>
CommitDate: Thu Dec  2 02:36:34 2021 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=85831149

x11-base/xorg-server: apply DPI revert patch to 21.1.1

Upstream changed their mind post-release given the widespread breakage.

Signed-off-by: Sam James <sam <AT> gentoo.org>

 .../files/xorg-server-21.1.1-DPI-revert.patch      | 133 +++++++++++++++++++++
 ...-21.1.1.ebuild => xorg-server-21.1.1-r1.ebuild} |   1 +
 2 files changed, 134 insertions(+)

diff --git a/x11-base/xorg-server/files/xorg-server-21.1.1-DPI-revert.patch b/x11-base/xorg-server/files/xorg-server-21.1.1-DPI-revert.patch
new file mode 100644
index 000000000000..89d8e2653a28
--- /dev/null
+++ b/x11-base/xorg-server/files/xorg-server-21.1.1-DPI-revert.patch
@@ -0,0 +1,133 @@
+https://gitlab.freedesktop.org/xorg/xserver/-/commit/35af1299e73483eaf93d913a960e1d1738bc7de6
+
+From: Povilas Kanapickas <povilas@radix.lt>
+Date: Sat, 13 Nov 2021 17:23:54 +0200
+Subject: [PATCH] Revert "hw/xfree86: Propagate physical dimensions from DRM
+ connector"
+
+Quite a lot of applications currently expect the screen DPI exposed by
+the X server to be 96 even when the real display DPI is different.
+Additionally, currently Xwayland completely ignores any hardware
+information and sets the DPI to 96. Accordingly the new behavior, even
+if it fixes a bug, should not be enabled automatically to all users.
+
+A better solution would be to make the default DPI stay as is and enable
+the correct behavior with a command line option (maybe -dpi auto, or
+similar). For now let's just revert the bug fix.
+
+This reverts commit 05b3c681ea2f478c0cb941c2f8279919cf78de6d.
+
+Signed-off-by: Povilas Kanapickas <povilas@radix.lt>
+--- a/hw/xfree86/common/xf86Helper.c
++++ b/hw/xfree86/common/xf86Helper.c
+@@ -55,7 +55,6 @@
+ #include "xf86Xinput.h"
+ #include "xf86InPriv.h"
+ #include "mivalidate.h"
+-#include "xf86Crtc.h"
+ 
+ /* For xf86GetClocks */
+ #if defined(CSRG_BASED) || defined(__GNU__)
+@@ -852,9 +851,8 @@ xf86SetDpi(ScrnInfoPtr pScrn, int x, int y)
+ {
+     MessageType from = X_DEFAULT;
+     xf86MonPtr DDC = (xf86MonPtr) (pScrn->monitor->DDC);
+-    int probedWidthmm, probedHeightmm;
++    int ddcWidthmm, ddcHeightmm;
+     int widthErr, heightErr;
+-    xf86OutputPtr compat = xf86CompatOutput(pScrn);
+ 
+     /* XXX Maybe there is no need for widthmm/heightmm in ScrnInfoRec */
+     pScrn->widthmm = pScrn->monitor->widthmm;
+@@ -864,15 +862,11 @@ xf86SetDpi(ScrnInfoPtr pScrn, int x, int y)
+         /* DDC gives display size in mm for individual modes,
+          * but cm for monitor
+          */
+-        probedWidthmm = DDC->features.hsize * 10;  /* 10mm in 1cm */
+-        probedHeightmm = DDC->features.vsize * 10; /* 10mm in 1cm */
+-    }
+-    else if (compat && compat->mm_width > 0 && compat->mm_height > 0) {
+-        probedWidthmm = compat->mm_width;
+-        probedHeightmm = compat->mm_height;
++        ddcWidthmm = DDC->features.hsize * 10;  /* 10mm in 1cm */
++        ddcHeightmm = DDC->features.vsize * 10; /* 10mm in 1cm */
+     }
+     else {
+-        probedWidthmm = probedHeightmm = 0;
++        ddcWidthmm = ddcHeightmm = 0;
+     }
+ 
+     if (monitorResolution > 0) {
+@@ -898,15 +892,15 @@ xf86SetDpi(ScrnInfoPtr pScrn, int x, int y)
+                    pScrn->widthmm, pScrn->heightmm);
+ 
+         /* Warn if config and probe disagree about display size */
+-        if (probedWidthmm && probedHeightmm) {
++        if (ddcWidthmm && ddcHeightmm) {
+             if (pScrn->widthmm > 0) {
+-                widthErr = abs(probedWidthmm - pScrn->widthmm);
++                widthErr = abs(ddcWidthmm - pScrn->widthmm);
+             }
+             else {
+                 widthErr = 0;
+             }
+             if (pScrn->heightmm > 0) {
+-                heightErr = abs(probedHeightmm - pScrn->heightmm);
++                heightErr = abs(ddcHeightmm - pScrn->heightmm);
+             }
+             else {
+                 heightErr = 0;
+@@ -915,17 +909,17 @@ xf86SetDpi(ScrnInfoPtr pScrn, int x, int y)
+                 /* Should include config file name for monitor here */
+                 xf86DrvMsg(pScrn->scrnIndex, X_WARNING,
+                            "Probed monitor is %dx%d mm, using Displaysize %dx%d mm\n",
+-                           probedWidthmm, probedHeightmm, pScrn->widthmm,
++                           ddcWidthmm, ddcHeightmm, pScrn->widthmm,
+                            pScrn->heightmm);
+             }
+         }
+     }
+-    else if (probedWidthmm && probedHeightmm) {
++    else if (ddcWidthmm && ddcHeightmm) {
+         from = X_PROBED;
+         xf86DrvMsg(pScrn->scrnIndex, from, "Display dimensions: (%d, %d) mm\n",
+-                   probedWidthmm, probedHeightmm);
+-        pScrn->widthmm = probedWidthmm;
+-        pScrn->heightmm = probedHeightmm;
++                   ddcWidthmm, ddcHeightmm);
++        pScrn->widthmm = ddcWidthmm;
++        pScrn->heightmm = ddcHeightmm;
+         if (pScrn->widthmm > 0) {
+             pScrn->xDpi =
+                 (int) ((double) pScrn->virtualX * MMPERINCH / pScrn->widthmm);
+--- a/hw/xfree86/modes/xf86Crtc.c
++++ b/hw/xfree86/modes/xf86Crtc.c
+@@ -3256,10 +3256,8 @@ xf86OutputSetEDID(xf86OutputPtr output, xf86MonPtr edid_mon)
+     free(output->MonInfo);
+ 
+     output->MonInfo = edid_mon;
+-    if (edid_mon) {
+-        output->mm_width = 0;
+-        output->mm_height = 0;
+-    }
++    output->mm_width = 0;
++    output->mm_height = 0;
+ 
+     if (debug_modes) {
+         xf86DrvMsg(scrn->scrnIndex, X_INFO, "EDID for output %s\n",
+--- a/hw/xfree86/modes/xf86RandR12.c
++++ b/hw/xfree86/modes/xf86RandR12.c
+@@ -806,12 +806,6 @@ xf86RandR12CreateScreenResources(ScreenPtr pScreen)
+                 mmWidth = output->conf_monitor->mon_width;
+                 mmHeight = output->conf_monitor->mon_height;
+             }
+-            else if (output &&
+-                (output->mm_width > 0 &&
+-                 output->mm_height > 0)) {
+-                mmWidth = output->mm_width;
+-                mmHeight = output->mm_height;
+-            }
+             else {
+                 /*
+                  * Otherwise, just set the screen to DEFAULT_DPI
+GitLab

diff --git a/x11-base/xorg-server/xorg-server-21.1.1.ebuild b/x11-base/xorg-server/xorg-server-21.1.1-r1.ebuild
similarity index 99%
rename from x11-base/xorg-server/xorg-server-21.1.1.ebuild
rename to x11-base/xorg-server/xorg-server-21.1.1-r1.ebuild
index feb237caedaf..0990ccd85bcd 100644
--- a/x11-base/xorg-server/xorg-server-21.1.1.ebuild
+++ b/x11-base/xorg-server/xorg-server-21.1.1-r1.ebuild
@@ -92,6 +92,7 @@ REQUIRED_USE="!minimal? (
 	?? ( elogind systemd )"
 
 UPSTREAMED_PATCHES=(
+	"${FILESDIR}"/${P}-DPI-revert.patch
 )
 
 PATCHES=(


^ permalink raw reply related	[flat|nested] 10+ messages in thread

* [gentoo-commits] repo/gentoo:master commit in: x11-base/xorg-server/files/, x11-base/xorg-server/
@ 2023-07-09  8:13 Sam James
  0 siblings, 0 replies; 10+ messages in thread
From: Sam James @ 2023-07-09  8:13 UTC (permalink / raw
  To: gentoo-commits

commit:     10fc6a6a7edcf1e7ff3d4db4fcbcbe18cec8f734
Author:     Sam James <sam <AT> gentoo <DOT> org>
AuthorDate: Sun Jul  9 08:08:19 2023 +0000
Commit:     Sam James <sam <AT> gentoo <DOT> org>
CommitDate: Sun Jul  9 08:08:43 2023 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=10fc6a6a

x11-base/xorg-server: backport deadlock fix

From the 21.1 backport branch.

Closes: https://bugs.gentoo.org/909643
Signed-off-by: Sam James <sam <AT> gentoo.org>

 .../files/xorg-server-21.1.8-deadlock.patch        |  97 +++++++++++
 x11-base/xorg-server/xorg-server-21.1.8-r1.ebuild  | 194 +++++++++++++++++++++
 2 files changed, 291 insertions(+)

diff --git a/x11-base/xorg-server/files/xorg-server-21.1.8-deadlock.patch b/x11-base/xorg-server/files/xorg-server-21.1.8-deadlock.patch
new file mode 100644
index 000000000000..8da824119edf
--- /dev/null
+++ b/x11-base/xorg-server/files/xorg-server-21.1.8-deadlock.patch
@@ -0,0 +1,97 @@
+https://bugs.gentoo.org/909643
+https://gitlab.freedesktop.org/mesa/mesa/-/issues/116
+https://gitlab.freedesktop.org/mesa/mesa/-/issues/6685
+https://gitlab.freedesktop.org/xorg/xserver/-/commit/b98fc07d3442a289c6bef82df50dd0a2d01de71a
+
+From b98fc07d3442a289c6bef82df50dd0a2d01de71a Mon Sep 17 00:00:00 2001
+From: Adam Jackson <ajax@redhat.com>
+Date: Thu, 2 Feb 2023 12:26:27 -0500
+Subject: [PATCH] present: Send a PresentConfigureNotify event for destroyed
+ windows
+MIME-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+
+This enables fixing a deadlock case on the client side, where the client
+ends up blocked waiting for a Present event that will never come because
+the window was destroyed. The new PresentWindowDestroyed flag allows the
+client to avoid blocking indefinitely.
+
+Signed-off-by: Adam Jackson <ajax@redhat.com>
+See-also: https://gitlab.freedesktop.org/mesa/mesa/-/issues/116
+See-also: https://gitlab.freedesktop.org/mesa/mesa/-/issues/6685
+Reviewed-by: Michel Dänzer <mdaenzer@redhat.com>
+(cherry picked from commit 462b06033e66a32308d940eb5fc47f5e4c914dc0)
+--- a/present/present_event.c
++++ b/present/present_event.c
+@@ -102,7 +102,8 @@ present_event_swap(xGenericEvent *from, xGenericEvent *to)
+ }
+ 
+ void
+-present_send_config_notify(WindowPtr window, int x, int y, int w, int h, int bw, WindowPtr sibling)
++present_send_config_notify(WindowPtr window, int x, int y, int w, int h,
++                           int bw, WindowPtr sibling, CARD32 flags)
+ {
+     present_window_priv_ptr window_priv = present_window_priv(window);
+ 
+@@ -122,7 +123,7 @@ present_send_config_notify(WindowPtr window, int x, int y, int w, int h, int bw,
+             .off_y = 0,
+             .pixmap_width = w,
+             .pixmap_height = h,
+-            .pixmap_flags = 0
++            .pixmap_flags = flags
+         };
+         present_event_ptr event;
+ 
+--- a/present/present_priv.h
++++ b/present/present_priv.h
+@@ -43,6 +43,11 @@
+ #define DebugPresent(x)
+ #endif
+ 
++/* XXX this belongs in presentproto */
++#ifndef PresentWindowDestroyed
++#define PresentWindowDestroyed (1 << 0)
++#endif
++
+ extern int present_request;
+ 
+ extern DevPrivateKeyRec present_screen_private_key;
+@@ -307,7 +312,7 @@ void
+ present_free_events(WindowPtr window);
+ 
+ void
+-present_send_config_notify(WindowPtr window, int x, int y, int w, int h, int bw, WindowPtr sibling);
++present_send_config_notify(WindowPtr window, int x, int y, int w, int h, int bw, WindowPtr sibling, CARD32 flags);
+ 
+ void
+ present_send_complete_notify(WindowPtr window, CARD8 kind, CARD8 mode, CARD32 serial, uint64_t ust, uint64_t msc);
+--- a/present/present_screen.c
++++ b/present/present_screen.c
+@@ -93,6 +93,15 @@ present_destroy_window(WindowPtr window)
+     present_screen_priv_ptr screen_priv = present_screen_priv(screen);
+     present_window_priv_ptr window_priv = present_window_priv(window);
+ 
++    present_send_config_notify(window,
++                               window->drawable.x,
++                               window->drawable.y,
++                               window->drawable.width,
++                               window->drawable.height,
++                               window->borderWidth,
++                               window->nextSib,
++                               PresentWindowDestroyed);
++
+     if (window_priv) {
+         present_clear_window_notifies(window);
+         present_free_events(window);
+@@ -123,7 +132,7 @@ present_config_notify(WindowPtr window,
+     ScreenPtr screen = window->drawable.pScreen;
+     present_screen_priv_ptr screen_priv = present_screen_priv(screen);
+ 
+-    present_send_config_notify(window, x, y, w, h, bw, sibling);
++    present_send_config_notify(window, x, y, w, h, bw, sibling, 0);
+ 
+     unwrap(screen_priv, screen, ConfigNotify);
+     if (screen->ConfigNotify)
+-- 
+GitLab

diff --git a/x11-base/xorg-server/xorg-server-21.1.8-r1.ebuild b/x11-base/xorg-server/xorg-server-21.1.8-r1.ebuild
new file mode 100644
index 000000000000..654737cbf8be
--- /dev/null
+++ b/x11-base/xorg-server/xorg-server-21.1.8-r1.ebuild
@@ -0,0 +1,194 @@
+# Copyright 1999-2023 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+XORG_TARBALL_SUFFIX="xz"
+XORG_EAUTORECONF="no"
+inherit flag-o-matic xorg-3 meson
+EGIT_REPO_URI="https://gitlab.freedesktop.org/xorg/xserver.git"
+
+DESCRIPTION="X.Org X servers"
+SLOT="0/${PV}"
+if [[ ${PV} != 9999* ]]; then
+	KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~amd64-linux ~x86-linux"
+fi
+
+IUSE_SERVERS="xephyr xnest xorg xvfb"
+IUSE="${IUSE_SERVERS} debug +elogind minimal selinux suid systemd test +udev unwind xcsecurity"
+RESTRICT="!test? ( test )"
+
+CDEPEND="
+	media-libs/libglvnd[X]
+	dev-libs/libbsd
+	dev-libs/openssl: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-misc/xbitmaps-1.0.1
+	>=x11-misc/xkeyboard-config-2.4.1-r3
+	xorg? (
+		>=x11-libs/libxcvt-0.1.0
+	)
+	xnest? (
+		>=x11-libs/libXext-1.0.99.4
+		>=x11-libs/libX11-1.1.5
+	)
+	xephyr? (
+		x11-libs/libxcb
+		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? (
+		>=media-libs/mesa-18[X(+),egl(+),gbm(+)]
+		>=media-libs/libepoxy-1.5.4[X,egl(+)]
+	)
+	udev? ( virtual/libudev:= )
+	unwind? ( sys-libs/libunwind:= )
+	selinux? (
+		sys-process/audit
+		sys-libs/libselinux:=
+	)
+	systemd? (
+		sys-apps/dbus
+		sys-apps/systemd
+	)
+	elogind? (
+		sys-apps/dbus
+		sys-auth/elogind[pam]
+		sys-auth/pambase[elogind]
+	)
+	!!x11-drivers/nvidia-drivers[-libglvnd(+)]
+"
+DEPEND="${CDEPEND}
+	>=x11-base/xorg-proto-2021.4.99.2
+	>=x11-libs/xtrans-1.3.5
+	media-fonts/font-util
+	test? ( >=x11-libs/libxcvt-0.1.0 )
+"
+RDEPEND="${CDEPEND}
+	!systemd? ( gui-libs/display-manager-init )
+	selinux? ( sec-policy/selinux-xserver )
+	xorg? ( >=x11-apps/xinit-1.3.3-r1 )
+"
+BDEPEND="
+	sys-devel/flex
+"
+PDEPEND="
+	xorg? ( >=x11-base/xorg-drivers-$(ver_cut 1-2) )"
+
+REQUIRED_USE="!minimal? (
+		|| ( ${IUSE_SERVERS} )
+	)
+	elogind? ( udev )
+	?? ( elogind systemd )"
+
+UPSTREAMED_PATCHES=(
+	"${FILESDIR}"/${P}-deadlock.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
+)
+
+src_configure() {
+	# bug #835653
+	use x86 && replace-flags -Os -O2
+
+	# 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
+	local emesonargs=(
+		--localstatedir "${EPREFIX}/var"
+		--sysconfdir "${EPREFIX}/etc/X11"
+		--buildtype $(usex debug debug plain)
+		-Db_ndebug=$(usex debug false true)
+		$(meson_use !minimal dri1)
+		$(meson_use !minimal dri2)
+		$(meson_use !minimal dri3)
+		$(meson_use !minimal glamor)
+		$(meson_use !minimal glx)
+		$(meson_use udev)
+		$(meson_use udev udev_kms)
+		$(meson_use unwind libunwind)
+		$(meson_use xcsecurity)
+		$(meson_use selinux xselinux)
+		$(meson_use xephyr)
+		$(meson_use xnest)
+		$(meson_use xorg)
+		$(meson_use xvfb)
+		-Ddocs=false
+		-Ddrm=true
+		-Ddtrace=false
+		-Dipv6=true
+		-Dhal=false
+		-Dlinux_acpi=false
+		-Dlinux_apm=false
+		-Dsecure-rpc=false
+		-Dsha1=libcrypto
+		-Dxkb_output_dir="${EPREFIX}/var/lib/xkb"
+	)
+
+	if [[ ${PV} == 9999 ]] ; then
+		# Gone in 21.1.x, but not in master.
+		emesonargs+=( -Dxwayland=false )
+	fi
+
+	if use systemd || use elogind; then
+		emesonargs+=(
+			-Dsystemd_logind=true
+			$(meson_use suid suid_wrapper)
+		)
+	else
+		emesonargs+=(
+			-Dsystemd_logind=false
+			-Dsuid_wrapper=false
+		)
+	fi
+
+	meson_src_configure
+}
+
+src_install() {
+	meson_src_install
+
+	# The meson build system does not support install-setuid
+	if ! use systemd && ! use elogind; then
+		if use suid; then
+			chmod u+s "${ED}"/usr/bin/Xorg
+		fi
+	fi
+
+	if ! use xorg; then
+		rm -f "${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 || die
+	fi
+
+	# install the @x11-module-rebuild set for Portage
+	insinto /usr/share/portage/config/sets
+	newins "${FILESDIR}"/xorg-sets.conf xorg.conf
+}
+
+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
+}


^ permalink raw reply related	[flat|nested] 10+ messages in thread

* [gentoo-commits] repo/gentoo:master commit in: x11-base/xorg-server/files/, x11-base/xorg-server/
@ 2023-10-25 15:41 Matt Turner
  0 siblings, 0 replies; 10+ messages in thread
From: Matt Turner @ 2023-10-25 15:41 UTC (permalink / raw
  To: gentoo-commits

commit:     9b4db39b0d72f93d5c46898cb262d8c5349542cc
Author:     Matt Turner <mattst88 <AT> gentoo <DOT> org>
AuthorDate: Wed Oct 25 15:29:54 2023 +0000
Commit:     Matt Turner <mattst88 <AT> gentoo <DOT> org>
CommitDate: Wed Oct 25 15:41:30 2023 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=9b4db39b

x11-base/xorg-server: Version bump to 21.1.9

Bug: https://bugs.gentoo.org/916254
Closes: https://bugs.gentoo.org/884221
Closes: https://bugs.gentoo.org/909092
Signed-off-by: Matt Turner <mattst88 <AT> gentoo.org>

 x11-base/xorg-server/Manifest                      |   1 +
 ...1.9-xephyr-Don-t-check-for-SeatId-anymore.patch |  66 +++++++
 x11-base/xorg-server/xorg-server-21.1.9.ebuild     | 194 +++++++++++++++++++++
 3 files changed, 261 insertions(+)

diff --git a/x11-base/xorg-server/Manifest b/x11-base/xorg-server/Manifest
index 4aa30fb75c5f..26f511e9d9ed 100644
--- a/x11-base/xorg-server/Manifest
+++ b/x11-base/xorg-server/Manifest
@@ -1 +1,2 @@
 DIST xorg-server-21.1.8.tar.xz 4980208 BLAKE2B a223efe6d14b55bd133b7f8db75b7720ea0ae58f1eced0f6b20caf6e7045e7649a0923a1c6db5d649265375e6768fa9811477d2fa0da52d7a1e65cf4511535d2 SHA512 6104b3620ed2e1e27d9a8e963388bbe8785a764585b1bc03dbf5d719a92894773dda580d377ca18ceeab353e65a5d23cc947bab84a4012f9dd1eca31cac36937
+DIST xorg-server-21.1.9.tar.xz 4935860 BLAKE2B 8e0a2e0f5fc4d06a08c1424fe618da9822e951f5b744b4cac1b1e14305ab598b162e4f08fb53ba5e60d0001257216755a576b470c961c26a909d66e9a46d1c77 SHA512 9044e1b9222616fb63aea444b75f4ca6582edb7d899018f8ea30359e57edf04b1555e69397ebc4d288f7e36d6b82a54dde3895f11d414573d229e908ac17bfe8

diff --git a/x11-base/xorg-server/files/xorg-server-21.1.9-xephyr-Don-t-check-for-SeatId-anymore.patch b/x11-base/xorg-server/files/xorg-server-21.1.9-xephyr-Don-t-check-for-SeatId-anymore.patch
new file mode 100644
index 000000000000..64581c9d0a18
--- /dev/null
+++ b/x11-base/xorg-server/files/xorg-server-21.1.9-xephyr-Don-t-check-for-SeatId-anymore.patch
@@ -0,0 +1,66 @@
+https://bugs.gentoo.org/884221
+https://gitlab.freedesktop.org/xorg/xserver/-/merge_requests/1192
+
+From 4c03b67d334b05b814239420776f2fdd4c4a98ac Mon Sep 17 00:00:00 2001
+From: nerdopolis <bluescreen_avenger@verizon.net>
+Date: Tue, 11 Jan 2022 18:41:42 -0500
+Subject: [PATCH xserver] xephyr: Don't check for SeatId anymore
+
+After a change for the xserver to automatically determine the seat
+based on the XDG_SEAT variable, xephyr stopped working. This was
+because of an old feature where xephyr used to handle evdev
+directly. This was dropped some time ago, and now this check is
+not needed
+---
+ hw/kdrive/ephyr/ephyrinit.c | 34 ++++++++++++++++------------------
+ 1 file changed, 16 insertions(+), 18 deletions(-)
+
+diff --git a/hw/kdrive/ephyr/ephyrinit.c b/hw/kdrive/ephyr/ephyrinit.c
+index 020461db2..09cd28cb3 100644
+--- a/hw/kdrive/ephyr/ephyrinit.c
++++ b/hw/kdrive/ephyr/ephyrinit.c
+@@ -70,25 +70,23 @@ InitInput(int argc, char **argv)
+     KdKeyboardInfo *ki;
+     KdPointerInfo *pi;
+ 
+-    if (!SeatId) {
+-        KdAddKeyboardDriver(&EphyrKeyboardDriver);
+-        KdAddPointerDriver(&EphyrMouseDriver);
+-
+-        if (!kdHasKbd) {
+-            ki = KdNewKeyboard();
+-            if (!ki)
+-                FatalError("Couldn't create Xephyr keyboard\n");
+-            ki->driver = &EphyrKeyboardDriver;
+-            KdAddKeyboard(ki);
+-        }
++    KdAddKeyboardDriver(&EphyrKeyboardDriver);
++    KdAddPointerDriver(&EphyrMouseDriver);
++
++    if (!kdHasKbd) {
++        ki = KdNewKeyboard();
++        if (!ki)
++            FatalError("Couldn't create Xephyr keyboard\n");
++        ki->driver = &EphyrKeyboardDriver;
++        KdAddKeyboard(ki);
++    }
+ 
+-        if (!kdHasPointer) {
+-            pi = KdNewPointer();
+-            if (!pi)
+-                FatalError("Couldn't create Xephyr pointer\n");
+-            pi->driver = &EphyrMouseDriver;
+-            KdAddPointer(pi);
+-        }
++    if (!kdHasPointer) {
++        pi = KdNewPointer();
++        if (!pi)
++            FatalError("Couldn't create Xephyr pointer\n");
++        pi->driver = &EphyrMouseDriver;
++        KdAddPointer(pi);
+     }
+ 
+     KdInitInput();
+-- 
+2.41.0
+

diff --git a/x11-base/xorg-server/xorg-server-21.1.9.ebuild b/x11-base/xorg-server/xorg-server-21.1.9.ebuild
new file mode 100644
index 000000000000..f4b46fb4d12e
--- /dev/null
+++ b/x11-base/xorg-server/xorg-server-21.1.9.ebuild
@@ -0,0 +1,194 @@
+# Copyright 1999-2023 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+XORG_TARBALL_SUFFIX="xz"
+XORG_EAUTORECONF="no"
+inherit flag-o-matic xorg-3 meson
+EGIT_REPO_URI="https://gitlab.freedesktop.org/xorg/xserver.git"
+
+DESCRIPTION="X.Org X servers"
+SLOT="0/${PV}"
+if [[ ${PV} != 9999* ]]; then
+	KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~amd64-linux ~x86-linux"
+fi
+
+IUSE_SERVERS="xephyr xnest xorg xvfb"
+IUSE="${IUSE_SERVERS} debug +elogind minimal selinux suid systemd test +udev unwind xcsecurity"
+RESTRICT="!test? ( test )"
+
+CDEPEND="
+	media-libs/libglvnd[X]
+	dev-libs/libbsd
+	dev-libs/openssl:0=
+	>=x11-apps/iceauth-1.0.2
+	>=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-misc/xbitmaps-1.0.1
+	>=x11-misc/xkeyboard-config-2.4.1-r3
+	xorg? (
+		>=x11-libs/libxcvt-0.1.0
+	)
+	xnest? (
+		>=x11-libs/libXext-1.0.99.4
+		>=x11-libs/libX11-1.1.5
+	)
+	xephyr? (
+		x11-libs/libxcb
+		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? (
+		>=media-libs/mesa-18[X(+),egl(+),gbm(+)]
+		>=media-libs/libepoxy-1.5.4[X,egl(+)]
+	)
+	udev? ( virtual/libudev:= )
+	unwind? ( sys-libs/libunwind:= )
+	selinux? (
+		sys-process/audit
+		sys-libs/libselinux:=
+	)
+	systemd? (
+		sys-apps/dbus
+		sys-apps/systemd
+	)
+	elogind? (
+		sys-apps/dbus
+		sys-auth/elogind[pam]
+		sys-auth/pambase[elogind]
+	)
+	!!x11-drivers/nvidia-drivers[-libglvnd(+)]
+"
+DEPEND="${CDEPEND}
+	>=x11-base/xorg-proto-2021.4.99.2
+	>=x11-libs/xtrans-1.3.5
+	media-fonts/font-util
+	test? ( >=x11-libs/libxcvt-0.1.0 )
+"
+RDEPEND="${CDEPEND}
+	!systemd? ( gui-libs/display-manager-init )
+	selinux? ( sec-policy/selinux-xserver )
+	xorg? ( >=x11-apps/xinit-1.3.3-r1 )
+"
+BDEPEND="
+	sys-devel/flex
+"
+PDEPEND="
+	xorg? ( >=x11-base/xorg-drivers-$(ver_cut 1-2) )"
+
+REQUIRED_USE="!minimal? (
+		|| ( ${IUSE_SERVERS} )
+	)
+	elogind? ( udev )
+	?? ( elogind systemd )"
+
+UPSTREAMED_PATCHES=(
+)
+
+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
+
+	"${FILESDIR}"/${P}-xephyr-Don-t-check-for-SeatId-anymore.patch
+)
+
+src_configure() {
+	# bug #835653
+	use x86 && replace-flags -Os -O2
+
+	# 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
+	local emesonargs=(
+		--localstatedir "${EPREFIX}/var"
+		--sysconfdir "${EPREFIX}/etc/X11"
+		--buildtype $(usex debug debug plain)
+		-Db_ndebug=$(usex debug false true)
+		$(meson_use !minimal dri1)
+		$(meson_use !minimal dri2)
+		$(meson_use !minimal dri3)
+		$(meson_use !minimal glamor)
+		$(meson_use !minimal glx)
+		$(meson_use udev)
+		$(meson_use udev udev_kms)
+		$(meson_use unwind libunwind)
+		$(meson_use xcsecurity)
+		$(meson_use selinux xselinux)
+		$(meson_use xephyr)
+		$(meson_use xnest)
+		$(meson_use xorg)
+		$(meson_use xvfb)
+		-Ddocs=false
+		-Ddrm=true
+		-Ddtrace=false
+		-Dipv6=true
+		-Dhal=false
+		-Dlinux_acpi=false
+		-Dlinux_apm=false
+		-Dsecure-rpc=false
+		-Dsha1=libcrypto
+		-Dxkb_output_dir="${EPREFIX}/var/lib/xkb"
+	)
+
+	if [[ ${PV} == 9999 ]] ; then
+		# Gone in 21.1.x, but not in master.
+		emesonargs+=( -Dxwayland=false )
+	fi
+
+	if use systemd || use elogind; then
+		emesonargs+=(
+			-Dsystemd_logind=true
+			$(meson_use suid suid_wrapper)
+		)
+	else
+		emesonargs+=(
+			-Dsystemd_logind=false
+			-Dsuid_wrapper=false
+		)
+	fi
+
+	meson_src_configure
+}
+
+src_install() {
+	meson_src_install
+
+	# The meson build system does not support install-setuid
+	if ! use systemd && ! use elogind; then
+		if use suid; then
+			chmod u+s "${ED}"/usr/bin/Xorg
+		fi
+	fi
+
+	if ! use xorg; then
+		rm -f "${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 || die
+	fi
+
+	# install the @x11-module-rebuild set for Portage
+	insinto /usr/share/portage/config/sets
+	newins "${FILESDIR}"/xorg-sets.conf xorg.conf
+}
+
+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
+}


^ permalink raw reply related	[flat|nested] 10+ messages in thread

* [gentoo-commits] repo/gentoo:master commit in: x11-base/xorg-server/files/, x11-base/xorg-server/
@ 2023-11-25 17:31 Matt Turner
  0 siblings, 0 replies; 10+ messages in thread
From: Matt Turner @ 2023-11-25 17:31 UTC (permalink / raw
  To: gentoo-commits

commit:     637e44f058d0f6d13a6339fe09ecaa5fddef4ba2
Author:     Matt Turner <mattst88 <AT> gentoo <DOT> org>
AuthorDate: Sat Nov 25 17:14:05 2023 +0000
Commit:     Matt Turner <mattst88 <AT> gentoo <DOT> org>
CommitDate: Sat Nov 25 17:31:02 2023 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=637e44f0

x11-base/xorg-server: Drop old versions

Signed-off-by: Matt Turner <mattst88 <AT> gentoo.org>

 x11-base/xorg-server/Manifest                      |   1 -
 .../files/xorg-server-21.1.8-deadlock.patch        |  97 ----------
 .../xorg-server/files/xorg-server-21.1.8-wfb.patch |  43 -----
 x11-base/xorg-server/xorg-server-21.1.8-r2.ebuild  | 195 ---------------------
 4 files changed, 336 deletions(-)

diff --git a/x11-base/xorg-server/Manifest b/x11-base/xorg-server/Manifest
index 26f511e9d9ed..16f4b3d8b53f 100644
--- a/x11-base/xorg-server/Manifest
+++ b/x11-base/xorg-server/Manifest
@@ -1,2 +1 @@
-DIST xorg-server-21.1.8.tar.xz 4980208 BLAKE2B a223efe6d14b55bd133b7f8db75b7720ea0ae58f1eced0f6b20caf6e7045e7649a0923a1c6db5d649265375e6768fa9811477d2fa0da52d7a1e65cf4511535d2 SHA512 6104b3620ed2e1e27d9a8e963388bbe8785a764585b1bc03dbf5d719a92894773dda580d377ca18ceeab353e65a5d23cc947bab84a4012f9dd1eca31cac36937
 DIST xorg-server-21.1.9.tar.xz 4935860 BLAKE2B 8e0a2e0f5fc4d06a08c1424fe618da9822e951f5b744b4cac1b1e14305ab598b162e4f08fb53ba5e60d0001257216755a576b470c961c26a909d66e9a46d1c77 SHA512 9044e1b9222616fb63aea444b75f4ca6582edb7d899018f8ea30359e57edf04b1555e69397ebc4d288f7e36d6b82a54dde3895f11d414573d229e908ac17bfe8

diff --git a/x11-base/xorg-server/files/xorg-server-21.1.8-deadlock.patch b/x11-base/xorg-server/files/xorg-server-21.1.8-deadlock.patch
deleted file mode 100644
index 8da824119edf..000000000000
--- a/x11-base/xorg-server/files/xorg-server-21.1.8-deadlock.patch
+++ /dev/null
@@ -1,97 +0,0 @@
-https://bugs.gentoo.org/909643
-https://gitlab.freedesktop.org/mesa/mesa/-/issues/116
-https://gitlab.freedesktop.org/mesa/mesa/-/issues/6685
-https://gitlab.freedesktop.org/xorg/xserver/-/commit/b98fc07d3442a289c6bef82df50dd0a2d01de71a
-
-From b98fc07d3442a289c6bef82df50dd0a2d01de71a Mon Sep 17 00:00:00 2001
-From: Adam Jackson <ajax@redhat.com>
-Date: Thu, 2 Feb 2023 12:26:27 -0500
-Subject: [PATCH] present: Send a PresentConfigureNotify event for destroyed
- windows
-MIME-Version: 1.0
-Content-Type: text/plain; charset=UTF-8
-Content-Transfer-Encoding: 8bit
-
-This enables fixing a deadlock case on the client side, where the client
-ends up blocked waiting for a Present event that will never come because
-the window was destroyed. The new PresentWindowDestroyed flag allows the
-client to avoid blocking indefinitely.
-
-Signed-off-by: Adam Jackson <ajax@redhat.com>
-See-also: https://gitlab.freedesktop.org/mesa/mesa/-/issues/116
-See-also: https://gitlab.freedesktop.org/mesa/mesa/-/issues/6685
-Reviewed-by: Michel Dänzer <mdaenzer@redhat.com>
-(cherry picked from commit 462b06033e66a32308d940eb5fc47f5e4c914dc0)
---- a/present/present_event.c
-+++ b/present/present_event.c
-@@ -102,7 +102,8 @@ present_event_swap(xGenericEvent *from, xGenericEvent *to)
- }
- 
- void
--present_send_config_notify(WindowPtr window, int x, int y, int w, int h, int bw, WindowPtr sibling)
-+present_send_config_notify(WindowPtr window, int x, int y, int w, int h,
-+                           int bw, WindowPtr sibling, CARD32 flags)
- {
-     present_window_priv_ptr window_priv = present_window_priv(window);
- 
-@@ -122,7 +123,7 @@ present_send_config_notify(WindowPtr window, int x, int y, int w, int h, int bw,
-             .off_y = 0,
-             .pixmap_width = w,
-             .pixmap_height = h,
--            .pixmap_flags = 0
-+            .pixmap_flags = flags
-         };
-         present_event_ptr event;
- 
---- a/present/present_priv.h
-+++ b/present/present_priv.h
-@@ -43,6 +43,11 @@
- #define DebugPresent(x)
- #endif
- 
-+/* XXX this belongs in presentproto */
-+#ifndef PresentWindowDestroyed
-+#define PresentWindowDestroyed (1 << 0)
-+#endif
-+
- extern int present_request;
- 
- extern DevPrivateKeyRec present_screen_private_key;
-@@ -307,7 +312,7 @@ void
- present_free_events(WindowPtr window);
- 
- void
--present_send_config_notify(WindowPtr window, int x, int y, int w, int h, int bw, WindowPtr sibling);
-+present_send_config_notify(WindowPtr window, int x, int y, int w, int h, int bw, WindowPtr sibling, CARD32 flags);
- 
- void
- present_send_complete_notify(WindowPtr window, CARD8 kind, CARD8 mode, CARD32 serial, uint64_t ust, uint64_t msc);
---- a/present/present_screen.c
-+++ b/present/present_screen.c
-@@ -93,6 +93,15 @@ present_destroy_window(WindowPtr window)
-     present_screen_priv_ptr screen_priv = present_screen_priv(screen);
-     present_window_priv_ptr window_priv = present_window_priv(window);
- 
-+    present_send_config_notify(window,
-+                               window->drawable.x,
-+                               window->drawable.y,
-+                               window->drawable.width,
-+                               window->drawable.height,
-+                               window->borderWidth,
-+                               window->nextSib,
-+                               PresentWindowDestroyed);
-+
-     if (window_priv) {
-         present_clear_window_notifies(window);
-         present_free_events(window);
-@@ -123,7 +132,7 @@ present_config_notify(WindowPtr window,
-     ScreenPtr screen = window->drawable.pScreen;
-     present_screen_priv_ptr screen_priv = present_screen_priv(screen);
- 
--    present_send_config_notify(window, x, y, w, h, bw, sibling);
-+    present_send_config_notify(window, x, y, w, h, bw, sibling, 0);
- 
-     unwrap(screen_priv, screen, ConfigNotify);
-     if (screen->ConfigNotify)
--- 
-GitLab

diff --git a/x11-base/xorg-server/files/xorg-server-21.1.8-wfb.patch b/x11-base/xorg-server/files/xorg-server-21.1.8-wfb.patch
deleted file mode 100644
index 48cdbd017088..000000000000
--- a/x11-base/xorg-server/files/xorg-server-21.1.8-wfb.patch
+++ /dev/null
@@ -1,43 +0,0 @@
-https://bugs.gentoo.org/885763
-https://gitlab.freedesktop.org/xorg/xserver/-/merge_requests/1114
-https://gitlab.freedesktop.org/xorg/xserver/-/commit/34a430a16ec2cb9851b1f2bc7fc2117e19b9fcc7
-
-From 34a430a16ec2cb9851b1f2bc7fc2117e19b9fcc7 Mon Sep 17 00:00:00 2001
-From: Florian Weimer <fweimer@redhat.com>
-Date: Thu, 13 Apr 2023 15:45:58 +0200
-Subject: [PATCH] fb: Declare wfbFinishScreenInit, wfbScreenInit for
- !FB_ACCESS_WRAPPER
-
-xf86-video-nouveau calls wfbScreenInit without defining
-FB_ACCESS_WRAPPER (which has other unintended side effects).
-Presently, this compiles and links because compilers still support
-implicit function declarations, but this is going to change fairly
-soon.  This seems to be the most straightforward change to keep
-the driver building.
----
- fb/fb.h | 2 --
- 1 file changed, 2 deletions(-)
-
-diff --git a/fb/fb.h b/fb/fb.h
-index 08143a0d49..309f15294c 100644
---- a/fb/fb.h
-+++ b/fb/fb.h
-@@ -1027,7 +1027,6 @@ extern _X_EXPORT Bool
-                int dpiy, int width,     /* pixel width of frame buffer */
-                int bpp);        /* bits per pixel of frame buffer */
- 
--#ifdef FB_ACCESS_WRAPPER
- extern _X_EXPORT Bool
- wfbFinishScreenInit(ScreenPtr pScreen,
-                     void *pbits,
-@@ -1049,7 +1048,6 @@ wfbScreenInit(ScreenPtr pScreen,
-               int width,
-               int bpp,
-               SetupWrapProcPtr setupWrap, FinishWrapProcPtr finishWrap);
--#endif
- 
- extern _X_EXPORT Bool
- fbFinishScreenInit(ScreenPtr pScreen,
--- 
-GitLab
-

diff --git a/x11-base/xorg-server/xorg-server-21.1.8-r2.ebuild b/x11-base/xorg-server/xorg-server-21.1.8-r2.ebuild
deleted file mode 100644
index b2831b509eba..000000000000
--- a/x11-base/xorg-server/xorg-server-21.1.8-r2.ebuild
+++ /dev/null
@@ -1,195 +0,0 @@
-# Copyright 1999-2023 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=8
-
-XORG_TARBALL_SUFFIX="xz"
-XORG_EAUTORECONF="no"
-inherit flag-o-matic xorg-3 meson
-EGIT_REPO_URI="https://gitlab.freedesktop.org/xorg/xserver.git"
-
-DESCRIPTION="X.Org X servers"
-SLOT="0/${PV}"
-if [[ ${PV} != 9999* ]]; then
-	KEYWORDS="~alpha amd64 arm arm64 hppa ~ia64 ~loong ~m68k ~mips ppc ppc64 ~riscv ~s390 sparc x86 ~amd64-linux ~x86-linux"
-fi
-
-IUSE_SERVERS="xephyr xnest xorg xvfb"
-IUSE="${IUSE_SERVERS} debug +elogind minimal selinux suid systemd test +udev unwind xcsecurity"
-RESTRICT="!test? ( test )"
-
-CDEPEND="
-	media-libs/libglvnd[X]
-	dev-libs/libbsd
-	dev-libs/openssl: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-misc/xbitmaps-1.0.1
-	>=x11-misc/xkeyboard-config-2.4.1-r3
-	xorg? (
-		>=x11-libs/libxcvt-0.1.0
-	)
-	xnest? (
-		>=x11-libs/libXext-1.0.99.4
-		>=x11-libs/libX11-1.1.5
-	)
-	xephyr? (
-		x11-libs/libxcb
-		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? (
-		>=media-libs/mesa-18[X(+),egl(+),gbm(+)]
-		>=media-libs/libepoxy-1.5.4[X,egl(+)]
-	)
-	udev? ( virtual/libudev:= )
-	unwind? ( sys-libs/libunwind:= )
-	selinux? (
-		sys-process/audit
-		sys-libs/libselinux:=
-	)
-	systemd? (
-		sys-apps/dbus
-		sys-apps/systemd
-	)
-	elogind? (
-		sys-apps/dbus
-		sys-auth/elogind[pam]
-		sys-auth/pambase[elogind]
-	)
-	!!x11-drivers/nvidia-drivers[-libglvnd(+)]
-"
-DEPEND="${CDEPEND}
-	>=x11-base/xorg-proto-2021.4.99.2
-	>=x11-libs/xtrans-1.3.5
-	media-fonts/font-util
-	test? ( >=x11-libs/libxcvt-0.1.0 )
-"
-RDEPEND="${CDEPEND}
-	!systemd? ( gui-libs/display-manager-init )
-	selinux? ( sec-policy/selinux-xserver )
-	xorg? ( >=x11-apps/xinit-1.3.3-r1 )
-"
-BDEPEND="
-	sys-devel/flex
-"
-PDEPEND="
-	xorg? ( >=x11-base/xorg-drivers-$(ver_cut 1-2) )"
-
-REQUIRED_USE="!minimal? (
-		|| ( ${IUSE_SERVERS} )
-	)
-	elogind? ( udev )
-	?? ( elogind systemd )"
-
-UPSTREAMED_PATCHES=(
-	"${FILESDIR}"/${P}-deadlock.patch
-	"${FILESDIR}"/${P}-wfb.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
-)
-
-src_configure() {
-	# bug #835653
-	use x86 && replace-flags -Os -O2
-
-	# 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
-	local emesonargs=(
-		--localstatedir "${EPREFIX}/var"
-		--sysconfdir "${EPREFIX}/etc/X11"
-		--buildtype $(usex debug debug plain)
-		-Db_ndebug=$(usex debug false true)
-		$(meson_use !minimal dri1)
-		$(meson_use !minimal dri2)
-		$(meson_use !minimal dri3)
-		$(meson_use !minimal glamor)
-		$(meson_use !minimal glx)
-		$(meson_use udev)
-		$(meson_use udev udev_kms)
-		$(meson_use unwind libunwind)
-		$(meson_use xcsecurity)
-		$(meson_use selinux xselinux)
-		$(meson_use xephyr)
-		$(meson_use xnest)
-		$(meson_use xorg)
-		$(meson_use xvfb)
-		-Ddocs=false
-		-Ddrm=true
-		-Ddtrace=false
-		-Dipv6=true
-		-Dhal=false
-		-Dlinux_acpi=false
-		-Dlinux_apm=false
-		-Dsecure-rpc=false
-		-Dsha1=libcrypto
-		-Dxkb_output_dir="${EPREFIX}/var/lib/xkb"
-	)
-
-	if [[ ${PV} == 9999 ]] ; then
-		# Gone in 21.1.x, but not in master.
-		emesonargs+=( -Dxwayland=false )
-	fi
-
-	if use systemd || use elogind; then
-		emesonargs+=(
-			-Dsystemd_logind=true
-			$(meson_use suid suid_wrapper)
-		)
-	else
-		emesonargs+=(
-			-Dsystemd_logind=false
-			-Dsuid_wrapper=false
-		)
-	fi
-
-	meson_src_configure
-}
-
-src_install() {
-	meson_src_install
-
-	# The meson build system does not support install-setuid
-	if ! use systemd && ! use elogind; then
-		if use suid; then
-			chmod u+s "${ED}"/usr/bin/Xorg
-		fi
-	fi
-
-	if ! use xorg; then
-		rm -f "${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 || die
-	fi
-
-	# install the @x11-module-rebuild set for Portage
-	insinto /usr/share/portage/config/sets
-	newins "${FILESDIR}"/xorg-sets.conf xorg.conf
-}
-
-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
-}


^ permalink raw reply related	[flat|nested] 10+ messages in thread

* [gentoo-commits] repo/gentoo:master commit in: x11-base/xorg-server/files/, x11-base/xorg-server/
@ 2023-12-14  4:12 Sam James
  0 siblings, 0 replies; 10+ messages in thread
From: Sam James @ 2023-12-14  4:12 UTC (permalink / raw
  To: gentoo-commits

commit:     702ab503b10f6fe6719564dbc310bd4422f58014
Author:     Sam James <sam <AT> gentoo <DOT> org>
AuthorDate: Thu Dec 14 02:38:35 2023 +0000
Commit:     Sam James <sam <AT> gentoo <DOT> org>
CommitDate: Thu Dec 14 04:03:40 2023 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=702ab503

x11-base/xorg-server: fix headers for modern C issue

Otherwise nouveau can't build. These changes are in master already and I've
sent a PR to backport them too.

Closes: https://bugs.gentoo.org/885763
Signed-off-by: Sam James <sam <AT> gentoo.org>

 .../files/xorg-server-21.1.10-c99.patch            |  39 +++++
 x11-base/xorg-server/xorg-server-21.1.10-r1.ebuild | 194 +++++++++++++++++++++
 2 files changed, 233 insertions(+)

diff --git a/x11-base/xorg-server/files/xorg-server-21.1.10-c99.patch b/x11-base/xorg-server/files/xorg-server-21.1.10-c99.patch
new file mode 100644
index 000000000000..12a48e611329
--- /dev/null
+++ b/x11-base/xorg-server/files/xorg-server-21.1.10-c99.patch
@@ -0,0 +1,39 @@
+https://bugs.gentoo.org/885763
+https://gitlab.freedesktop.org/xorg/xserver/-/merge_requests/1114
+https://gitlab.freedesktop.org/xorg/xserver/-/merge_requests/1222
+https://gitlab.freedesktop.org/xorg/xserver/-/commit/34a430a16ec2cb9851b1f2bc7fc2117e19b9fcc7
+
+From f3cb68d274c4536130683d28182620fbbf1b287d Mon Sep 17 00:00:00 2001
+From: Florian Weimer <fweimer@redhat.com>
+Date: Thu, 13 Apr 2023 15:45:58 +0200
+Subject: [PATCH] fb: Declare wfbFinishScreenInit, wfbScreenInit for
+ !FB_ACCESS_WRAPPER
+
+xf86-video-nouveau calls wfbScreenInit without defining
+FB_ACCESS_WRAPPER (which has other unintended side effects).
+Presently, this compiles and links because compilers still support
+implicit function declarations, but this is going to change fairly
+soon.  This seems to be the most straightforward change to keep
+the driver building.
+
+(cherry picked from commit 34a430a16ec2cb9851b1f2bc7fc2117e19b9fcc7)
+--- a/fb/fb.h
++++ b/fb/fb.h
+@@ -1027,7 +1027,6 @@ extern _X_EXPORT Bool
+                int dpiy, int width,     /* pixel width of frame buffer */
+                int bpp);        /* bits per pixel of frame buffer */
+ 
+-#ifdef FB_ACCESS_WRAPPER
+ extern _X_EXPORT Bool
+ wfbFinishScreenInit(ScreenPtr pScreen,
+                     void *pbits,
+@@ -1049,7 +1048,6 @@ wfbScreenInit(ScreenPtr pScreen,
+               int width,
+               int bpp,
+               SetupWrapProcPtr setupWrap, FinishWrapProcPtr finishWrap);
+-#endif
+ 
+ extern _X_EXPORT Bool
+ fbFinishScreenInit(ScreenPtr pScreen,
+-- 
+GitLab

diff --git a/x11-base/xorg-server/xorg-server-21.1.10-r1.ebuild b/x11-base/xorg-server/xorg-server-21.1.10-r1.ebuild
new file mode 100644
index 000000000000..8d72321f5444
--- /dev/null
+++ b/x11-base/xorg-server/xorg-server-21.1.10-r1.ebuild
@@ -0,0 +1,194 @@
+# Copyright 1999-2023 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+XORG_TARBALL_SUFFIX="xz"
+XORG_EAUTORECONF="no"
+inherit flag-o-matic xorg-3 meson
+EGIT_REPO_URI="https://gitlab.freedesktop.org/xorg/xserver.git"
+
+DESCRIPTION="X.Org X servers"
+SLOT="0/${PV}"
+if [[ ${PV} != 9999* ]]; then
+	KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~amd64-linux ~x86-linux"
+fi
+
+IUSE_SERVERS="xephyr xnest xorg xvfb"
+IUSE="${IUSE_SERVERS} debug +elogind minimal selinux suid systemd test +udev unwind xcsecurity"
+RESTRICT="!test? ( test )"
+
+CDEPEND="
+	media-libs/libglvnd[X]
+	dev-libs/libbsd
+	dev-libs/openssl:0=
+	>=x11-apps/iceauth-1.0.2
+	>=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-misc/xbitmaps-1.0.1
+	>=x11-misc/xkeyboard-config-2.4.1-r3
+	xorg? (
+		>=x11-libs/libxcvt-0.1.0
+	)
+	xnest? (
+		>=x11-libs/libXext-1.0.99.4
+		>=x11-libs/libX11-1.1.5
+	)
+	xephyr? (
+		x11-libs/libxcb
+		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? (
+		>=media-libs/mesa-18[X(+),egl(+),gbm(+)]
+		>=media-libs/libepoxy-1.5.4[X,egl(+)]
+	)
+	udev? ( virtual/libudev:= )
+	unwind? ( sys-libs/libunwind:= )
+	selinux? (
+		sys-process/audit
+		sys-libs/libselinux:=
+	)
+	systemd? (
+		sys-apps/dbus
+		sys-apps/systemd
+	)
+	elogind? (
+		sys-apps/dbus
+		sys-auth/elogind[pam]
+		sys-auth/pambase[elogind]
+	)
+	!!x11-drivers/nvidia-drivers[-libglvnd(+)]
+"
+DEPEND="${CDEPEND}
+	>=x11-base/xorg-proto-2021.4.99.2
+	>=x11-libs/xtrans-1.3.5
+	media-fonts/font-util
+	test? ( >=x11-libs/libxcvt-0.1.0 )
+"
+RDEPEND="${CDEPEND}
+	!systemd? ( gui-libs/display-manager-init )
+	selinux? ( sec-policy/selinux-xserver )
+	xorg? ( >=x11-apps/xinit-1.3.3-r1 )
+"
+BDEPEND="
+	sys-devel/flex
+"
+PDEPEND="
+	xorg? ( >=x11-base/xorg-drivers-$(ver_cut 1-2) )"
+
+REQUIRED_USE="!minimal? (
+		|| ( ${IUSE_SERVERS} )
+	)
+	elogind? ( udev )
+	?? ( elogind systemd )"
+
+UPSTREAMED_PATCHES=(
+)
+
+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
+	# pending upstream backport, bug #885763
+	"${FILESDIR}"/${PN}-21.1.10-c99.patch
+)
+
+src_configure() {
+	# bug #835653
+	use x86 && replace-flags -Os -O2
+
+	# 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
+	local emesonargs=(
+		--localstatedir "${EPREFIX}/var"
+		--sysconfdir "${EPREFIX}/etc/X11"
+		--buildtype $(usex debug debug plain)
+		-Db_ndebug=$(usex debug false true)
+		$(meson_use !minimal dri1)
+		$(meson_use !minimal dri2)
+		$(meson_use !minimal dri3)
+		$(meson_use !minimal glamor)
+		$(meson_use !minimal glx)
+		$(meson_use udev)
+		$(meson_use udev udev_kms)
+		$(meson_use unwind libunwind)
+		$(meson_use xcsecurity)
+		$(meson_use selinux xselinux)
+		$(meson_use xephyr)
+		$(meson_use xnest)
+		$(meson_use xorg)
+		$(meson_use xvfb)
+		-Ddocs=false
+		-Ddrm=true
+		-Ddtrace=false
+		-Dipv6=true
+		-Dhal=false
+		-Dlinux_acpi=false
+		-Dlinux_apm=false
+		-Dsecure-rpc=false
+		-Dsha1=libcrypto
+		-Dxkb_output_dir="${EPREFIX}/var/lib/xkb"
+	)
+
+	if [[ ${PV} == 9999 ]] ; then
+		# Gone in 21.1.x, but not in master.
+		emesonargs+=( -Dxwayland=false )
+	fi
+
+	if use systemd || use elogind; then
+		emesonargs+=(
+			-Dsystemd_logind=true
+			$(meson_use suid suid_wrapper)
+		)
+	else
+		emesonargs+=(
+			-Dsystemd_logind=false
+			-Dsuid_wrapper=false
+		)
+	fi
+
+	meson_src_configure
+}
+
+src_install() {
+	meson_src_install
+
+	# The meson build system does not support install-setuid
+	if ! use systemd && ! use elogind; then
+		if use suid; then
+			chmod u+s "${ED}"/usr/bin/Xorg
+		fi
+	fi
+
+	if ! use xorg; then
+		rm -f "${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 || die
+	fi
+
+	# install the @x11-module-rebuild set for Portage
+	insinto /usr/share/portage/config/sets
+	newins "${FILESDIR}"/xorg-sets.conf xorg.conf
+}
+
+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
+}


^ permalink raw reply related	[flat|nested] 10+ messages in thread

end of thread, other threads:[~2023-12-14  4:12 UTC | newest]

Thread overview: 10+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2020-01-26 21:10 [gentoo-commits] repo/gentoo:master commit in: x11-base/xorg-server/files/, x11-base/xorg-server/ Matt Turner
  -- strict thread matches above, loose matches on Subject: below --
2023-12-14  4:12 Sam James
2023-11-25 17:31 Matt Turner
2023-10-25 15:41 Matt Turner
2023-07-09  8:13 Sam James
2021-12-02  2:37 Sam James
2020-03-19 21:50 Matt Turner
2019-02-28  5:47 Matt Turner
2018-05-05 19:04 Nick Sarnie
2018-03-06 20:25 Matt Turner

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox