app-emulation/wine: Add d3d9 support to 9999
authorNP-Hardass <NP-Hardass@gentoo.org>
Fri, 22 Apr 2016 02:42:16 +0000 (22:42 -0400)
committerNP-Hardass <NP-Hardass@gentoo.org>
Fri, 22 Apr 2016 04:47:51 +0000 (00:47 -0400)
Package-Manager: portage-2.2.26

app-emulation/wine/metadata.xml
app-emulation/wine/wine-9999.ebuild

index 16fa7a695f4d4925b6870ccc6ee3b836154913f9..aa61670c51b9d263f12d5f7e7a7e9cce40ca4acf 100644 (file)
@@ -5,6 +5,11 @@
                <email>wine@gentoo.org</email>
                <name>Wine</name>
        </maintainer>
+       <maintainer type="person">
+               <email>commendsarnex@gmail.com</email>
+               <name>Nick Sarnie</name>
+               <description>Only CC on bugs that involve USE="d3d9"</description>
+       </maintainer>
        <longdescription>
 Wine is an Open Source implementation of the Windows API on top of X and Unix.
 
@@ -13,6 +18,8 @@ Think of Wine as a compatibility layer for running Windows programs. Wine does n
        <use>
                <flag name="capi">Enable ISDN support via CAPI</flag>
                <flag name="custom-cflags">Bypass strip-flags; use at your own peril</flag>
+               <flag name="d3d9">Apply highly experimental patches for Gallium Nine support.
+                       This patch may break some applications.</flag>
                <flag name="dos">Pull in <pkg>games-emulation/dosbox</pkg> to run DOS applications</flag>
                <flag name="gecko">Add support for the Gecko engine when using iexplore</flag>
                <flag name="gstreamer">Use <pkg>media-libs/gstreamer</pkg> to provide DirectShow functionality;
index d0ad464c637fb25928add53d2d7e385edb27af70..c495091d9cfffd0f3c7e105d1c0618230ac07472 100644 (file)
@@ -26,6 +26,8 @@ MV="4.6.2"
 [[ ${MAJOR_V} == "1.8" ]] && SUFFIX="-unofficial"
 STAGING_P="wine-staging-${PV}"
 STAGING_DIR="${WORKDIR}/${STAGING_P}${SUFFIX}"
+D3D9_P="${PV}"
+D3D9_DIR="${WORKDIR}/wine-d3d9-patches-${D3D9_P}"
 WINE_GENTOO="wine-gentoo-2015.03.07"
 DESCRIPTION="Free implementation of Windows(tm) on Unix"
 HOMEPAGE="http://www.winehq.org/"
@@ -39,14 +41,16 @@ SRC_URI="${SRC_URI}
 
 if [[ ${PV} == "9999" ]] ; then
        STAGING_EGIT_REPO_URI="git://github.com/wine-compholio/wine-staging.git"
+       D3D9_EGIT_REPO_URI="git://github.com/sarnex/wine-d3d9-patches.git"
 else
        SRC_URI="${SRC_URI}
-       staging? ( https://github.com/wine-compholio/wine-staging/archive/v${PV}${SUFFIX}.tar.gz -> ${STAGING_P}.tar.gz )"
+       staging? ( https://github.com/wine-compholio/wine-staging/archive/v${PV}${SUFFIX}.tar.gz -> ${STAGING_P}.tar.gz )
+       d3d9? ( https://github.com/sarnex/wine-d3d9-patches/archive/wine-d3d9-${PV}.tar.gz -> ${D3D9_P}.tar.gz )"
 fi
 
 LICENSE="LGPL-2.1"
 SLOT="0"
-IUSE="+abi_x86_32 +abi_x86_64 +alsa capi cups custom-cflags dos elibc_glibc +fontconfig +gecko gphoto2 gsm gstreamer +jpeg +lcms ldap +mono mp3 ncurses netapi nls odbc openal opencl +opengl osmesa oss +perl pcap pipelight +png prelink pulseaudio +realtime +run-exes s3tc samba scanner selinux +ssl staging test +threads +truetype +udisks v4l vaapi +X +xcomposite xinerama +xml"
+IUSE="+abi_x86_32 +abi_x86_64 +alsa capi cups custom-cflags d3d9 dos elibc_glibc +fontconfig +gecko gphoto2 gsm gstreamer +jpeg +lcms ldap +mono mp3 ncurses netapi nls odbc openal opencl +opengl osmesa oss +perl pcap pipelight +png prelink pulseaudio +realtime +run-exes s3tc samba scanner selinux +ssl staging test +threads +truetype +udisks v4l vaapi +X +xcomposite xinerama +xml"
 REQUIRED_USE="|| ( abi_x86_32 abi_x86_64 )
        test? ( abi_x86_32 )
        elibc_glibc? ( threads )
@@ -62,6 +66,7 @@ RESTRICT="test"
 COMMON_DEPEND="
        truetype? ( >=media-libs/freetype-2.0.0[${MULTILIB_USEDEP}] )
        capi? ( net-dialup/capi4k-utils )
+       d3d9? ( media-libs/mesa[d3d9,${MULTILIB_USEDEP}] )
        ncurses? ( >=sys-libs/ncurses-5.2:0=[${MULTILIB_USEDEP}] )
        udisks? ( sys-apps/dbus[${MULTILIB_USEDEP}] )
        fontconfig? ( media-libs/fontconfig:=[${MULTILIB_USEDEP}] )
@@ -216,8 +221,7 @@ src_unpack() {
                        local WINE_COMMIT=${EGIT_VERSION}
 
                        EGIT_REPO_URI=${STAGING_EGIT_REPO_URI}
-                       unset ${PN}_LIVE_REPO;
-                       unset EGIT_COMMIT;
+                       unset ${PN}_LIVE_{REPO,BRANCH,COMMIT} EGIT_COMMIT;
 
                        EGIT_CHECKOUT_DIR=${STAGING_DIR} git-r3_src_unpack
 
@@ -229,9 +233,15 @@ src_unpack() {
                                einfo "Example: EGIT_COMMIT=${STAGING_COMMIT} emerge -1 wine"
                        fi
                fi
+               if use d3d9; then
+                       EGIT_REPO_URI="${D3D9_EGIT_REPO_URI}"
+                       unset ${PN}_LIVE_{REPO,BRANCH,COMMIT} EGIT_COMMIT;
+                       EGIT_CHECKOUT_DIR="${D3D9_DIR}" git-r3_src_unpack
+               fi
        else
                unpack ${P}.tar.bz2
                use staging && unpack "${STAGING_P}.tar.gz"
+               use d3d9 && unpack "${D3D9_P}.tar.gz"
        fi
 
        unpack "${WINE_GENTOO}.tar.bz2"
@@ -268,6 +278,14 @@ src_prepare() {
                        sed -i "s/(Staging)/(Staging [Unofficial])/" libs/wine/Makefile.in || die
                fi
        fi
+       if use d3d9; then
+               if use staging; then
+                       PATCHES+=( "${D3D9_DIR}/staging-helper.patch" )
+               else
+                       PATCHES+=( "${D3D9_DIR}/d3d9-helper.patch" )
+               fi
+               PATCHES+=( "${D3D9_DIR}/wine-d3d9.patch" )
+       fi
 
        default
        eautoreconf
@@ -341,6 +359,7 @@ multilib_src_configure() {
                --with-xattr
                $(use_with vaapi va)
        )
+       use d3d9 && myconf+=( $(use_with d3d9 d3dadapter) )
 
        local PKG_CONFIG AR RANLIB
        # Avoid crossdev's i686-pc-linux-gnu-pkg-config if building wine32 on amd64; #472038