forked from gentoo/gentoo
-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
app-emulation/gallium-nine-standalone: New package
Package-Manager: Portage-2.3.55, Repoman-2.3.12 Signed-off-by: James Le Cuirot <[email protected]>
- Loading branch information
Showing
6 changed files
with
281 additions
and
0 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1 @@ | ||
DIST gallium-nine-standalone-0_p20190113.tar.gz 58954 BLAKE2B 29be3f5501cc4463aa05216b7360e2a5a949c498dd1c3a0170d5a2f7f508c1fe3171f90f8e35bbe95530be5d6b98b70c5a99362e69d4a64615e40fbb9c8eb96a SHA512 2b2ab79b3d9f2c19967a16200cf69e7eba589d4d3d8918890b9504a5cb4895cd76000b6f3852baa738845e8508c6d67843f45d368225878d446ec6e907f75de4 |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,28 @@ | ||
diff -Naur a/tools/cross-wine32.in b/tools/cross-wine32.in | ||
--- a/tools/cross-wine32.in 2019-01-12 16:45:09.190471883 +0000 | ||
+++ b/tools/cross-wine32.in 2019-01-12 16:48:22.569404982 +0000 | ||
@@ -5,8 +5,8 @@ | ||
pkgconfig = '@PKG_CONFIG@' | ||
|
||
[properties] | ||
-c_args = ['-m32', '--no-gnu-unique'] | ||
-c_link_args = ['-m32', '-mwindows'] | ||
+c_args = @CFLAGS@ + ['-m32', '--no-gnu-unique'] | ||
+c_link_args = @LDFLAGS@ + ['-m32', '-mwindows'] | ||
needs_exe_wrapper = true | ||
|
||
[host_machine] | ||
diff -Naur a/tools/cross-wine64.in b/tools/cross-wine64.in | ||
--- a/tools/cross-wine64.in 2019-01-12 16:45:09.190471883 +0000 | ||
+++ b/tools/cross-wine64.in 2019-01-12 16:48:19.865349306 +0000 | ||
@@ -5,8 +5,8 @@ | ||
pkgconfig = '@PKG_CONFIG@' | ||
|
||
[properties] | ||
-c_args = ['-m64', '--no-gnu-unique'] | ||
-c_link_args = ['-m64', '-mwindows'] | ||
+c_args = @CFLAGS@ + ['-m64', '--no-gnu-unique'] | ||
+c_link_args = @LDFLAGS@ + ['-m64', '-mwindows'] | ||
needs_exe_wrapper = true | ||
|
||
[host_machine] |
12 changes: 12 additions & 0 deletions
12
app-emulation/gallium-nine-standalone/files/nine-dll-path.patch
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,12 @@ | ||
diff -Naur a/ninewinecfg/main.c b/ninewinecfg/main.c | ||
--- a/ninewinecfg/main.c 2019-01-12 19:43:40.113737110 +0000 | ||
+++ b/ninewinecfg/main.c 2019-01-12 19:46:54.213703713 +0000 | ||
@@ -47,7 +47,7 @@ | ||
#define WINE_STAGING 1 | ||
#endif | ||
|
||
-static const char * const fn_nine_dll = "d3d9-nine.dll"; | ||
+static const char * const fn_nine_dll = G9DLL; | ||
static const char * const reg_path_dll_overrides = "Software\\Wine\\DllOverrides"; | ||
static const char * const reg_path_dll_redirects = "Software\\Wine\\DllRedirects"; | ||
static const char * const reg_key_d3d9 = "d3d9"; |
110 changes: 110 additions & 0 deletions
110
app-emulation/gallium-nine-standalone/gallium-nine-standalone-0_p20190113.ebuild
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,110 @@ | ||
# Copyright 1999-2019 Gentoo Authors | ||
# Distributed under the terms of the GNU General Public License v2 | ||
|
||
EAPI=7 | ||
|
||
inherit meson multilib-minimal toolchain-funcs | ||
|
||
DESCRIPTION="A standalone version of the WINE parts of Gallium Nine" | ||
HOMEPAGE="https://github.com/dhewg/nine" | ||
|
||
if [[ $PV = 9999* ]]; then | ||
inherit git-r3 | ||
EGIT_REPO_URI="https://github.com/dhewg/nine.git" | ||
else | ||
COMMIT="e10dd1a770c91d5ff13343c9a0186665b7df6114" | ||
SRC_URI="https://github.com/dhewg/nine/archive/${COMMIT}.tar.gz -> ${P}.tar.gz" | ||
S="${WORKDIR}/nine-${COMMIT}" | ||
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,egl,${MULTILIB_USEDEP}] | ||
x11-libs/libX11[${MULTILIB_USEDEP}] | ||
x11-libs/libXext[${MULTILIB_USEDEP}] | ||
x11-libs/libxcb[${MULTILIB_USEDEP}] | ||
" | ||
|
||
DEPEND=" | ||
${RDEPEND} | ||
virtual/pkgconfig[${MULTILIB_USEDEP}] | ||
virtual/wine[${MULTILIB_USEDEP}] | ||
" | ||
|
||
PATCHES=( | ||
"${FILESDIR}"/flags.patch | ||
"${FILESDIR}"/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 | ||
|
||
# Yes, these ridiculous backslashes are needed! | ||
g9dll=\\\\\\\\\\\"${g9dll//\\/\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\}\\\\\\\\\\\" | ||
|
||
sed \ | ||
-e "s!@PKG_CONFIG@!$(tc-getPKG_CONFIG)!" \ | ||
-e "s!@CFLAGS@!$(_meson_env_array "${CFLAGS} -DG9DLL=${g9dll}")!" \ | ||
-e "s!@LDFLAGS@!$(_meson_env_array "${LDFLAGS}")!" \ | ||
${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)" | ||
) | ||
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 | ||
} |
110 changes: 110 additions & 0 deletions
110
app-emulation/gallium-nine-standalone/gallium-nine-standalone-9999.ebuild
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,110 @@ | ||
# Copyright 1999-2019 Gentoo Authors | ||
# Distributed under the terms of the GNU General Public License v2 | ||
|
||
EAPI=7 | ||
|
||
inherit meson multilib-minimal toolchain-funcs | ||
|
||
DESCRIPTION="A standalone version of the WINE parts of Gallium Nine" | ||
HOMEPAGE="https://github.com/dhewg/nine" | ||
|
||
if [[ $PV = 9999* ]]; then | ||
inherit git-r3 | ||
EGIT_REPO_URI="https://github.com/dhewg/nine.git" | ||
else | ||
COMMIT="" | ||
SRC_URI="https://github.com/dhewg/nine/archive/${COMMIT}.tar.gz -> ${P}.tar.gz" | ||
S="${WORKDIR}/nine-${COMMIT}" | ||
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,egl,${MULTILIB_USEDEP}] | ||
x11-libs/libX11[${MULTILIB_USEDEP}] | ||
x11-libs/libXext[${MULTILIB_USEDEP}] | ||
x11-libs/libxcb[${MULTILIB_USEDEP}] | ||
" | ||
|
||
DEPEND=" | ||
${RDEPEND} | ||
virtual/pkgconfig[${MULTILIB_USEDEP}] | ||
virtual/wine[${MULTILIB_USEDEP}] | ||
" | ||
|
||
PATCHES=( | ||
"${FILESDIR}"/flags.patch | ||
"${FILESDIR}"/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 | ||
|
||
# Yes, these ridiculous backslashes are needed! | ||
g9dll=\\\\\\\\\\\"${g9dll//\\/\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\}\\\\\\\\\\\" | ||
|
||
sed \ | ||
-e "s!@PKG_CONFIG@!$(tc-getPKG_CONFIG)!" \ | ||
-e "s!@CFLAGS@!$(_meson_env_array "${CFLAGS} -DG9DLL=${g9dll}")!" \ | ||
-e "s!@LDFLAGS@!$(_meson_env_array "${LDFLAGS}")!" \ | ||
${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)" | ||
) | ||
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 | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,20 @@ | ||
<?xml version="1.0" encoding="UTF-8"?> | ||
<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd"> | ||
<pkgmetadata> | ||
<maintainer type="person"> | ||
<email>[email protected]</email> | ||
<name>James Le Cuirot</name> | ||
</maintainer> | ||
<maintainer type="project"> | ||
<email>[email protected]</email> | ||
<name>Wine</name> | ||
</maintainer> | ||
<longdescription> | ||
Gallium Nine Standalone, as the name implies, is a standalone version of the WINE parts of Gallium Nine. | ||
|
||
This decouples Gallium Nine from the WINE tree, so that it can be used with any WINE version. There is no need for any WINE patches. A stable, development, or staging WINE release is sufficient. | ||
</longdescription> | ||
<upstream> | ||
<remote-id type="github">dhewg/nine</remote-id> | ||
</upstream> | ||
</pkgmetadata> |