commit:     0497bd02f32da6a89a4ee99a970c4b76147960e4
Author:     Jimi Huotari <chiitoo <AT> gentoo <DOT> org>
AuthorDate: Tue Nov 24 00:33:23 2020 +0000
Commit:     Jimi Huotari <chiitoo <AT> gentoo <DOT> org>
CommitDate: Tue Nov 24 03:17:00 2020 +0000
URL:        https://gitweb.gentoo.org/repo/proj/wine.git/commit/?id=0497bd02

app-emulation/wine-staging: add USE="mingw"

Using MinGW to build PE files has become more or less a requirement
for some applications to still run via Wine, so let's not
hard-disable it any longer.

Bug: https://bugs.gentoo.org/736657
Package-Manager: Portage-3.0.10, Repoman-3.0.2
Signed-off-by: Jimi Huotari <chiitoo <AT> gentoo.org>

 app-emulation/wine-staging/metadata.xml            |  1 +
 ...ing-9999.ebuild => wine-staging-5.22-r1.ebuild} | 38 +++++++++++++++++++---
 .../wine-staging/wine-staging-9999.ebuild          | 33 +++++++++++++++++--
 3 files changed, 66 insertions(+), 6 deletions(-)

diff --git a/app-emulation/wine-staging/metadata.xml 
b/app-emulation/wine-staging/metadata.xml
index 7d7899b..d5dd13d 100644
--- a/app-emulation/wine-staging/metadata.xml
+++ b/app-emulation/wine-staging/metadata.xml
@@ -26,6 +26,7 @@ This variant of the Wine packaging includes the Wine-Staging 
patchset.
                <flag name="gecko">Add support for the Gecko engine when using 
iexplore</flag>
                <flag name="gssapi">Use GSSAPI (Kerberos SSP support)</flag>
                <flag name="gstreamer">Use <pkg>media-libs/gstreamer</pkg> to 
provide DirectShow functionality;</flag>
+               <flag name="mingw">Build PE files using a MinGW cross 
compiler</flag>
                <flag name="mono">Add support for .NET using Wine's Mono 
add-on</flag>
                <flag name="netapi">Use libnetapi from <pkg>net-fs/samba</pkg> 
to support Windows networks in netapi32.dll</flag>
                <flag name="opencl">Enable OpenCL support</flag>

diff --git a/app-emulation/wine-staging/wine-staging-9999.ebuild 
b/app-emulation/wine-staging/wine-staging-5.22-r1.ebuild
similarity index 92%
copy from app-emulation/wine-staging/wine-staging-9999.ebuild
copy to app-emulation/wine-staging/wine-staging-5.22-r1.ebuild
index 11363b6..cf0d751 100644
--- a/app-emulation/wine-staging/wine-staging-9999.ebuild
+++ b/app-emulation/wine-staging/wine-staging-5.22-r1.ebuild
@@ -44,7 +44,7 @@ fi
 
 LICENSE="LGPL-2.1"
 SLOT="${PV}"
-IUSE="+abi_x86_32 +abi_x86_64 +alsa capi cups custom-cflags dos elibc_glibc 
+faudio +fontconfig +gcrypt +gecko gphoto2 gsm gssapi gstreamer +jpeg kerberos 
kernel_FreeBSD +lcms ldap +mono mp3 ncurses netapi nls odbc openal opencl 
+opengl osmesa oss +perl pcap pipelight +png prelink pulseaudio +realtime 
+run-exes samba scanner sdl selinux +ssl staging test themes +threads +truetype 
udev +udisks +unwind v4l vaapi vkd3d vulkan +X +xcomposite xinerama +xml"
+IUSE="+abi_x86_32 +abi_x86_64 +alsa capi cups custom-cflags dos elibc_glibc 
+faudio +fontconfig +gcrypt +gecko gphoto2 gsm gssapi gstreamer +jpeg kerberos 
kernel_FreeBSD +lcms ldap mingw +mono mp3 ncurses netapi nls odbc openal opencl 
+opengl osmesa oss +perl pcap pipelight +png prelink pulseaudio +realtime 
+run-exes samba scanner sdl selinux +ssl staging test themes +threads +truetype 
udev +udisks +unwind v4l vaapi vkd3d vulkan +X +xcomposite xinerama +xml"
 REQUIRED_USE="|| ( abi_x86_32 abi_x86_64 )
        X? ( truetype )
        elibc_glibc? ( threads )
