summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJames Le Cuirot <chewi@gentoo.org>2021-04-24 11:32:20 +0100
committerJames Le Cuirot <chewi@gentoo.org>2021-04-24 11:32:20 +0100
commitf58eaa2919416ba78ceb2da7e57e0a51e5fd1728 (patch)
tree5279fb48afcb52512f8abae6f220c3f3bf32d3c7 /app-emulation/gallium-nine-standalone
parentgames-board/iagno: fix VALA_MAX_API_VERSION setting (diff)
downloadgentoo-f58eaa2919416ba78ceb2da7e57e0a51e5fd1728.tar.gz
gentoo-f58eaa2919416ba78ceb2da7e57e0a51e5fd1728.tar.bz2
gentoo-f58eaa2919416ba78ceb2da7e57e0a51e5fd1728.zip
app-emulation/gallium-nine-standalone: Version bump to 0.8
Package-Manager: Portage-3.0.18, Repoman-3.0.2 Signed-off-by: James Le Cuirot <chewi@gentoo.org>
Diffstat (limited to 'app-emulation/gallium-nine-standalone')
-rw-r--r--app-emulation/gallium-nine-standalone/Manifest1
-rw-r--r--app-emulation/gallium-nine-standalone/files/0.8-cross-files.patch32
-rw-r--r--app-emulation/gallium-nine-standalone/gallium-nine-standalone-0.8.ebuild110
-rw-r--r--app-emulation/gallium-nine-standalone/gallium-nine-standalone-9999.ebuild2
4 files changed, 144 insertions, 1 deletions
diff --git a/app-emulation/gallium-nine-standalone/Manifest b/app-emulation/gallium-nine-standalone/Manifest
index 071df4f33d3f..9d0095b1d5aa 100644
--- a/app-emulation/gallium-nine-standalone/Manifest
+++ b/app-emulation/gallium-nine-standalone/Manifest
@@ -1 +1,2 @@
DIST gallium-nine-standalone-0.7.tar.gz 67699 BLAKE2B 85520de46e0e821f63d89691e322c3001ae853a0058a5077b484da6a1596a7ed03d2e2b7dc2686661fd21d34b33e10f4549437ce5790f18e1e6cc77c894e9d1e SHA512 9007564347bb6677f3d4eff83f744d39487c09b543489f02dcf7606917ecd9b72decf8176d9daecb6039b8998e97f737d9f7a71a5052f4d5c73f2e99e92af43c
+DIST gallium-nine-standalone-0.8.tar.gz 66656 BLAKE2B 5eaebcc514570dbaff44c4c889025d19a26c0b54941d1ab99ec131216a6eb49c2c649f1a4df51534f608653dab8b5e55a35afc57ba04a0ab6f4dea0edabac55c SHA512 3f339f909c6d65a2e5b5c912785aaa6f297e95549c868ab679dfb8e99d67db9906b6e75e3679a4e3e003f512a54ceb9953f941a4129f488973c16e1a3ac7267c
diff --git a/app-emulation/gallium-nine-standalone/files/0.8-cross-files.patch b/app-emulation/gallium-nine-standalone/files/0.8-cross-files.patch
new file mode 100644
index 000000000000..7aacc7b8bd9b
--- /dev/null
+++ b/app-emulation/gallium-nine-standalone/files/0.8-cross-files.patch
@@ -0,0 +1,32 @@
+diff --color -Naur a/tools/cross-wine32.in b/tools/cross-wine32.in
+--- a/tools/cross-wine32.in 2021-04-24 11:27:05.044134837 +0100
++++ b/tools/cross-wine32.in 2021-04-24 11:28:55.880227178 +0100
+@@ -5,9 +5,10 @@
+ pkgconfig = '@PKG_CONFIG@'
+
+ [properties]
+-c_args = ['-m32']
+-c_link_args = ['-m32', '-mwindows', '-L@WINE32_LIBDIR@']
++c_args = @CFLAGS@ + ['-m32']
++c_link_args = @LDFLAGS@ + ['-m32', '-mwindows', '-L@WINE32_LIBDIR@']
+ needs_exe_wrapper = true
++pkg_config_libdir = '@PKG_CONFIG_LIBDIR@'
+
+ [host_machine]
+ system = 'linux'
+diff --color -Naur a/tools/cross-wine64.in b/tools/cross-wine64.in
+--- a/tools/cross-wine64.in 2021-04-24 11:27:05.044134837 +0100
++++ b/tools/cross-wine64.in 2021-04-24 11:29:14.999766636 +0100
+@@ -5,9 +5,10 @@
+ pkgconfig = '@PKG_CONFIG@'
+
+ [properties]
+-c_args = ['-m64']
+-c_link_args = ['-m64', '-mwindows', '-L@WINE64_LIBDIR@']
++c_args = @CFLAGS@ + ['-m64']
++c_link_args = @LDFLAGS@ + ['-m64', '-mwindows', '-L@WINE64_LIBDIR@']
+ needs_exe_wrapper = true
++pkg_config_libdir = '@PKG_CONFIG_LIBDIR@'
+
+ [host_machine]
+ system = 'linux'
diff --git a/app-emulation/gallium-nine-standalone/gallium-nine-standalone-0.8.ebuild b/app-emulation/gallium-nine-standalone/gallium-nine-standalone-0.8.ebuild
new file mode 100644
index 000000000000..38dfeb8e3b79
--- /dev/null
+++ b/app-emulation/gallium-nine-standalone/gallium-nine-standalone-0.8.ebuild
@@ -0,0 +1,110 @@
+# Copyright 1999-2021 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=7
+
+inherit meson multilib-minimal toolchain-funcs
+
+MY_PN="wine-nine-standalone"
+DESCRIPTION="A standalone version of the WINE parts of Gallium Nine"
+HOMEPAGE="https://github.com/iXit/wine-nine-standalone"
+
+if [[ ${PV} = 9999* ]]; then
+ inherit git-r3
+ EGIT_REPO_URI="https://github.com/iXit/${MY_PN}.git"
+else
+ SRC_URI="https://github.com/iXit/${MY_PN}/archive/v${PV}.tar.gz -> ${P}.tar.gz"
+ S="${WORKDIR}/${MY_PN}-${PV}"
+ KEYWORDS="-* ~amd64 ~x86"
+fi
+
+LICENSE="LGPL-2.1+"
+SLOT="0"
+
+# We don't put Wine in RDEPEND because you can also use this with
+# Steam's Proton.
+
+RDEPEND="
+ media-libs/mesa[d3d9,dri3,X(+),${MULTILIB_USEDEP}]
+ x11-libs/libX11[${MULTILIB_USEDEP}]
+ x11-libs/libxcb[${MULTILIB_USEDEP}]
+"
+
+DEPEND="
+ ${RDEPEND}
+ virtual/pkgconfig
+ virtual/wine[${MULTILIB_USEDEP}]
+ >=dev-util/meson-0.50.1
+"
+
+PATCHES=(
+ "${FILESDIR}"/0.8-cross-files.patch
+ "${FILESDIR}"/0.3-nine-dll-path.patch
+)
+
+bits() {
+ if [[ ${ABI} = amd64 ]]; then
+ echo 64
+ else
+ echo 32
+ fi
+}
+
+src_prepare() {
+ default
+
+ # Upstream includes a bootstrap.sh script with hardcoded CHOSTs to
+ # create the Meson cross files. We improve on that here but also
+ # inject CFLAGS and LDFLAGS, partly to simply respect these, and
+ # partly to allow d3d9-nine.dll to be loaded from a location outside
+ # WINEPREFIX. This avoids the need for the nine-install.sh script,
+ # which doesn't play well with our multi-Wine environment.
+ bootstrap_nine() {
+ local file=tools/cross-wine$(bits)
+ local g9dll=\"Z:${EPREFIX}/usr/$(get_libdir)/d3d9-nine.dll.so\"
+
+ sed \
+ -e "s!@PKG_CONFIG@!$(tc-getPKG_CONFIG)!" \
+ -e "s!@CFLAGS@!$(_meson_env_array "${CFLAGS} '-DG9DLL=${g9dll}'")!" \
+ -e "s!@LDFLAGS@!$(_meson_env_array "${LDFLAGS}")!" \
+ -e "s!@PKG_CONFIG_LIBDIR@!${PKG_CONFIG_LIBDIR:-${ESYSROOT}/usr/$(get_libdir)/pkgconfig}!" \
+ ${file}.in > ${file} || die
+ }
+
+ multilib_foreach_abi bootstrap_nine
+}
+
+multilib_src_configure() {
+ # We override bindir because otherwise the 32-bit exe is overwritten
+ # by the 64-bit exe and we need both of them.
+ local emesonargs=(
+ --cross-file "${S}/tools/cross-wine$(bits)"
+ --bindir "$(get_libdir)"
+ -Ddistro-independent=false
+ -Ddri2=false
+ )
+ meson_src_configure
+}
+
+multilib_src_compile() {
+ meson_src_compile
+}
+
+multilib_src_install() {
+ meson_src_install
+}
+
+pkg_postinst() {
+ local bits=$(bits)
+
+ einfo "Don't remove the Z: drive from your WINEPREFIX as this relies on it."
+ einfo
+ einfo "To set up the ${bits}-bit library, launch your preferred Wine as follows:"
+ einfo " wine${bits/32} ${EPREFIX}/usr/$(get_libdir)/ninewinecfg.exe.so"
+
+ if use abi_x86_64 && use abi_x86_32; then
+ einfo
+ einfo "To set up the 32-bit library, launch your preferred Wine as follows:"
+ einfo " wine ${EPREFIX}/usr/$(ABI=x86 get_libdir)/ninewinecfg.exe.so"
+ fi
+}
diff --git a/app-emulation/gallium-nine-standalone/gallium-nine-standalone-9999.ebuild b/app-emulation/gallium-nine-standalone/gallium-nine-standalone-9999.ebuild
index ea0bcf68bedf..38dfeb8e3b79 100644
--- a/app-emulation/gallium-nine-standalone/gallium-nine-standalone-9999.ebuild
+++ b/app-emulation/gallium-nine-standalone/gallium-nine-standalone-9999.ebuild
@@ -38,7 +38,7 @@ DEPEND="
"
PATCHES=(
- "${FILESDIR}"/0.7-cross-files.patch
+ "${FILESDIR}"/0.8-cross-files.patch
"${FILESDIR}"/0.3-nine-dll-path.patch
)