app-emulation/gallium-nine-standalone: Version bump to 0.3
authorJames Le Cuirot <chewi@gentoo.org>
Tue, 26 Feb 2019 23:38:04 +0000 (23:38 +0000)
committerJames Le Cuirot <chewi@gentoo.org>
Tue, 26 Feb 2019 23:38:04 +0000 (23:38 +0000)
Package-Manager: Portage-2.3.62, Repoman-2.3.12
Signed-off-by: James Le Cuirot <chewi@gentoo.org>
app-emulation/gallium-nine-standalone/Manifest
app-emulation/gallium-nine-standalone/files/0.3-nine-dll-path.patch [new file with mode: 0644]
app-emulation/gallium-nine-standalone/gallium-nine-standalone-0.3.ebuild [new file with mode: 0644]
app-emulation/gallium-nine-standalone/gallium-nine-standalone-9999.ebuild
app-emulation/gallium-nine-standalone/metadata.xml

index 725f6ef859f8d502778560cf47cc53c6519b92fd..963e790f0b2b3300cfacabde6e97d5bf048cca4d 100644 (file)
@@ -1 +1,2 @@
+DIST gallium-nine-standalone-0.3.tar.gz 63887 BLAKE2B bd198617a5d3d3830bd5127b63eed2c82bff037141ae72ff9237ad5062fdbe9b6797e233eaf86e06d92153487c53389eb094b0be3b0cbdbf3fe565292a15cbb0 SHA512 80fedca58523fbf318109d2d3d5420e97d26ebf5b89b9f1965165c7a33c9dab9c62a65f14b75569b5126c549f5df91beef372d54e94dc90c608932eeb6a59829
 DIST gallium-nine-standalone-0_p20190113.tar.gz 58954 BLAKE2B 29be3f5501cc4463aa05216b7360e2a5a949c498dd1c3a0170d5a2f7f508c1fe3171f90f8e35bbe95530be5d6b98b70c5a99362e69d4a64615e40fbb9c8eb96a SHA512 2b2ab79b3d9f2c19967a16200cf69e7eba589d4d3d8918890b9504a5cb4895cd76000b6f3852baa738845e8508c6d67843f45d368225878d446ec6e907f75de4
diff --git a/app-emulation/gallium-nine-standalone/files/0.3-nine-dll-path.patch b/app-emulation/gallium-nine-standalone/files/0.3-nine-dll-path.patch
new file mode 100644 (file)
index 0000000..830bdc4
--- /dev/null
@@ -0,0 +1,13 @@
+diff --git a/ninewinecfg/main.c b/ninewinecfg/main.c
+index 3d58d67..e69668d 100644
+--- a/ninewinecfg/main.c
++++ b/ninewinecfg/main.c
+@@ -32,7 +32,7 @@
+ 
+ WINE_DEFAULT_DEBUG_CHANNEL(ninecfg);
+ 
+-static const char * const fn_nine_dll = "d3d9-nine.dll";
++static const char * const fn_nine_dll = G9DLL;
+ static const char * const fn_d3d9_dll = "d3d9.dll";
+ static const char * const fn_nine_exe = "ninewinecfg.exe";
+ 
diff --git a/app-emulation/gallium-nine-standalone/gallium-nine-standalone-0.3.ebuild b/app-emulation/gallium-nine-standalone/gallium-nine-standalone-0.3.ebuild
new file mode 100644 (file)
index 0000000..852055d
--- /dev/null
@@ -0,0 +1,112 @@
+# 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/libXext[${MULTILIB_USEDEP}]
+       x11-libs/libxcb[${MULTILIB_USEDEP}]
+"
+
+DEPEND="
+       ${RDEPEND}
+       virtual/pkgconfig[${MULTILIB_USEDEP}]
+       virtual/wine[${MULTILIB_USEDEP}]
+"
+
+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
+
+               # 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)"
+               -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 0e73ee93be3c48257eb31c565e159a0730e08381..852055dc803a29e0df0ad1dc95db61ad6158b14c 100644 (file)
@@ -5,16 +5,16 @@ 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/dhewg/nine"
+HOMEPAGE="https://github.com/iXit/wine-nine-standalone"
 
 if [[ $PV = 9999* ]]; then
        inherit git-r3
-       EGIT_REPO_URI="https://github.com/dhewg/nine.git"
+       EGIT_REPO_URI="https://github.com/iXit/${MY_PN}.git"
 else
-       COMMIT=""
-       SRC_URI="https://github.com/dhewg/nine/archive/${COMMIT}.tar.gz -> ${P}.tar.gz"
-       S="${WORKDIR}/nine-${COMMIT}"
+       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
 
@@ -25,7 +25,7 @@ SLOT="0"
 # Steam's Proton.
 
 RDEPEND="
-       media-libs/mesa[d3d9,egl,${MULTILIB_USEDEP}]
+       media-libs/mesa[d3d9,dri3,${MULTILIB_USEDEP}]
        x11-libs/libX11[${MULTILIB_USEDEP}]
        x11-libs/libXext[${MULTILIB_USEDEP}]
        x11-libs/libxcb[${MULTILIB_USEDEP}]
@@ -39,7 +39,7 @@ DEPEND="
 
 PATCHES=(
        "${FILESDIR}"/flags.patch
-       "${FILESDIR}"/nine-dll-path.patch
+       "${FILESDIR}"/0.3-nine-dll-path.patch
 )
 
 bits() {
@@ -82,6 +82,8 @@ multilib_src_configure() {
        local emesonargs=(
                --cross-file "${S}/tools/cross-wine$(bits)"
                --bindir "$(get_libdir)"
+               -Ddistro-independent=false
+               -Ddri2=false
        )
        meson_src_configure
 }
index c661f33f58ddc5c09babf9695e4463ee2031c97e..99949f5b76d00a6d3507ee616b3a76908fb0fa63 100644 (file)
@@ -15,6 +15,6 @@ Gallium Nine Standalone, as the name implies, is a standalone version of the WIN
 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>
+               <remote-id type="github">iXit/wine-nine-standalone</remote-id>
        </upstream>
 </pkgmetadata>