From mboxrd@z Thu Jan  1 00:00:00 1970
Return-Path: <gentoo-commits+bounces-1435255-garchives=archives.gentoo.org@lists.gentoo.org>
Received: from lists.gentoo.org (pigeon.gentoo.org [208.92.234.80])
	(using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)
	 key-exchange X25519 server-signature RSA-PSS (2048 bits))
	(No client certificate requested)
	by finch.gentoo.org (Postfix) with ESMTPS id E4F96158012
	for <garchives@archives.gentoo.org>; Sat, 10 Sep 2022 09:48:32 +0000 (UTC)
Received: from pigeon.gentoo.org (localhost [127.0.0.1])
	by pigeon.gentoo.org (Postfix) with SMTP id F3707E07AE;
	Sat, 10 Sep 2022 09:48:31 +0000 (UTC)
Received: from smtp.gentoo.org (woodpecker.gentoo.org [140.211.166.183])
	(using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)
	 key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256)
	(No client certificate requested)
	by pigeon.gentoo.org (Postfix) with ESMTPS id D7E5CE07AE
	for <gentoo-commits@lists.gentoo.org>; Sat, 10 Sep 2022 09:48:31 +0000 (UTC)
Received: from oystercatcher.gentoo.org (oystercatcher.gentoo.org [148.251.78.52])
	(using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)
	 key-exchange X25519 server-signature RSA-PSS (4096 bits))
	(No client certificate requested)
	by smtp.gentoo.org (Postfix) with ESMTPS id D7405340F30
	for <gentoo-commits@lists.gentoo.org>; Sat, 10 Sep 2022 09:48:30 +0000 (UTC)
Received: from localhost.localdomain (localhost [IPv6:::1])
	by oystercatcher.gentoo.org (Postfix) with ESMTP id 745B1599
	for <gentoo-commits@lists.gentoo.org>; Sat, 10 Sep 2022 09:48:29 +0000 (UTC)
From: "Ionen Wolkens" <ionen@gentoo.org>
To: gentoo-commits@lists.gentoo.org
Content-Transfer-Encoding: 8bit
Content-type: text/plain; charset=UTF-8
Reply-To: gentoo-dev@lists.gentoo.org, "Ionen Wolkens" <ionen@gentoo.org>
Message-ID: <1662803233.72553a083c0dd0d384b7ec922f4e20d357a9001a.ionen@gentoo>
Subject: [gentoo-commits] repo/gentoo:master commit in: app-emulation/wine-proton/
X-VCS-Repository: repo/gentoo
X-VCS-Files: app-emulation/wine-proton/wine-proton-7.0.4.ebuild
X-VCS-Directories: app-emulation/wine-proton/
X-VCS-Committer: ionen
X-VCS-Committer-Name: Ionen Wolkens
X-VCS-Revision: 72553a083c0dd0d384b7ec922f4e20d357a9001a
X-VCS-Branch: master
Date: Sat, 10 Sep 2022 09:48:29 +0000 (UTC)
Precedence: bulk
List-Post: <mailto:gentoo-commits@lists.gentoo.org>
List-Help: <mailto:gentoo-commits+help@lists.gentoo.org>
List-Unsubscribe: <mailto:gentoo-commits+unsubscribe@lists.gentoo.org>
List-Subscribe: <mailto:gentoo-commits+subscribe@lists.gentoo.org>
List-Id: Gentoo Linux mail <gentoo-commits.gentoo.org>
X-BeenThere: gentoo-commits@lists.gentoo.org
X-Auto-Response-Suppress: DR, RN, NRN, OOF, AutoReply
X-Archives-Salt: 3293cc35-1331-4c67-a7c8-6d8a187f30ef
X-Archives-Hash: 8c562b91e5c928aadab5cd820143ac05

commit:     72553a083c0dd0d384b7ec922f4e20d357a9001a
Author:     Ionen Wolkens <ionen <AT> gentoo <DOT> org>
AuthorDate: Fri Sep  9 01:34:49 2022 +0000
Commit:     Ionen Wolkens <ionen <AT> gentoo <DOT> org>
CommitDate: Sat Sep 10 09:47:13 2022 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=72553a08