@@ -297,6 +297,34 @@ pkg_pretend() {
                        die
                fi
        fi
+
+       if use mingw && use abi_x86_32 && ! has_version 
"cross-i686-w64-mingw32/gcc"; then
+               eerror
+               eerror "USE=\"mingw\" is currently experimental, and requires 
the"
+               eerror "'cross-i686-w64-mingw32' compiler and its runtime for 
32-bit builds."
+               eerror
+               eerror "These can be installed by using 'sys-devel/crossdev':"
+               eerror
+               eerror "crossdev --target i686-w64-mingw32"
+               eerror
+               eerror "For more information on setting up MinGW, see: 
https://wiki.gentoo.org/wiki/Mingw";
+               eerror
+               die "MinGW build was enabled, but no compiler to support it was 
found."
+       fi
+
+       if use mingw && use abi_x86_64 && ! has_version 
"cross-x86_64-w64-mingw32/gcc"; then
+               eerror
+               eerror "USE=\"mingw\" is currently experimental, and requires 
the"
+               eerror "'cross-x86_64-w64-mingw32' compiler and its runtime for 
64-bit builds."
+               eerror
+               eerror "These can be installed by using 'sys-devel/crossdev':"
+               eerror
+               eerror "crossdev --target x86_64-w64-mingw32"
+               eerror
+               eerror "For more information on setting up MinGW, see: 
https://wiki.gentoo.org/wiki/Mingw";
+               eerror
+               die "MinGW build was enabled, but no compiler to support it was 
found."
+       fi
 }
 
 pkg_setup() {
@@ -455,7 +483,8 @@ multilib_src_configure() {
                $(use_with jpeg)
                $(use_with kerberos krb5)
                $(use_with ldap)
-               --without-mingw # linux LDFLAGS leak in mingw32: bug #685172
+               # TODO: Will bug 685172 still need special handling?
+               $(use_with mingw)
                $(use_enable mono mscoree)
                $(use_with mp3 mpg123)
                $(use_with netapi)
@@ -492,9 +521,10 @@ multilib_src_configure() {
                $(use_with vaapi va)
        )
 
-       local PKG_CONFIG
+       local PKG_CONFIG AR RANLIB
        # Avoid crossdev's i686-pc-linux-gnu-pkg-config if building wine32 on 
amd64; #472038
-       tc-export PKG_CONFIG
+       # set AR and RANLIB to make QA scripts happy; #483342
+       tc-export PKG_CONFIG AR RANLIB
 
        if use amd64; then
                if [[ ${ABI} == amd64 ]]; then

diff --git a/app-emulation/wine-staging/wine-staging-9999.ebuild 
b/app-emulation/wine-staging/wine-staging-9999.ebuild
index 11363b6..df834fe 100644
--- a/app-emulation/wine-staging/wine-staging-9999.ebuild
+++ b/app-emulation/wine-staging/wine-staging-9999.ebuild
@@ -44,7 +44,7 @@ fi
 
 LICENSE="LGPL-2.1"
 SLOT="${PV}"
-IUSE="+abi_x86_32 +abi_x86_64 +alsa capi cups custom-cflags dos elibc_glibc 
+faudio +fontconfig +gcrypt +gecko gphoto2 gsm gssapi gstreamer +jpeg kerberos 
kernel_FreeBSD +lcms ldap +mono mp3 ncurses netapi nls odbc openal opencl 
+opengl osmesa oss +perl pcap pipelight +png prelink pulseaudio +realtime 
+run-exes samba scanner sdl selinux +ssl staging test themes +threads +truetype 
udev +udisks +unwind v4l vaapi vkd3d vulkan +X +xcomposite xinerama +xml"
+IUSE="+abi_x86_32 +abi_x86_64 +alsa capi cups custom-cflags dos elibc_glibc 
+faudio +fontconfig +gcrypt +gecko gphoto2 gsm gssapi gstreamer +jpeg kerberos 
kernel_FreeBSD +lcms ldap mingw +mono mp3 ncurses netapi nls odbc openal opencl 
+opengl osmesa oss +perl pcap pipelight +png prelink pulseaudio +realtime 
+run-exes samba scanner sdl selinux +ssl staging test themes +threads +truetype 
udev +udisks +unwind v4l vaapi vkd3d vulkan +X +xcomposite xinerama +xml"
 REQUIRED_USE="|| ( abi_x86_32 abi_x86_64 )
        X? ( truetype )
        elibc_glibc? ( threads )
@@ -297,6 +297,34 @@ pkg_pretend() {
                        die
                fi
        fi
+
+       if use mingw && use abi_x86_32 && ! has_version 
"cross-i686-w64-mingw32/gcc"; then
+               eerror
+               eerror "USE=\"mingw\" is currently experimental, and requires 
the"
+               eerror "'cross-i686-w64-mingw32' compiler and its runtime for 
32-bit builds."
+               eerror
+               eerror "These can be installed by using 'sys-devel/crossdev':"
+               eerror
+               eerror "crossdev --target i686-w64-mingw32"
+               eerror
+               eerror "For more information on setting up MinGW, see: 
https://wiki.gentoo.org/wiki/Mingw";
+               eerror
+               die "MinGW build was enabled, but no compiler to support it was 
found."
+       fi
+
+       if use mingw && use abi_x86_64 && ! has_version 
"cross-x86_64-w64-mingw32/gcc"; then
+               eerror
+               eerror "USE=\"mingw\" is currently experimental, and requires 
the"
+               eerror "'cross-x86_64-w64-mingw32' compiler and its runtime for 
64-bit builds."
+               eerror
+               eerror "These can be installed by using 'sys-devel/crossdev':"
+               eerror
+               eerror "crossdev --target x86_64-w64-mingw32"
+               eerror
+               eerror "For more information on setting up MinGW, see: 
https://wiki.gentoo.org/wiki/Mingw";
+               eerror
+               die "MinGW build was enabled, but no compiler to support it was 
found."
+       fi
 }
 
 pkg_setup() {
@@ -455,7 +483,8 @@ multilib_src_configure() {
                $(use_with jpeg)
                $(use_with kerberos krb5)
                $(use_with ldap)
-               --without-mingw # linux LDFLAGS leak in mingw32: bug #685172
+               # TODO: Will bug 685172 still need special handling?
+               $(use_with mingw)
                $(use_enable mono mscoree)
                $(use_with mp3 mpg123)
                $(use_with netapi)

Reply via email to