9 |
9 |
inherit python-any-r1 readme.gentoo-r1 toolchain-funcs wrapper
|
10 |
10 |
|
11 |
11 |
WINE_GECKO=2.47.3
|
12 |
|
WINE_MONO=7.4.0
|
|
12 |
WINE_MONO=7.4.1
|
13 |
13 |
WINE_PV=$(ver_rs 2 -)
|
14 |
14 |
|
15 |
15 |
if [[ ${PV} == *9999 ]]; then
|
... | ... | |
25 |
25 |
DESCRIPTION="Valve Software's fork of Wine"
|
26 |
26 |
HOMEPAGE="https://github.com/ValveSoftware/wine/"
|
27 |
27 |
|
28 |
|
LICENSE="LGPL-2.1+ BSD-2 IJG MIT ZLIB gsm libpng2 libtiff"
|
|
28 |
LICENSE="LGPL-2.1+ BSD-2 IJG MIT OPENLDAP ZLIB gsm libpng2 libtiff"
|
29 |
29 |
SLOT="${PV}"
|
30 |
30 |
IUSE="
|
31 |
|
+abi_x86_32 +abi_x86_64 +alsa crossdev-mingw custom-cflags debug
|
32 |
|
+fontconfig +gecko +gstreamer llvm-libunwind +mono nls openal
|
33 |
|
osmesa perl pulseaudio +sdl selinux +ssl udev udisks +unwind usb
|
34 |
|
v4l +vkd3d +xcomposite xinerama"
|
|
31 |
+abi_x86_32 +abi_x86_64 +alsa crossdev-mingw custom-cflags
|
|
32 |
+fontconfig +gecko +gstreamer llvm-libunwind +mono nls osmesa
|
|
33 |
perl pulseaudio +sdl selinux +ssl +strip udev udisks +unwind
|
|
34 |
usb v4l +xcomposite xinerama"
|
35 |
35 |
|
36 |
36 |
# tests are non-trivial to run, can hang easily, don't play well with
|
37 |
37 |
# sandbox, and several need real opengl/vulkan or network access
|
... | ... | |
60 |
60 |
v4l? ( media-libs/libv4l[${MULTILIB_USEDEP}] )
|
61 |
61 |
xcomposite? ( x11-libs/libXcomposite[${MULTILIB_USEDEP}] )
|
62 |
62 |
xinerama? ( x11-libs/libXinerama[${MULTILIB_USEDEP}] )"
|
|
63 |
# gcc: for -latomic with clang
|
63 |
64 |
WINE_COMMON_DEPEND="
|
64 |
65 |
${WINE_DLOPEN_DEPEND}
|
|
66 |
sys-devel/gcc:*
|
65 |
67 |
x11-libs/libX11[${MULTILIB_USEDEP}]
|
66 |
68 |
x11-libs/libXext[${MULTILIB_USEDEP}]
|
67 |
69 |
alsa? ( media-libs/alsa-lib[${MULTILIB_USEDEP}] )
|
... | ... | |
70 |
72 |
media-libs/gst-plugins-base:1.0[opengl,${MULTILIB_USEDEP}]
|
71 |
73 |
media-libs/gstreamer:1.0[${MULTILIB_USEDEP}]
|
72 |
74 |
)
|
73 |
|
openal? ( media-libs/openal[${MULTILIB_USEDEP}] )
|
74 |
75 |
pulseaudio? ( media-libs/libpulse[${MULTILIB_USEDEP}] )
|
75 |
76 |
udev? ( virtual/libudev:=[${MULTILIB_USEDEP}] )
|
76 |
77 |
unwind? (
|
77 |
78 |
llvm-libunwind? ( sys-libs/llvm-libunwind[${MULTILIB_USEDEP}] )
|
78 |
79 |
!llvm-libunwind? ( sys-libs/libunwind:=[${MULTILIB_USEDEP}] )
|
79 |
80 |
)
|
80 |
|
usb? ( dev-libs/libusb:1[${MULTILIB_USEDEP}] )
|
81 |
|
vkd3d? ( >=app-emulation/vkd3d-1.2[${MULTILIB_USEDEP}] )"
|
|
81 |
usb? ( dev-libs/libusb:1[${MULTILIB_USEDEP}] )"
|
82 |
82 |
RDEPEND="
|
83 |
83 |
${WINE_COMMON_DEPEND}
|
84 |
84 |
app-emulation/wine-desktop-common
|
... | ... | |
116 |
116 |
"${FILESDIR}"/${PN}-7.0.4-musl.patch
|
117 |
117 |
"${FILESDIR}"/${PN}-7.0.4-noexecstack.patch
|
118 |
118 |
"${FILESDIR}"/${PN}-7.0.4-restore-menubuilder.patch
|
119 |
|
"${FILESDIR}"/${PN}-7.0.4-unwind.patch
|
120 |
|
"${FILESDIR}"/${PN}-7.0.6-mingw64-11.0.0.patch
|
|
119 |
"${FILESDIR}"/${PN}-8.0.1c-unwind.patch
|
121 |
120 |
)
|
122 |
121 |
|
123 |
122 |
pkg_pretend() {
|
... | ... | |
157 |
156 |
# and it still gets used in install phase despite --with-mingw,
|
158 |
157 |
# drop as a quick fix for now which hopefully should be safe
|
159 |
158 |
sed -i '/MSVCRTFLAGS=/s/-mabi=ms//' configure.ac || die
|
|
159 |
|
|
160 |
# needed by Valve's fsync patches if using clang (undef atomic_load_8)
|
|
161 |
sed -i '/^UNIX_LIBS.*=/s/$/ -latomic/' dlls/ntdll/Makefile.in || die
|
160 |
162 |
fi
|
161 |
163 |
|
162 |
164 |
# ensure .desktop calls this variant + slot
|
... | ... | |
201 |
203 |
--without-gphoto
|
202 |
204 |
--without-gssapi
|
203 |
205 |
--without-krb5
|
204 |
|
--without-ldap
|
205 |
206 |
--without-netapi
|
206 |
207 |
--without-opencl
|
207 |
208 |
--without-pcap
|
... | ... | |
215 |
216 |
$(use_with fontconfig)
|
216 |
217 |
$(use_with gstreamer)
|
217 |
218 |
$(use_with nls gettext)
|
218 |
|
$(use_with openal)
|
219 |
219 |
$(use_with osmesa)
|
220 |
220 |
--without-oss # media-sound/oss is not packaged (OSSv4)
|
221 |
221 |
$(use_with pulseaudio pulse)
|
... | ... | |
226 |
226 |
$(use_with unwind)
|
227 |
227 |
$(use_with usb)
|
228 |
228 |
$(use_with v4l v4l2)
|
229 |
|
$(use_with vkd3d)
|
230 |
229 |
$(use_with xcomposite)
|
231 |
230 |
$(use_with xinerama)
|
232 |
231 |
)
|
... | ... | |
251 |
250 |
mkdir ../build${bits} || die
|
252 |
251 |
cd ../build${bits} || die
|
253 |
252 |
|
254 |
|
# CROSSCC_amd64/x86 are unused by Wine, but recognized here for users
|
|
253 |
pe_arch=i386
|
255 |
254 |
if (( bits == 64 )); then
|
|
255 |
pe_arch=x86_64
|
256 |
256 |
: "${CROSSCC:=${CROSSCC_amd64:-x86_64-w64-mingw32-gcc}}"
|
257 |
257 |
conf+=( --enable-win64 )
|
258 |
258 |
elif use amd64; then
|
... | ... | |
265 |
265 |
fi
|
266 |
266 |
: "${CROSSCC:=${CROSSCC_x86:-i686-w64-mingw32-gcc}}"
|
267 |
267 |
|
268 |
|
# use *FLAGS for mingw, but strip unsupported (e.g. --hash-style=gnu)
|
|
268 |
# CROSSCC is no longer recognized by Wine, but still use for now
|
|
269 |
# (future handling for CROSS* variables is subject to changes)
|
|
270 |
conf+=( ac_cv_prog_${pe_arch}_CC="${CROSSCC}" )
|
|
271 |
|
|
272 |
# use *FLAGS for mingw, but strip unsupported
|
269 |
273 |
: "${CROSSCFLAGS:=$(
|
|
274 |
# >=wine-7.21 <8.10's configure.ac does not pass -fno-strict when
|
|
275 |
# it should (can be removed when proton is rebased on >=8.10)
|
|
276 |
append-cflags -fno-strict-aliasing
|
|
277 |
|
270 |
278 |
filter-flags '-fstack-protector*' #870136
|
271 |
279 |
filter-flags '-mfunction-return=thunk*' #878849
|
272 |
280 |
|
... | ... | |
280 |
288 |
: "${CROSSLDFLAGS:=$(
|
281 |
289 |
filter-flags '-fuse-ld=*'
|
282 |
290 |
CC=${CROSSCC} test-flags-CCLD ${LDFLAGS})}"
|
283 |
|
export CROSS{CC,{C,LD}FLAGS}
|
|
291 |
export CROSS{C,LD}FLAGS
|
284 |
292 |
|
285 |
293 |
ECONF_SOURCE=${S} econf "${conf[@]}"
|
286 |
294 |
)
|
... | ... | |
321 |
329 |
# don't let portage try to strip PE files with the wrong
|
322 |
330 |
# strip executable and instead handle it here (saves ~120MB)
|
323 |
331 |
dostrip -x ${WINE_PREFIX}/wine/{i386,x86_64}-windows
|
324 |
|
use debug ||
|
|
332 |
|
|
333 |
if use strip; then
|
|
334 |
ebegin "Stripping Windows (PE) binaries"
|
325 |
335 |
find "${ED}"${WINE_PREFIX}/wine/*-windows -regex '.*\.\(a\|dll\|exe\)' \
|
326 |
|
-exec $(usex abi_x86_64 x86_64 i686)-w64-mingw32-strip --strip-unneeded {} + || die
|
|
336 |
-exec $(usex abi_x86_64 x86_64 i686)-w64-mingw32-strip --strip-unneeded {} +
|
|
337 |
eend ${?} || die
|
|
338 |
fi
|
327 |
339 |
|
328 |
340 |
dodoc ANNOUNCE AUTHORS README* documentation/README*
|
329 |
341 |
readme.gentoo_create_doc
|