app-emulation/wine-proton: misc ebuild adjustments

Mostly text/comment/style updates plus live support to match what
will be used in wine-staging/vanilla ebuilds rebased on this.

Also restrict tests, it was no-op but makes it more explicit that
they exists and we're not running them.

Signed-off-by: Ionen Wolkens <ionen <AT> gentoo.org>

 app-emulation/wine-proton/wine-proton-7.0.4.ebuild | 61 ++++++++++++++--------
 1 file changed, 38 insertions(+), 23 deletions(-)

diff --git a/app-emulation/wine-proton/wine-proton-7.0.4.ebuild b/app-emulation/wine-proton/wine-proton-7.0.4.ebuild
index b7bb3868a11a..9101a5f62172 100644
--- a/app-emulation/wine-proton/wine-proton-7.0.4.ebuild
+++ b/app-emulation/wine-proton/wine-proton-7.0.4.ebuild
@@ -12,20 +12,32 @@ WINE_GECKO=2.47.3
 WINE_MONO=7.3.0
 WINE_PV=$(ver_rs 2 -)
 
+if [[ ${PV} == *9999 ]]; then
+	inherit git-r3
+	EGIT_REPO_URI="https://github.com/ValveSoftware/wine.git"
+	EGIT_BRANCH="experimental_$(ver_cut 1-2)"
+else
+	SRC_URI="https://github.com/ValveSoftware/wine/archive/refs/tags/proton-wine-${WINE_PV}.tar.gz"
+	S="${WORKDIR}/${PN}-wine-${WINE_PV}"
+	KEYWORDS="-* ~amd64 ~x86"
+fi
+
 DESCRIPTION="Valve Software's fork of Wine"
 HOMEPAGE="https://github.com/ValveSoftware/wine/"
-SRC_URI="https://github.com/ValveSoftware/wine/archive/refs/tags/proton-wine-${WINE_PV}.tar.gz"
-S="${WORKDIR}/${PN}-wine-${WINE_PV}"
 
 LICENSE="LGPL-2.1+ BSD-2 IJG MIT ZLIB gsm libpng2 libtiff"
 SLOT="${PV}"
-KEYWORDS="-* ~amd64 ~x86"
 IUSE="
 	+abi_x86_32 +abi_x86_64 +alsa crossdev-mingw custom-cflags debug
 	+fontconfig +gecko +gstreamer llvm-libunwind +mono nls openal
 	osmesa perl pulseaudio +sdl selinux +ssl udev udisks +unwind usb
 	v4l +vkd3d +xcomposite xinerama"
 
+# tests are non-trivial to run, can hang easily, don't play well with
+# sandbox, and several need real opengl/vulkan or network access
+RESTRICT="test"
+
+# `grep WINE_CHECK_SONAME configure.ac` + if not directly linked
 WINE_DLOPEN_DEPEND="
 	dev-libs/gmp:=[${MULTILIB_USEDEP}]
 	dev-libs/libgcrypt:=[${MULTILIB_USEDEP}]
