app-emulation/gallium-nine-standalone: Version bump to 0.4
authorJames Le Cuirot <chewi@gentoo.org>
Wed, 1 May 2019 20:08:00 +0000 (21:08 +0100)
committerJames Le Cuirot <chewi@gentoo.org>
Wed, 1 May 2019 20:08:00 +0000 (21:08 +0100)
Thanks to Hello71 for discovering that the backslash madness is no
longer needed with newer Meson versions.

Package-Manager: Portage-2.3.66, Repoman-2.3.12
Signed-off-by: James Le Cuirot <chewi@gentoo.org>
app-emulation/gallium-nine-standalone/Manifest
app-emulation/gallium-nine-standalone/gallium-nine-standalone-0.4.ebuild [new file with mode: 0644]
app-emulation/gallium-nine-standalone/gallium-nine-standalone-9999.ebuild

index 88ab0abf6c1ec5b265f685c9fd3eb141951b6bf6..3d4616309b727a85a01652da783991a24f94244f 100644 (file)
@@ -1 +1,2 @@
 DIST gallium-nine-standalone-0.3.tar.gz 63887 BLAKE2B bd198617a5d3d3830bd5127b63eed2c82bff037141ae72ff9237ad5062fdbe9b6797e233eaf86e06d92153487c53389eb094b0be3b0cbdbf3fe565292a15cbb0 SHA512 80fedca58523fbf318109d2d3d5420e97d26ebf5b89b9f1965165c7a33c9dab9c62a65f14b75569b5126c549f5df91beef372d54e94dc90c608932eeb6a59829
+DIST gallium-nine-standalone-0.4.tar.gz 66820 BLAKE2B 7e7b0028f0c7e7c26fa1ee164e7e867fee39a5f315b750bfc3537e8720e9fbc625ca27fb28a58e8e521af455f8ab347d6fd6ca82786fe5ac9d76e368cd43466e SHA512 6af31e828400c6f711c76d91fb65215f4ba79c31b8d98f3e953b319593d96d1e5e78e07aca96529de37bbb89f3479a4d4db5f58e32ce7b98667284be10a9e532
diff --git a/app-emulation/gallium-nine-standalone/gallium-nine-standalone-0.4.ebuild b/app-emulation/gallium-nine-standalone/gallium-nine-standalone-0.4.ebuild
new file mode 100644 (file)
index 0000000..868d83c
--- /dev/null
@@ -0,0 +1,109 @@
+# Copyright 1999-2019 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,${MULTILIB_USEDEP}]
+       x11-libs/libX11[${MULTILIB_USEDEP}]
+       x11-libs/libxcb[${MULTILIB_USEDEP}]
+"
+
+DEPEND="
+       ${RDEPEND}
+       virtual/pkgconfig[${MULTILIB_USEDEP}]
+       virtual/wine[${MULTILIB_USEDEP}]
+       >=dev-util/meson-0.50.1
+"
+
+PATCHES=(
+       "${FILESDIR}"/flags.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}")!" \
+                       ${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
+}
index 852055dc803a29e0df0ad1dc95db61ad6158b14c..868d83cdbb60e4199d2c5e472976f02a4fb0d6e7 100644 (file)
@@ -27,7 +27,6 @@ SLOT="0"
 RDEPEND="
        media-libs/mesa[d3d9,dri3,${MULTILIB_USEDEP}]
        x11-libs/libX11[${MULTILIB_USEDEP}]
-       x11-libs/libXext[${MULTILIB_USEDEP}]
        x11-libs/libxcb[${MULTILIB_USEDEP}]
 "
 
@@ -35,6 +34,7 @@ DEPEND="
        ${RDEPEND}
        virtual/pkgconfig[${MULTILIB_USEDEP}]
        virtual/wine[${MULTILIB_USEDEP}]
+       >=dev-util/meson-0.50.1
 "
 
 PATCHES=(
@@ -61,14 +61,11 @@ src_prepare() {
        # 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//\\/\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\}\\\\\\\\\\\"
+               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!@CFLAGS@!$(_meson_env_array "${CFLAGS} '-DG9DLL=${g9dll}'")!" \
                        -e "s!@LDFLAGS@!$(_meson_env_array "${LDFLAGS}")!" \
                        ${file}.in > ${file} || die
        }