@@ -106,25 +118,29 @@ pkg_pretend() {
 	if use crossdev-mingw && [[ ! -v MINGW_BYPASS ]]; then
 		local mingw=-w64-mingw32
 		for mingw in $(usev abi_x86_64 x86_64${mingw}) $(usev abi_x86_32 i686${mingw}); do
-			type -P ${mingw}-gcc >/dev/null && continue
-			eerror "With USE=crossdev-mingw, you must prepare the MinGW toolchain"
-			eerror "yourself by installing sys-devel/crossdev then running:"
-			eerror
-			eerror "    crossdev --target ${mingw}"
-			eerror
-			eerror "For more information, please see: https://wiki.gentoo.org/wiki/Mingw"
-			eerror "--> Note that mingw builds are default for ${PN} even without this USE."
-			die "USE=crossdev-mingw is enabled, but ${mingw}-gcc was not found"
+			if ! type -P ${mingw}-gcc >/dev/null; then
+				eerror "With USE=crossdev-mingw, you must prepare the MinGW toolchain"
+				eerror "yourself by installing sys-devel/crossdev then running:"
+				eerror
+				eerror "    crossdev --target ${mingw}"
+				eerror
+				eerror "For more information, please see: https://wiki.gentoo.org/wiki/Mingw"
+				eerror "--> Note that mingw builds are default for ${PN} even without this USE."
+				die "USE=crossdev-mingw is enabled, but ${mingw}-gcc was not found"
+			fi
 		done
 	fi
 }
 
 src_prepare() {
 	# sanity check, bumping these has a history of oversights
-	local geckomono="$(sed -En '/^#define (GECKO|MONO)_VER/{s/[^0-9.]//gp}' \
-		dlls/appwiz.cpl/addons.c || die)"
-	[[ ${WINE_GECKO}$'\n'${WINE_MONO} == "${geckomono}" ]] ||
-		die "gecko/mono mismatch, has:" ${geckomono}
+	local geckomono=$(sed -En '/^#define (GECKO|MONO)_VER/{s/[^0-9.]//gp}' \
+		dlls/appwiz.cpl/addons.c || die)
+	if [[ ${WINE_GECKO}$'\n'${WINE_MONO} != "${geckomono}" ]]; then
+		local gmfatal=
+		[[ ${PV} == *9999 ]] && gmfatal=nonfatal
+		${gmfatal} die -n "gecko/mono mismatch in ebuild, has: " ${geckomono} " (please file a bug)"
+	fi
 
 	default
 
@@ -134,10 +150,10 @@ src_prepare() {
 	# similarly to staging, append to `wine --version` for identification
 	sed -i "s/wine_build[^1]*1/& (Proton-${WINE_PV})/" configure.ac || die
 
-	# source has outdated auto-generated files, update like Proton's Makefile
+	# always update for patches (including user's wrt #432348)
 	eautoreconf
 	tools/make_requests || die # perl
-	dlls/winevulkan/make_vulkan -x vk.xml || die # python
+	dlls/winevulkan/make_vulkan -x vk.xml || die # python, needed for proton's
 }
 
 src_configure() {
@@ -162,7 +178,6 @@ src_configure() {
 
 		# ...and disable most options unimportant for games and unused by
 		# Proton rather than expose as volatile USEs with little support
-		--disable-tests # does not build and is disabled in Proton's Makefile
 		--without-capi
 		--without-cups
 		--without-gphoto
@@ -177,13 +192,14 @@ src_configure() {
 
 		$(use_enable gecko mshtml)
 		$(use_enable mono mscoree)
+		--disable-tests
 		$(use_with alsa)
 		$(use_with fontconfig)
 		$(use_with gstreamer)
 		$(use_with nls gettext)
 		$(use_with openal)
 		$(use_with osmesa)
-		--without-oss # media-sound/oss is not packaged
+		--without-oss # media-sound/oss is not packaged (OSSv4)
 		$(use_with pulseaudio pulse)
 		$(use_with sdl)
 		$(use_with ssl gnutls)
@@ -220,7 +236,7 @@ src_configure() {
 				$(usev abi_x86_64 --with-wine64=../build64)
 				TARGETFLAGS=-m32 # for widl
 			)
-			# _setup is optional, but use over Wine's auto-detect (+bug 472038)
+			# _setup is optional, but use over Wine's auto-detect (+#472038)
 			multilib_toolchain_setup x86
 		fi
 		: "${CROSSCC:=${CROSSCC_x86:-i686-w64-mingw32-gcc}}"
@@ -262,8 +278,7 @@ src_install() {
 	use perl || rm "${ED}"${WINE_DATADIR}/man/man1/wine{dump,maker}.1 \
 		"${ED}"${WINE_PREFIX}/bin/{function_grep.pl,wine{dump,maker}} || die
 
-	# create variant wrappers for eselect-wine, quotes are
-	# enough to prevent bug #615218 if it somehow happens
+	# create variant wrappers for eselect-wine
 	local bin
 	for bin in "${ED}"${WINE_PREFIX}/bin/*; do
 		make_wrapper "${bin##*/}-${P#wine-}" "${bin#"${ED}"}"