Gentoo Archives: gentoo-commits

From: Nick Sarnie <sarnex@g.o>
To: gentoo-commits@l.g.o
Subject: [gentoo-commits] repo/gentoo:master commit in: app-emulation/wine-staging/
Date: Tue, 01 Dec 2020 14:55:14
Message-Id: 1606834502.eeb1c34b563f29f42540e80035d8ced9e87f17e3.sarnex@gentoo
1 commit: eeb1c34b563f29f42540e80035d8ced9e87f17e3
2 Author: Nick Sarnie <sarnex <AT> gentoo <DOT> org>
3 AuthorDate: Tue Dec 1 14:54:46 2020 +0000
4 Commit: Nick Sarnie <sarnex <AT> gentoo <DOT> org>
5 CommitDate: Tue Dec 1 14:55:02 2020 +0000
6 URL: https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=eeb1c34b
7
8 app-emulation/wine-staging: Drop old
9
10 Package-Manager: Portage-3.0.11, Repoman-3.0.2
11 Signed-off-by: Nick Sarnie <sarnex <AT> gentoo.org>
12
13 .../wine-staging/wine-staging-5.22-r1.ebuild | 650 ---------------------
14 .../wine-staging/wine-staging-5.22.ebuild | 621 --------------------
15 2 files changed, 1271 deletions(-)
16
17 diff --git a/app-emulation/wine-staging/wine-staging-5.22-r1.ebuild b/app-emulation/wine-staging/wine-staging-5.22-r1.ebuild
18 deleted file mode 100644
19 index cf0d7510808..00000000000
20 --- a/app-emulation/wine-staging/wine-staging-5.22-r1.ebuild
21 +++ /dev/null
22 @@ -1,650 +0,0 @@
23 -# Copyright 1999-2020 Gentoo Authors
24 -# Distributed under the terms of the GNU General Public License v2
25 -
26 -EAPI=6
27 -
28 -PLOCALES="ar ast bg ca cs da de el en en_US eo es fa fi fr he hi hr hu it ja ko lt ml nb_NO nl or pa pl pt_BR pt_PT rm ro ru si sk sl sr_RS@cyrillic sr_RS@latin sv ta te th tr uk wa zh_CN zh_TW"
29 -PLOCALE_BACKUP="en"
30 -
31 -inherit autotools eapi7-ver estack eutils flag-o-matic gnome2-utils l10n multilib multilib-minimal pax-utils toolchain-funcs virtualx xdg-utils
32 -
33 -MY_PN="${PN%%-*}"
34 -MY_P="${MY_PN}-${PV}"
35 -
36 -if [[ ${PV} == "9999" ]] ; then
37 - EGIT_REPO_URI="https://source.winehq.org/git/wine.git"
38 - EGIT_BRANCH="master"
39 - inherit git-r3
40 - SRC_URI=""
41 - #KEYWORDS=""
42 -else
43 - MAJOR_V=$(ver_cut 1)
44 - SRC_URI="https://dl.winehq.org/wine/source/${MAJOR_V}.x/${MY_P}.tar.xz"
45 - KEYWORDS="-* ~amd64 ~x86"
46 -fi
47 -S="${WORKDIR}/${MY_P}"
48 -
49 -STAGING_P="wine-staging-${PV}"
50 -STAGING_DIR="${WORKDIR}/${STAGING_P}"
51 -GWP_V="20200523"
52 -PATCHDIR="${WORKDIR}/gentoo-wine-patches"
53 -
54 -DESCRIPTION="Free implementation of Windows(tm) on Unix, with Wine-Staging patchset"
55 -HOMEPAGE="https://www.winehq.org/"
56 -SRC_URI="${SRC_URI}
57 - https://dev.gentoo.org/~sarnex/distfiles/wine/gentoo-wine-patches-${GWP_V}.tar.xz
58 -"
59 -
60 -if [[ ${PV} == "9999" ]] ; then
61 - STAGING_EGIT_REPO_URI="https://github.com/wine-staging/wine-staging.git"
62 -else
63 - SRC_URI="${SRC_URI}
64 - staging? ( https://github.com/wine-staging/wine-staging/archive/v${PV}.tar.gz -> ${STAGING_P}.tar.gz )"
65 -fi
66 -
67 -LICENSE="LGPL-2.1"
68 -SLOT="${PV}"
69 -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"
70 -REQUIRED_USE="|| ( abi_x86_32 abi_x86_64 )
71 - X? ( truetype )
72 - elibc_glibc? ( threads )
73 - osmesa? ( opengl )
74 - pipelight? ( staging )
75 - test? ( abi_x86_32 )
76 - themes? ( staging )
77 - vaapi? ( staging )
78 - vkd3d? ( vulkan )" # osmesa-opengl #286560 # X-truetype #551124
79 -
80 -# FIXME: the test suite is unsuitable for us; many tests require net access
81 -# or fail due to Xvfb's opengl limitations.
82 -RESTRICT="test"
83 -
84 -COMMON_DEPEND="
85 - X? (
86 - x11-libs/libXcursor[${MULTILIB_USEDEP}]
87 - x11-libs/libXext[${MULTILIB_USEDEP}]
88 - x11-libs/libXfixes[${MULTILIB_USEDEP}]
89 - x11-libs/libXrandr[${MULTILIB_USEDEP}]
90 - x11-libs/libXi[${MULTILIB_USEDEP}]
91 - x11-libs/libXxf86vm[${MULTILIB_USEDEP}]
92 - )
93 - alsa? ( media-libs/alsa-lib[${MULTILIB_USEDEP}] )
94 - capi? ( net-libs/libcapi[${MULTILIB_USEDEP}] )
95 - cups? ( net-print/cups:=[${MULTILIB_USEDEP}] )
96 - faudio? ( app-emulation/faudio:=[${MULTILIB_USEDEP}] )
97 - fontconfig? ( media-libs/fontconfig:=[${MULTILIB_USEDEP}] )
98 - gcrypt? ( dev-libs/libgcrypt:=[${MULTILIB_USEDEP}] )
99 - gphoto2? ( media-libs/libgphoto2:=[${MULTILIB_USEDEP}] )
100 - gsm? ( media-sound/gsm:=[${MULTILIB_USEDEP}] )
101 - gssapi? ( virtual/krb5[${MULTILIB_USEDEP}] )
102 - gstreamer? (
103 - media-libs/gstreamer:1.0[${MULTILIB_USEDEP}]
104 - media-plugins/gst-plugins-meta:1.0[${MULTILIB_USEDEP}]
105 - )
106 - jpeg? ( virtual/jpeg:0=[${MULTILIB_USEDEP}] )
107 - kerberos? ( virtual/krb5:0=[${MULTILIB_USEDEP}] )
108 - lcms? ( media-libs/lcms:2=[${MULTILIB_USEDEP}] )
109 - ldap? ( net-nds/openldap:=[${MULTILIB_USEDEP}] )
110 - mp3? ( >=media-sound/mpg123-1.5.0[${MULTILIB_USEDEP}] )
111 - ncurses? ( >=sys-libs/ncurses-5.2:0=[${MULTILIB_USEDEP}] )
112 - netapi? ( net-fs/samba[netapi(+),${MULTILIB_USEDEP}] )
113 - nls? ( sys-devel/gettext[${MULTILIB_USEDEP}] )
114 - odbc? ( dev-db/unixODBC:=[${MULTILIB_USEDEP}] )
115 - openal? ( media-libs/openal:=[${MULTILIB_USEDEP}] )
116 - opencl? ( virtual/opencl[${MULTILIB_USEDEP}] )
117 - opengl? (
118 - virtual/glu[${MULTILIB_USEDEP}]
119 - virtual/opengl[${MULTILIB_USEDEP}]
120 - )
121 - osmesa? ( >=media-libs/mesa-13[osmesa,${MULTILIB_USEDEP}] )
122 - pcap? ( net-libs/libpcap[${MULTILIB_USEDEP}] )
123 - png? ( media-libs/libpng:0=[${MULTILIB_USEDEP}] )
124 - pulseaudio? ( media-sound/pulseaudio[${MULTILIB_USEDEP}] )
125 - scanner? ( media-gfx/sane-backends:=[${MULTILIB_USEDEP}] )
126 - sdl? ( media-libs/libsdl2:=[haptic,joystick,${MULTILIB_USEDEP}] )
127 - ssl? ( net-libs/gnutls:=[${MULTILIB_USEDEP}] )
128 - staging? ( sys-apps/attr[${MULTILIB_USEDEP}] )
129 - themes? (
130 - dev-libs/glib:2[${MULTILIB_USEDEP}]
131 - x11-libs/cairo[${MULTILIB_USEDEP}]
132 - x11-libs/gtk+:3[${MULTILIB_USEDEP}]
133 - )
134 - truetype? ( >=media-libs/freetype-2.0.0[${MULTILIB_USEDEP}] )
135 - udev? ( virtual/libudev:=[${MULTILIB_USEDEP}] )
136 - udisks? ( sys-apps/dbus[${MULTILIB_USEDEP}] )
137 - unwind? ( sys-libs/libunwind[${MULTILIB_USEDEP}] )
138 - v4l? ( media-libs/libv4l[${MULTILIB_USEDEP}] )
139 - vaapi? ( x11-libs/libva[X,${MULTILIB_USEDEP}] )
140 - vkd3d? ( >=app-emulation/vkd3d-1.2[${MULTILIB_USEDEP}] )
141 - vulkan? ( media-libs/vulkan-loader[${MULTILIB_USEDEP}] )
142 - xcomposite? ( x11-libs/libXcomposite[${MULTILIB_USEDEP}] )
143 - xinerama? ( x11-libs/libXinerama[${MULTILIB_USEDEP}] )
144 - xml? (
145 - dev-libs/libxml2[${MULTILIB_USEDEP}]
146 - dev-libs/libxslt[${MULTILIB_USEDEP}]
147 - )"
148 -
149 -RDEPEND="${COMMON_DEPEND}
150 - app-emulation/wine-desktop-common
151 - >app-eselect/eselect-wine-0.3
152 - !app-emulation/wine:0
153 - dos? ( >=games-emulation/dosbox-0.74_p20160629 )
154 - gecko? ( app-emulation/wine-gecko:2.47.1[abi_x86_32?,abi_x86_64?] )
155 - mono? ( app-emulation/wine-mono:5.1.1 )
156 - perl? (
157 - dev-lang/perl
158 - dev-perl/XML-Simple
159 - )
160 - pulseaudio? (
161 - realtime? ( sys-auth/rtkit )
162 - )
163 - samba? ( >=net-fs/samba-3.0.25[winbind] )
164 - selinux? ( sec-policy/selinux-wine )
165 - udisks? ( sys-fs/udisks:2 )"
166 -
167 -# tools/make_requests requires perl
168 -DEPEND="${COMMON_DEPEND}
169 - sys-devel/flex
170 - >=sys-kernel/linux-headers-2.6
171 - virtual/pkgconfig
172 - virtual/yacc
173 - X? ( x11-base/xorg-proto )
174 - prelink? ( sys-devel/prelink )
175 - staging? (
176 - dev-lang/perl
177 - dev-perl/XML-Simple
178 - )
179 - xinerama? ( x11-base/xorg-proto )"
180 -
181 -# These use a non-standard "Wine" category, which is provided by
182 -# /etc/xdg/applications-merged/wine.menu
183 -QA_DESKTOP_FILE="usr/share/applications/wine-browsedrive.desktop
184 -usr/share/applications/wine-notepad.desktop
185 -usr/share/applications/wine-uninstaller.desktop
186 -usr/share/applications/wine-winecfg.desktop"
187 -
188 -PATCHES=(
189 - "${PATCHDIR}/patches/${MY_PN}-5.0-winegcc.patch" #260726
190 - "${PATCHDIR}/patches/${MY_PN}-4.7-multilib-portage.patch" #395615
191 - "${PATCHDIR}/patches/${MY_PN}-2.0-multislot-apploader.patch" #310611
192 - "${PATCHDIR}/patches/${MY_PN}-5.9-Revert-makedep-Install-also-generated-typelib-for-in.patch"
193 -)
194 -PATCHES_BIN=()
195 -
196 -# https://bugs.gentoo.org/show_bug.cgi?id=635222
197 -if [[ ${#PATCHES_BIN[@]} -ge 1 ]] || [[ ${PV} == 9999 ]]; then
198 - DEPEND+=" dev-util/patchbin"
199 -fi
200 -
201 -wine_compiler_check() {
202 - [[ ${MERGE_TYPE} = "binary" ]] && return 0
203 -
204 - # GCC-specific bugs
205 - if tc-is-gcc; then
206 - # bug #549768
207 - if use abi_x86_64 && [[ $(gcc-major-version) = 5 && $(gcc-minor-version) -le 2 ]]; then
208 - ebegin "Checking for gcc-5 ms_abi compiler bug"
209 - $(tc-getCC) -O2 "${PATCHDIR}/files/pr66838.c" -o "${T}"/pr66838 || die
210 - # Run in subshell to prevent "Aborted" message
211 - ( "${T}"/pr66838 || false ) >/dev/null 2>&1
212 - if ! eend $?; then
213 - eerror "64-bit wine cannot be built with gcc-5.1 or initial patchset of 5.2.0"
214 - eerror "due to compiler bugs; please re-emerge the latest gcc-5.2.x ebuild,"
215 - eerror "or use gcc-config to select a different compiler version."
216 - eerror "See https://bugs.gentoo.org/549768"
217 - eerror
218 - return 1
219 - fi
220 - fi
221 - # bug #574044
222 - if use abi_x86_64 && [[ $(gcc-major-version) = 5 && $(gcc-minor-version) = 3 ]]; then
223 - ebegin "Checking for gcc-5-3 stack realignment compiler bug"
224 - # Compile in subshell to prevent "Aborted" message
225 - ( $(tc-getCC) -O2 -mincoming-stack-boundary=3 "${PATCHDIR}/files/pr69140.c" -o "${T}"/pr69140 ) >/dev/null 2>&1
226 - if ! eend $?; then
227 - eerror "Wine cannot be built with this version of gcc-5.3"
228 - eerror "due to compiler bugs; please re-emerge the latest gcc-5.3.x ebuild,"
229 - eerror "or use gcc-config to select a different compiler version."
230 - eerror "See https://bugs.gentoo.org/574044"
231 - eerror
232 - return 1
233 - fi
234 - fi
235 - fi
236 -
237 - # Ensure compiler support
238 - if use abi_x86_64; then
239 - ebegin "Checking for 64-bit compiler with builtin_ms_va_list support"
240 - # Compile in subshell to prevent "Aborted" message
241 - ( $(tc-getCC) -O2 "${PATCHDIR}/files/builtin_ms_va_list.c" -o "${T}"/builtin_ms_va_list >/dev/null 2>&1)
242 - if ! eend $?; then
243 - eerror "This version of $(tc-getCC) does not support builtin_ms_va_list, can't enable 64-bit wine"
244 - eerror
245 - eerror "You need gcc-4.4+ or clang 3.8+ to build 64-bit wine"
246 - eerror
247 - return 1
248 - fi
249 - fi
250 -}
251 -
252 -wine_build_environment_check() {
253 - [[ ${MERGE_TYPE} = "binary" ]] && return 0
254 -
255 - if use abi_x86_64; then
256 - if tc-is-gcc && [[ $(gcc-major-version) -lt 4 || ( $(gcc-major-version) -eq 4 && $(gcc-minor-version) -lt 4 ) ]]; then
257 - eerror "You need gcc-4.4+ to compile 64-bit wine"
258 - die
259 - elif tc-is-clang && [[ $(clang-major-version) -lt 3 || ( $(clang-major-version) -eq 3 && $(clang-minor-version) -lt 8 ) ]]; then
260 - eerror "You need clang-3.8+ to compile 64-bit wine"
261 - die
262 - fi
263 - fi
264 - if tc-is-gcc && [[ $(gcc-major-version) -eq 5 && $(gcc-minor-version) -le 3 ]]; then
265 - ewarn "GCC-5.0-5.3 suffered from compiler bugs and are no longer supported by"
266 - ewarn "Gentoo's Toolchain Team. If your ebuild fails the compiler checks in"
267 - ewarn "the configure phase, either update your compiler or switch to <5.0 || >=5.4"
268 - fi
269 - if tc-is-gcc && [[ $(gcc-major-version) -eq 5 && $(gcc-minor-version) -eq 4 ]]; then
270 - if has "-march=i686" ${CFLAGS} && ! has "-mtune=generic" ${CFLAGS}; then
271 - ewarn "Compilation can hang with CFLAGS=\"-march=i686\". You can temporarily work"
272 - ewarn "around this by adding \"-mtune=generic\" to your CFLAGS for wine."
273 - ewarn "See package.env in man 5 portage for more information on how to do this."
274 - ewarn "See https://bugs.gentoo.org/show_bug.cgi?id=613128 for more details"
275 - fi
276 - fi
277 -
278 - if use abi_x86_32 && use opencl && [[ "$(eselect opencl show 2> /dev/null)" == "intel" ]]; then
279 - eerror "You cannot build wine with USE=opencl because intel-ocl-sdk is 64-bit only."
280 - eerror "See https://bugs.gentoo.org/487864 for more details."
281 - eerror
282 - return 1
283 - fi
284 -}
285 -
286 -wine_env_vcs_vars() {
287 - local pn_live_var="${PN//[-+]/_}_LIVE_COMMIT"
288 - local pn_live_val="${pn_live_var}"
289 - eval pn_live_val='$'${pn_live_val}
290 - if [[ ! -z ${pn_live_val} ]]; then
291 - if use staging; then
292 - eerror "Because of the multi-repo nature of ${MY_PN}, ${pn_live_var}"
293 - eerror "cannot be used to set the commit. Instead, you may use the"
294 - eerror "environment variables:"
295 - eerror " EGIT_OVERRIDE_COMMIT_WINE"
296 - eerror " EGIT_OVERRIDE_COMMIT_WINE_STAGING_WINE_STAGING"
297 - eerror
298 - return 1
299 - fi
300 - fi
301 - if [[ ! -z ${EGIT_COMMIT} ]]; then
302 - eerror "Commits must now be specified using the environment variables:"
303 - eerror " EGIT_OVERRIDE_COMMIT_WINE"
304 - eerror " EGIT_OVERRIDE_COMMIT_WINE_STAGING_WINE_STAGING"
305 - eerror
306 - return 1
307 - fi
308 -}
309 -
310 -pkg_pretend() {
311 - wine_build_environment_check || die
312 -
313 - # Verify OSS support
314 - if use oss && ! use kernel_FreeBSD; then
315 - if ! has_version ">=media-sound/oss-4"; then
316 - eerror "You cannot build wine with USE=oss without having support from a"
317 - eerror "FreeBSD kernel or >=media-sound/oss-4 (only available through external repos)"
318 - eerror
319 - die
320 - fi
321 - fi
322 -
323 - if use mingw && use abi_x86_32 && ! has_version "cross-i686-w64-mingw32/gcc"; then
324 - eerror
325 - eerror "USE=\"mingw\" is currently experimental, and requires the"
326 - eerror "'cross-i686-w64-mingw32' compiler and its runtime for 32-bit builds."
327 - eerror
328 - eerror "These can be installed by using 'sys-devel/crossdev':"
329 - eerror
330 - eerror "crossdev --target i686-w64-mingw32"
331 - eerror
332 - eerror "For more information on setting up MinGW, see: https://wiki.gentoo.org/wiki/Mingw"
333 - eerror
334 - die "MinGW build was enabled, but no compiler to support it was found."
335 - fi
336 -
337 - if use mingw && use abi_x86_64 && ! has_version "cross-x86_64-w64-mingw32/gcc"; then
338 - eerror
339 - eerror "USE=\"mingw\" is currently experimental, and requires the"
340 - eerror "'cross-x86_64-w64-mingw32' compiler and its runtime for 64-bit builds."
341 - eerror
342 - eerror "These can be installed by using 'sys-devel/crossdev':"
343 - eerror
344 - eerror "crossdev --target x86_64-w64-mingw32"
345 - eerror
346 - eerror "For more information on setting up MinGW, see: https://wiki.gentoo.org/wiki/Mingw"
347 - eerror
348 - die "MinGW build was enabled, but no compiler to support it was found."
349 - fi
350 -}
351 -
352 -pkg_setup() {
353 - wine_build_environment_check || die
354 - wine_env_vcs_vars || die
355 -
356 - WINE_VARIANT="${PN#wine}-${PV}"
357 - WINE_VARIANT="${WINE_VARIANT#-}"
358 -
359 - MY_PREFIX="${EPREFIX}/usr/lib/wine-${WINE_VARIANT}"
360 - MY_DATAROOTDIR="${EPREFIX}/usr/share/wine-${WINE_VARIANT}"
361 - MY_DATADIR="${MY_DATAROOTDIR}"
362 - MY_DOCDIR="${EPREFIX}/usr/share/doc/${PF}"
363 - MY_INCLUDEDIR="${EPREFIX}/usr/include/wine-${WINE_VARIANT}"
364 - MY_LIBEXECDIR="${EPREFIX}/usr/libexec/wine-${WINE_VARIANT}"
365 - MY_LOCALSTATEDIR="${EPREFIX}/var/wine-${WINE_VARIANT}"
366 - MY_MANDIR="${MY_DATADIR}/man"
367 -}
368 -
369 -src_unpack() {
370 - if [[ ${PV} == "9999" ]] ; then
371 - EGIT_CHECKOUT_DIR="${S}" git-r3_src_unpack
372 - if use staging; then
373 - local CURRENT_WINE_COMMIT=${EGIT_VERSION}
374 -
375 - EGIT_CHECKOUT_DIR="${STAGING_DIR}" EGIT_REPO_URI="${STAGING_EGIT_REPO_URI}" git-r3_src_unpack
376 -
377 - local COMPAT_WINE_COMMIT=$("${STAGING_DIR}/patches/patchinstall.sh" --upstream-commit) || die
378 -
379 - if [[ "${CURRENT_WINE_COMMIT}" != "${COMPAT_WINE_COMMIT}" ]]; then
380 - einfo "The current Staging patchset is not guaranteed to apply on this WINE commit."
381 - einfo "If src_prepare fails, try emerging with the env var WINE_COMMIT."
382 - einfo "Example: EGIT_OVERRIDE_COMMIT_WINE=${COMPAT_WINE_COMMIT} emerge -1 wine"
383 - fi
384 - fi
385 - fi
386 -
387 - default
388 -
389 - l10n_find_plocales_changes "${S}/po" "" ".po"
390 -}
391 -
392 -src_prepare() {
393 -
394 - eapply_bin(){
395 - local patch
396 - for patch in ${PATCHES_BIN[@]}; do
397 - patchbin --nogit < "${patch}" || die
398 - done
399 - }
400 -
401 - local md5="$(md5sum server/protocol.def)"
402 -
403 - if use staging; then
404 - ewarn "Applying the Wine-Staging patchset. Any bug reports to the"
405 - ewarn "Wine bugzilla should explicitly state that staging was used."
406 -
407 - local STAGING_EXCLUDE="-W winemenubuilder-Desktop_Icon_Path" #652176
408 - use pipelight || STAGING_EXCLUDE="${STAGING_EXCLUDE} -W Pipelight"
409 -
410 - # Launch wine-staging patcher in a subshell, using eapply as a backend, and gitapply.sh as a backend for binary patches
411 - ebegin "Running Wine-Staging patch installer"
412 - (
413 - set -- DESTDIR="${S}" --backend=eapply --no-autoconf --all ${STAGING_EXCLUDE}
414 - cd "${STAGING_DIR}/patches"
415 - source "${STAGING_DIR}/patches/patchinstall.sh"
416 - )
417 - eend $? || die "Failed to apply Wine-Staging patches"
418 - fi
419 -
420 - default
421 - eapply_bin
422 - eautoreconf
423 -
424 - # Modification of the server protocol requires regenerating the server requests
425 - if [[ "$(md5sum server/protocol.def)" != "${md5}" ]]; then
426 - einfo "server/protocol.def was patched; running tools/make_requests"
427 - tools/make_requests || die #432348
428 - fi
429 - sed -i '/^UPDATE_DESKTOP_DATABASE/s:=.*:=true:' tools/Makefile.in || die
430 - if ! use run-exes; then
431 - sed -i '/^MimeType/d' loader/wine.desktop || die #117785
432 - fi
433 -
434 - # Edit wine.desktop to work for specific variant
435 - sed -e "/^Exec=/s/wine /wine-${WINE_VARIANT} /" -i loader/wine.desktop || die
436 -
437 - # hi-res default icon, #472990, https://bugs.winehq.org/show_bug.cgi?id=24652
438 - cp "${PATCHDIR}/files/oic_winlogo.ico" dlls/user32/resources/ || die
439 -
440 - l10n_get_locales > po/LINGUAS || die # otherwise wine doesn't respect LINGUAS
441 -
442 - # Fix manpage generation for locales #469418 and abi_x86_64 #617864
443 -
444 - # Duplicate manpages input files for wine64
445 - local f
446 - for f in loader/*.man.in; do
447 - cp ${f} ${f/wine/wine64} || die
448 - done
449 - # Add wine64 manpages to Makefile
450 - if use abi_x86_64; then
451 - sed -i "/wine.man.in/i \
452 - \\\twine64.man.in \\\\" loader/Makefile.in || die
453 - sed -i -E 's/(.*wine)(.*\.UTF-8\.man\.in.*)/&\
454 -\164\2/' loader/Makefile.in || die
455 - fi
456 -
457 - rm_man_file(){
458 - local file="${1}"
459 - loc=${2}
460 - sed -i "/${loc}\.UTF-8\.man\.in/d" "${file}" || die
461 - }
462 -
463 - while read f; do
464 - l10n_for_each_disabled_locale_do rm_man_file "${f}"
465 - done < <(find -name "Makefile.in" -exec grep -q "UTF-8.man.in" "{}" \; -print)
466 -}
467 -
468 -src_configure() {
469 - wine_compiler_check || die
470 -
471 - export LDCONFIG=/bin/true
472 - use custom-cflags || strip-flags
473 -
474 - multilib-minimal_src_configure
475 -}
476 -
477 -multilib_src_configure() {
478 - local myconf=(
479 - --prefix="${MY_PREFIX}"
480 - --datarootdir="${MY_DATAROOTDIR}"
481 - --datadir="${MY_DATADIR}"
482 - --docdir="${MY_DOCDIR}"
483 - --includedir="${MY_INCLUDEDIR}"
484 - --libdir="${EPREFIX}/usr/$(get_libdir)/wine-${WINE_VARIANT}"
485 - --libexecdir="${MY_LIBEXECDIR}"
486 - --localstatedir="${MY_LOCALSTATEDIR}"
487 - --mandir="${MY_MANDIR}"
488 - --sysconfdir="${EPREFIX}/etc/wine"
489 - $(use_with alsa)
490 - $(use_with capi)
491 - $(use_with lcms cms)
492 - $(use_with cups)
493 - $(use_with ncurses curses)
494 - $(use_with udisks dbus)
495 - $(use_with faudio)
496 - $(use_with fontconfig)
497 - $(use_with ssl gnutls)
498 - $(use_enable gecko mshtml)
499 - $(use_with gcrypt)
500 - $(use_with gphoto2 gphoto)
501 - $(use_with gsm)
502 - $(use_with gssapi)
503 - $(use_with gstreamer)
504 - --without-hal
505 - $(use_with jpeg)
506 - $(use_with kerberos krb5)
507 - $(use_with ldap)
508 - # TODO: Will bug 685172 still need special handling?
509 - $(use_with mingw)
510 - $(use_enable mono mscoree)
511 - $(use_with mp3 mpg123)
512 - $(use_with netapi)
513 - $(use_with nls gettext)
514 - $(use_with openal)
515 - $(use_with opencl)
516 - $(use_with opengl)
517 - $(use_with osmesa)
518 - $(use_with oss)
519 - $(use_with pcap)
520 - $(use_with png)
521 - $(use_with pulseaudio pulse)
522 - $(use_with threads pthread)
523 - $(use_with scanner sane)
524 - $(use_with sdl)
525 - $(use_enable test tests)
526 - $(use_with truetype freetype)
527 - $(use_with udev)
528 - $(use_with unwind)
529 - $(use_with v4l v4l2)
530 - $(use_with vkd3d)
531 - $(use_with vulkan)
532 - $(use_with X x)
533 - $(use_with X xfixes)
534 - $(use_with xcomposite)
535 - $(use_with xinerama)
536 - $(use_with xml)
537 - $(use_with xml xslt)
538 - )
539 -
540 - use staging && myconf+=(
541 - --with-xattr
542 - $(use_with themes gtk3)
543 - $(use_with vaapi va)
544 - )
545 -
546 - local PKG_CONFIG AR RANLIB
547 - # Avoid crossdev's i686-pc-linux-gnu-pkg-config if building wine32 on amd64; #472038
548 - # set AR and RANLIB to make QA scripts happy; #483342
549 - tc-export PKG_CONFIG AR RANLIB
550 -
551 - if use amd64; then
552 - if [[ ${ABI} == amd64 ]]; then
553 - myconf+=( --enable-win64 )
554 - else
555 - myconf+=( --disable-win64 )
556 - fi
557 -
558 - # Note: using --with-wine64 results in problems with multilib.eclass
559 - # CC/LD hackery. We're using separate tools instead.
560 - fi
561 -
562 - ECONF_SOURCE=${S} \
563 - econf "${myconf[@]}"
564 - emake depend
565 -}
566 -
567 -multilib_src_test() {
568 - # FIXME: win32-only; wine64 tests fail with "could not find the Wine loader"
569 - if [[ ${ABI} == x86 ]]; then
570 - if [[ $(id -u) == 0 ]]; then
571 - ewarn "Skipping tests since they cannot be run under the root user."
572 - ewarn "To run the test ${MY_PN} suite, add userpriv to FEATURES in make.conf"
573 - return
574 - fi
575 -
576 - WINEPREFIX="${T}/.wine-${ABI}" \
577 - Xemake test
578 - fi
579 -}
580 -
581 -multilib_src_install_all() {
582 - local DOCS=( ANNOUNCE AUTHORS README )
583 - add_locale_docs() {
584 - local locale_doc="documentation/README.$1"
585 - [[ ! -e ${locale_doc} ]] || DOCS+=( ${locale_doc} )
586 - }
587 - l10n_for_each_locale_do add_locale_docs
588 -
589 - einstalldocs
590 - prune_libtool_files --all
591 -
592 - if ! use perl ; then # winedump calls function_grep.pl, and winemaker is a perl script
593 - rm "${D%/}${MY_PREFIX}"/bin/{wine{dump,maker},function_grep.pl} \
594 - "${D%/}${MY_MANDIR}"/man1/wine{dump,maker}.1 || die
595 - fi
596 -
597 - # Remove wineconsole if neither backend is installed #551124
598 - if ! use X && ! use ncurses; then
599 - rm "${D%/}${MY_PREFIX}"/bin/wineconsole* || die
600 - rm "${D%/}${MY_MANDIR}"/man1/wineconsole* || die
601 - rm_wineconsole() {
602 - rm "${D%/}${MY_PREFIX}/$(get_libdir)"/wine/{,fakedlls/}wineconsole.exe* || die
603 - }
604 - multilib_foreach_abi rm_wineconsole
605 - fi
606 -
607 - use abi_x86_32 && pax-mark psmr "${D%/}${MY_PREFIX}"/bin/wine{,-preloader} #255055
608 - use abi_x86_64 && pax-mark psmr "${D%/}${MY_PREFIX}"/bin/wine64{,-preloader}
609 -
610 - # Avoid double prefix from dosym and make_wrapper
611 - MY_PREFIX=${MY_PREFIX#${EPREFIX}}
612 -
613 - if use abi_x86_64 && ! use abi_x86_32; then
614 - dosym wine64 "${MY_PREFIX}"/bin/wine # 404331
615 - dosym wine64-preloader "${MY_PREFIX}"/bin/wine-preloader
616 - fi
617 -
618 - # Failglob for binloops, shouldn't be necessary, but including to stay safe
619 - eshopts_push -s failglob #615218
620 - # Make wrappers for binaries for handling multiple variants
621 - # Note: wrappers instead of symlinks because some are shell which use basename
622 - local b
623 - for b in "${ED%/}${MY_PREFIX}"/bin/*; do
624 - make_wrapper "${b##*/}-${WINE_VARIANT}" "${MY_PREFIX}/bin/${b##*/}"
625 - done
626 - eshopts_pop
627 -}
628 -
629 -pkg_postinst() {
630 - eselect wine register ${P}
631 - if [[ ${PN} == "wine-vanilla" ]]; then
632 - eselect wine register --vanilla ${P} || die
633 - else
634 - if use staging; then
635 - eselect wine register --staging ${P} || die
636 - fi
637 - fi
638 -
639 - eselect wine update --all --if-unset || die
640 -
641 - xdg_desktop_database_update
642 -
643 - if ! use gecko; then
644 - ewarn "Without Wine Gecko, wine prefixes will not have a default"
645 - ewarn "implementation of iexplore. Many older windows applications"
646 - ewarn "rely upon the existence of an iexplore implementation, so"
647 - ewarn "you will likely need to install an external one, like via winetricks"
648 - fi
649 - if ! use mono; then
650 - ewarn "Without Wine Mono, wine prefixes will not have a default"
651 - ewarn "implementation of .NET. Many windows applications rely upon"
652 - ewarn "the existence of a .NET implementation, so you will likely need"
653 - ewarn "to install an external one, like via winetricks"
654 - fi
655 -}
656 -
657 -pkg_prerm() {
658 - eselect wine deregister ${P}
659 - if [[ ${PN} == "wine-vanilla" ]]; then
660 - eselect wine deregister --vanilla ${P} || die
661 - else
662 - if use staging; then
663 - eselect wine deregister --staging ${P} || die
664 - fi
665 - fi
666 -
667 - eselect wine update --all --if-unset || die
668 -}
669 -
670 -pkg_postrm() {
671 - xdg_desktop_database_update
672 -}
673
674 diff --git a/app-emulation/wine-staging/wine-staging-5.22.ebuild b/app-emulation/wine-staging/wine-staging-5.22.ebuild
675 deleted file mode 100644
676 index 9c6e2a76fa3..00000000000
677 --- a/app-emulation/wine-staging/wine-staging-5.22.ebuild
678 +++ /dev/null
679 @@ -1,621 +0,0 @@
680 -# Copyright 1999-2020 Gentoo Authors
681 -# Distributed under the terms of the GNU General Public License v2
682 -
683 -EAPI=6
684 -
685 -PLOCALES="ar ast bg ca cs da de el en en_US eo es fa fi fr he hi hr hu it ja ko lt ml nb_NO nl or pa pl pt_BR pt_PT rm ro ru si sk sl sr_RS@cyrillic sr_RS@latin sv ta te th tr uk wa zh_CN zh_TW"
686 -PLOCALE_BACKUP="en"
687 -
688 -inherit autotools eapi7-ver estack eutils flag-o-matic gnome2-utils l10n multilib multilib-minimal pax-utils toolchain-funcs virtualx xdg-utils
689 -
690 -MY_PN="${PN%%-*}"
691 -MY_P="${MY_PN}-${PV}"
692 -
693 -if [[ ${PV} == "9999" ]] ; then
694 - EGIT_REPO_URI="https://source.winehq.org/git/wine.git"
695 - EGIT_BRANCH="master"
696 - inherit git-r3
697 - SRC_URI=""
698 - #KEYWORDS=""
699 -else
700 - MAJOR_V=$(ver_cut 1)
701 - SRC_URI="https://dl.winehq.org/wine/source/${MAJOR_V}.x/${MY_P}.tar.xz"
702 - KEYWORDS="-* ~amd64 ~x86"
703 -fi
704 -S="${WORKDIR}/${MY_P}"
705 -
706 -STAGING_P="wine-staging-${PV}"
707 -STAGING_DIR="${WORKDIR}/${STAGING_P}"
708 -GWP_V="20200523"
709 -PATCHDIR="${WORKDIR}/gentoo-wine-patches"
710 -
711 -DESCRIPTION="Free implementation of Windows(tm) on Unix, with Wine-Staging patchset"
712 -HOMEPAGE="https://www.winehq.org/"
713 -SRC_URI="${SRC_URI}
714 - https://dev.gentoo.org/~sarnex/distfiles/wine/gentoo-wine-patches-${GWP_V}.tar.xz
715 -"
716 -
717 -if [[ ${PV} == "9999" ]] ; then
718 - STAGING_EGIT_REPO_URI="https://github.com/wine-staging/wine-staging.git"
719 -else
720 - SRC_URI="${SRC_URI}
721 - staging? ( https://github.com/wine-staging/wine-staging/archive/v${PV}.tar.gz -> ${STAGING_P}.tar.gz )"
722 -fi
723 -
724 -LICENSE="LGPL-2.1"
725 -SLOT="${PV}"
726 -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"
727 -REQUIRED_USE="|| ( abi_x86_32 abi_x86_64 )
728 - X? ( truetype )
729 - elibc_glibc? ( threads )
730 - osmesa? ( opengl )
731 - pipelight? ( staging )
732 - test? ( abi_x86_32 )
733 - themes? ( staging )
734 - vaapi? ( staging )
735 - vkd3d? ( vulkan )" # osmesa-opengl #286560 # X-truetype #551124
736 -
737 -# FIXME: the test suite is unsuitable for us; many tests require net access
738 -# or fail due to Xvfb's opengl limitations.
739 -RESTRICT="test"
740 -
741 -COMMON_DEPEND="
742 - X? (
743 - x11-libs/libXcursor[${MULTILIB_USEDEP}]
744 - x11-libs/libXext[${MULTILIB_USEDEP}]
745 - x11-libs/libXfixes[${MULTILIB_USEDEP}]
746 - x11-libs/libXrandr[${MULTILIB_USEDEP}]
747 - x11-libs/libXi[${MULTILIB_USEDEP}]
748 - x11-libs/libXxf86vm[${MULTILIB_USEDEP}]
749 - )
750 - alsa? ( media-libs/alsa-lib[${MULTILIB_USEDEP}] )
751 - capi? ( net-libs/libcapi[${MULTILIB_USEDEP}] )
752 - cups? ( net-print/cups:=[${MULTILIB_USEDEP}] )
753 - faudio? ( app-emulation/faudio:=[${MULTILIB_USEDEP}] )
754 - fontconfig? ( media-libs/fontconfig:=[${MULTILIB_USEDEP}] )
755 - gcrypt? ( dev-libs/libgcrypt:=[${MULTILIB_USEDEP}] )
756 - gphoto2? ( media-libs/libgphoto2:=[${MULTILIB_USEDEP}] )
757 - gsm? ( media-sound/gsm:=[${MULTILIB_USEDEP}] )
758 - gssapi? ( virtual/krb5[${MULTILIB_USEDEP}] )
759 - gstreamer? (
760 - media-libs/gstreamer:1.0[${MULTILIB_USEDEP}]
761 - media-plugins/gst-plugins-meta:1.0[${MULTILIB_USEDEP}]
762 - )
763 - jpeg? ( virtual/jpeg:0=[${MULTILIB_USEDEP}] )
764 - kerberos? ( virtual/krb5:0=[${MULTILIB_USEDEP}] )
765 - lcms? ( media-libs/lcms:2=[${MULTILIB_USEDEP}] )
766 - ldap? ( net-nds/openldap:=[${MULTILIB_USEDEP}] )
767 - mp3? ( >=media-sound/mpg123-1.5.0[${MULTILIB_USEDEP}] )
768 - ncurses? ( >=sys-libs/ncurses-5.2:0=[${MULTILIB_USEDEP}] )
769 - netapi? ( net-fs/samba[netapi(+),${MULTILIB_USEDEP}] )
770 - nls? ( sys-devel/gettext[${MULTILIB_USEDEP}] )
771 - odbc? ( dev-db/unixODBC:=[${MULTILIB_USEDEP}] )
772 - openal? ( media-libs/openal:=[${MULTILIB_USEDEP}] )
773 - opencl? ( virtual/opencl[${MULTILIB_USEDEP}] )
774 - opengl? (
775 - virtual/glu[${MULTILIB_USEDEP}]
776 - virtual/opengl[${MULTILIB_USEDEP}]
777 - )
778 - osmesa? ( >=media-libs/mesa-13[osmesa,${MULTILIB_USEDEP}] )
779 - pcap? ( net-libs/libpcap[${MULTILIB_USEDEP}] )
780 - png? ( media-libs/libpng:0=[${MULTILIB_USEDEP}] )
781 - pulseaudio? ( media-sound/pulseaudio[${MULTILIB_USEDEP}] )
782 - scanner? ( media-gfx/sane-backends:=[${MULTILIB_USEDEP}] )
783 - sdl? ( media-libs/libsdl2:=[haptic,joystick,${MULTILIB_USEDEP}] )
784 - ssl? ( net-libs/gnutls:=[${MULTILIB_USEDEP}] )
785 - staging? ( sys-apps/attr[${MULTILIB_USEDEP}] )
786 - themes? (
787 - dev-libs/glib:2[${MULTILIB_USEDEP}]
788 - x11-libs/cairo[${MULTILIB_USEDEP}]
789 - x11-libs/gtk+:3[${MULTILIB_USEDEP}]
790 - )
791 - truetype? ( >=media-libs/freetype-2.0.0[${MULTILIB_USEDEP}] )
792 - udev? ( virtual/libudev:=[${MULTILIB_USEDEP}] )
793 - udisks? ( sys-apps/dbus[${MULTILIB_USEDEP}] )
794 - unwind? ( sys-libs/libunwind[${MULTILIB_USEDEP}] )
795 - v4l? ( media-libs/libv4l[${MULTILIB_USEDEP}] )
796 - vaapi? ( x11-libs/libva[X,${MULTILIB_USEDEP}] )
797 - vkd3d? ( >=app-emulation/vkd3d-1.2[${MULTILIB_USEDEP}] )
798 - vulkan? ( media-libs/vulkan-loader[${MULTILIB_USEDEP}] )
799 - xcomposite? ( x11-libs/libXcomposite[${MULTILIB_USEDEP}] )
800 - xinerama? ( x11-libs/libXinerama[${MULTILIB_USEDEP}] )
801 - xml? (
802 - dev-libs/libxml2[${MULTILIB_USEDEP}]
803 - dev-libs/libxslt[${MULTILIB_USEDEP}]
804 - )"
805 -
806 -RDEPEND="${COMMON_DEPEND}
807 - app-emulation/wine-desktop-common
808 - >app-eselect/eselect-wine-0.3
809 - !app-emulation/wine:0
810 - dos? ( >=games-emulation/dosbox-0.74_p20160629 )
811 - gecko? ( app-emulation/wine-gecko:2.47.1[abi_x86_32?,abi_x86_64?] )
812 - mono? ( app-emulation/wine-mono:5.1.1 )
813 - perl? (
814 - dev-lang/perl
815 - dev-perl/XML-Simple
816 - )
817 - pulseaudio? (
818 - realtime? ( sys-auth/rtkit )
819 - )
820 - samba? ( >=net-fs/samba-3.0.25[winbind] )
821 - selinux? ( sec-policy/selinux-wine )
822 - udisks? ( sys-fs/udisks:2 )"
823 -
824 -# tools/make_requests requires perl
825 -DEPEND="${COMMON_DEPEND}
826 - sys-devel/flex
827 - >=sys-kernel/linux-headers-2.6
828 - virtual/pkgconfig
829 - virtual/yacc
830 - X? ( x11-base/xorg-proto )
831 - prelink? ( sys-devel/prelink )
832 - staging? (
833 - dev-lang/perl
834 - dev-perl/XML-Simple
835 - )
836 - xinerama? ( x11-base/xorg-proto )"
837 -
838 -# These use a non-standard "Wine" category, which is provided by
839 -# /etc/xdg/applications-merged/wine.menu
840 -QA_DESKTOP_FILE="usr/share/applications/wine-browsedrive.desktop
841 -usr/share/applications/wine-notepad.desktop
842 -usr/share/applications/wine-uninstaller.desktop
843 -usr/share/applications/wine-winecfg.desktop"
844 -
845 -PATCHES=(
846 - "${PATCHDIR}/patches/${MY_PN}-5.0-winegcc.patch" #260726
847 - "${PATCHDIR}/patches/${MY_PN}-4.7-multilib-portage.patch" #395615
848 - "${PATCHDIR}/patches/${MY_PN}-2.0-multislot-apploader.patch" #310611
849 - "${PATCHDIR}/patches/${MY_PN}-5.9-Revert-makedep-Install-also-generated-typelib-for-in.patch"
850 -)
851 -PATCHES_BIN=()
852 -
853 -# https://bugs.gentoo.org/show_bug.cgi?id=635222
854 -if [[ ${#PATCHES_BIN[@]} -ge 1 ]] || [[ ${PV} == 9999 ]]; then
855 - DEPEND+=" dev-util/patchbin"
856 -fi
857 -
858 -wine_compiler_check() {
859 - [[ ${MERGE_TYPE} = "binary" ]] && return 0
860 -
861 - # GCC-specific bugs
862 - if tc-is-gcc; then
863 - # bug #549768
864 - if use abi_x86_64 && [[ $(gcc-major-version) = 5 && $(gcc-minor-version) -le 2 ]]; then
865 - ebegin "Checking for gcc-5 ms_abi compiler bug"
866 - $(tc-getCC) -O2 "${PATCHDIR}/files/pr66838.c" -o "${T}"/pr66838 || die
867 - # Run in subshell to prevent "Aborted" message
868 - ( "${T}"/pr66838 || false ) >/dev/null 2>&1
869 - if ! eend $?; then
870 - eerror "64-bit wine cannot be built with gcc-5.1 or initial patchset of 5.2.0"
871 - eerror "due to compiler bugs; please re-emerge the latest gcc-5.2.x ebuild,"
872 - eerror "or use gcc-config to select a different compiler version."
873 - eerror "See https://bugs.gentoo.org/549768"
874 - eerror
875 - return 1
876 - fi
877 - fi
878 - # bug #574044
879 - if use abi_x86_64 && [[ $(gcc-major-version) = 5 && $(gcc-minor-version) = 3 ]]; then
880 - ebegin "Checking for gcc-5-3 stack realignment compiler bug"
881 - # Compile in subshell to prevent "Aborted" message
882 - ( $(tc-getCC) -O2 -mincoming-stack-boundary=3 "${PATCHDIR}/files/pr69140.c" -o "${T}"/pr69140 ) >/dev/null 2>&1
883 - if ! eend $?; then
884 - eerror "Wine cannot be built with this version of gcc-5.3"
885 - eerror "due to compiler bugs; please re-emerge the latest gcc-5.3.x ebuild,"
886 - eerror "or use gcc-config to select a different compiler version."
887 - eerror "See https://bugs.gentoo.org/574044"
888 - eerror
889 - return 1
890 - fi
891 - fi
892 - fi
893 -
894 - # Ensure compiler support
895 - if use abi_x86_64; then
896 - ebegin "Checking for 64-bit compiler with builtin_ms_va_list support"
897 - # Compile in subshell to prevent "Aborted" message
898 - ( $(tc-getCC) -O2 "${PATCHDIR}/files/builtin_ms_va_list.c" -o "${T}"/builtin_ms_va_list >/dev/null 2>&1)
899 - if ! eend $?; then
900 - eerror "This version of $(tc-getCC) does not support builtin_ms_va_list, can't enable 64-bit wine"
901 - eerror
902 - eerror "You need gcc-4.4+ or clang 3.8+ to build 64-bit wine"
903 - eerror
904 - return 1
905 - fi
906 - fi
907 -}
908 -
909 -wine_build_environment_check() {
910 - [[ ${MERGE_TYPE} = "binary" ]] && return 0
911 -
912 - if use abi_x86_64; then
913 - if tc-is-gcc && [[ $(gcc-major-version) -lt 4 || ( $(gcc-major-version) -eq 4 && $(gcc-minor-version) -lt 4 ) ]]; then
914 - eerror "You need gcc-4.4+ to compile 64-bit wine"
915 - die
916 - elif tc-is-clang && [[ $(clang-major-version) -lt 3 || ( $(clang-major-version) -eq 3 && $(clang-minor-version) -lt 8 ) ]]; then
917 - eerror "You need clang-3.8+ to compile 64-bit wine"
918 - die
919 - fi
920 - fi
921 - if tc-is-gcc && [[ $(gcc-major-version) -eq 5 && $(gcc-minor-version) -le 3 ]]; then
922 - ewarn "GCC-5.0-5.3 suffered from compiler bugs and are no longer supported by"
923 - ewarn "Gentoo's Toolchain Team. If your ebuild fails the compiler checks in"
924 - ewarn "the configure phase, either update your compiler or switch to <5.0 || >=5.4"
925 - fi
926 - if tc-is-gcc && [[ $(gcc-major-version) -eq 5 && $(gcc-minor-version) -eq 4 ]]; then
927 - if has "-march=i686" ${CFLAGS} && ! has "-mtune=generic" ${CFLAGS}; then
928 - ewarn "Compilation can hang with CFLAGS=\"-march=i686\". You can temporarily work"
929 - ewarn "around this by adding \"-mtune=generic\" to your CFLAGS for wine."
930 - ewarn "See package.env in man 5 portage for more information on how to do this."
931 - ewarn "See https://bugs.gentoo.org/show_bug.cgi?id=613128 for more details"
932 - fi
933 - fi
934 -
935 - if use abi_x86_32 && use opencl && [[ "$(eselect opencl show 2> /dev/null)" == "intel" ]]; then
936 - eerror "You cannot build wine with USE=opencl because intel-ocl-sdk is 64-bit only."
937 - eerror "See https://bugs.gentoo.org/487864 for more details."
938 - eerror
939 - return 1
940 - fi
941 -}
942 -
943 -wine_env_vcs_vars() {
944 - local pn_live_var="${PN//[-+]/_}_LIVE_COMMIT"
945 - local pn_live_val="${pn_live_var}"
946 - eval pn_live_val='$'${pn_live_val}
947 - if [[ ! -z ${pn_live_val} ]]; then
948 - if use staging; then
949 - eerror "Because of the multi-repo nature of ${MY_PN}, ${pn_live_var}"
950 - eerror "cannot be used to set the commit. Instead, you may use the"
951 - eerror "environment variables:"
952 - eerror " EGIT_OVERRIDE_COMMIT_WINE"
953 - eerror " EGIT_OVERRIDE_COMMIT_WINE_STAGING_WINE_STAGING"
954 - eerror
955 - return 1
956 - fi
957 - fi
958 - if [[ ! -z ${EGIT_COMMIT} ]]; then
959 - eerror "Commits must now be specified using the environment variables:"
960 - eerror " EGIT_OVERRIDE_COMMIT_WINE"
961 - eerror " EGIT_OVERRIDE_COMMIT_WINE_STAGING_WINE_STAGING"
962 - eerror
963 - return 1
964 - fi
965 -}
966 -
967 -pkg_pretend() {
968 - wine_build_environment_check || die
969 -
970 - # Verify OSS support
971 - if use oss && ! use kernel_FreeBSD; then
972 - if ! has_version ">=media-sound/oss-4"; then
973 - eerror "You cannot build wine with USE=oss without having support from a"
974 - eerror "FreeBSD kernel or >=media-sound/oss-4 (only available through external repos)"
975 - eerror
976 - die
977 - fi
978 - fi
979 -}
980 -
981 -pkg_setup() {
982 - wine_build_environment_check || die
983 - wine_env_vcs_vars || die
984 -
985 - WINE_VARIANT="${PN#wine}-${PV}"
986 - WINE_VARIANT="${WINE_VARIANT#-}"
987 -
988 - MY_PREFIX="${EPREFIX}/usr/lib/wine-${WINE_VARIANT}"
989 - MY_DATAROOTDIR="${EPREFIX}/usr/share/wine-${WINE_VARIANT}"
990 - MY_DATADIR="${MY_DATAROOTDIR}"
991 - MY_DOCDIR="${EPREFIX}/usr/share/doc/${PF}"
992 - MY_INCLUDEDIR="${EPREFIX}/usr/include/wine-${WINE_VARIANT}"
993 - MY_LIBEXECDIR="${EPREFIX}/usr/libexec/wine-${WINE_VARIANT}"
994 - MY_LOCALSTATEDIR="${EPREFIX}/var/wine-${WINE_VARIANT}"
995 - MY_MANDIR="${MY_DATADIR}/man"
996 -}
997 -
998 -src_unpack() {
999 - if [[ ${PV} == "9999" ]] ; then
1000 - EGIT_CHECKOUT_DIR="${S}" git-r3_src_unpack
1001 - if use staging; then
1002 - local CURRENT_WINE_COMMIT=${EGIT_VERSION}
1003 -
1004 - EGIT_CHECKOUT_DIR="${STAGING_DIR}" EGIT_REPO_URI="${STAGING_EGIT_REPO_URI}" git-r3_src_unpack
1005 -
1006 - local COMPAT_WINE_COMMIT=$("${STAGING_DIR}/patches/patchinstall.sh" --upstream-commit) || die
1007 -
1008 - if [[ "${CURRENT_WINE_COMMIT}" != "${COMPAT_WINE_COMMIT}" ]]; then
1009 - einfo "The current Staging patchset is not guaranteed to apply on this WINE commit."
1010 - einfo "If src_prepare fails, try emerging with the env var WINE_COMMIT."
1011 - einfo "Example: EGIT_OVERRIDE_COMMIT_WINE=${COMPAT_WINE_COMMIT} emerge -1 wine"
1012 - fi
1013 - fi
1014 - fi
1015 -
1016 - default
1017 -
1018 - l10n_find_plocales_changes "${S}/po" "" ".po"
1019 -}
1020 -
1021 -src_prepare() {
1022 -
1023 - eapply_bin(){
1024 - local patch
1025 - for patch in ${PATCHES_BIN[@]}; do
1026 - patchbin --nogit < "${patch}" || die
1027 - done
1028 - }
1029 -
1030 - local md5="$(md5sum server/protocol.def)"
1031 -
1032 - if use staging; then
1033 - ewarn "Applying the Wine-Staging patchset. Any bug reports to the"
1034 - ewarn "Wine bugzilla should explicitly state that staging was used."
1035 -
1036 - local STAGING_EXCLUDE="-W winemenubuilder-Desktop_Icon_Path" #652176
1037 - use pipelight || STAGING_EXCLUDE="${STAGING_EXCLUDE} -W Pipelight"
1038 -
1039 - # Launch wine-staging patcher in a subshell, using eapply as a backend, and gitapply.sh as a backend for binary patches
1040 - ebegin "Running Wine-Staging patch installer"
1041 - (
1042 - set -- DESTDIR="${S}" --backend=eapply --no-autoconf --all ${STAGING_EXCLUDE}
1043 - cd "${STAGING_DIR}/patches"
1044 - source "${STAGING_DIR}/patches/patchinstall.sh"
1045 - )
1046 - eend $? || die "Failed to apply Wine-Staging patches"
1047 - fi
1048 -
1049 - default
1050 - eapply_bin
1051 - eautoreconf
1052 -
1053 - # Modification of the server protocol requires regenerating the server requests
1054 - if [[ "$(md5sum server/protocol.def)" != "${md5}" ]]; then
1055 - einfo "server/protocol.def was patched; running tools/make_requests"
1056 - tools/make_requests || die #432348
1057 - fi
1058 - sed -i '/^UPDATE_DESKTOP_DATABASE/s:=.*:=true:' tools/Makefile.in || die
1059 - if ! use run-exes; then
1060 - sed -i '/^MimeType/d' loader/wine.desktop || die #117785
1061 - fi
1062 -
1063 - # Edit wine.desktop to work for specific variant
1064 - sed -e "/^Exec=/s/wine /wine-${WINE_VARIANT} /" -i loader/wine.desktop || die
1065 -
1066 - # hi-res default icon, #472990, https://bugs.winehq.org/show_bug.cgi?id=24652
1067 - cp "${PATCHDIR}/files/oic_winlogo.ico" dlls/user32/resources/ || die
1068 -
1069 - l10n_get_locales > po/LINGUAS || die # otherwise wine doesn't respect LINGUAS
1070 -
1071 - # Fix manpage generation for locales #469418 and abi_x86_64 #617864
1072 -
1073 - # Duplicate manpages input files for wine64
1074 - local f
1075 - for f in loader/*.man.in; do
1076 - cp ${f} ${f/wine/wine64} || die
1077 - done
1078 - # Add wine64 manpages to Makefile
1079 - if use abi_x86_64; then
1080 - sed -i "/wine.man.in/i \
1081 - \\\twine64.man.in \\\\" loader/Makefile.in || die
1082 - sed -i -E 's/(.*wine)(.*\.UTF-8\.man\.in.*)/&\
1083 -\164\2/' loader/Makefile.in || die
1084 - fi
1085 -
1086 - rm_man_file(){
1087 - local file="${1}"
1088 - loc=${2}
1089 - sed -i "/${loc}\.UTF-8\.man\.in/d" "${file}" || die
1090 - }
1091 -
1092 - while read f; do
1093 - l10n_for_each_disabled_locale_do rm_man_file "${f}"
1094 - done < <(find -name "Makefile.in" -exec grep -q "UTF-8.man.in" "{}" \; -print)
1095 -}
1096 -
1097 -src_configure() {
1098 - wine_compiler_check || die
1099 -
1100 - export LDCONFIG=/bin/true
1101 - use custom-cflags || strip-flags
1102 -
1103 - multilib-minimal_src_configure
1104 -}
1105 -
1106 -multilib_src_configure() {
1107 - local myconf=(
1108 - --prefix="${MY_PREFIX}"
1109 - --datarootdir="${MY_DATAROOTDIR}"
1110 - --datadir="${MY_DATADIR}"
1111 - --docdir="${MY_DOCDIR}"
1112 - --includedir="${MY_INCLUDEDIR}"
1113 - --libdir="${EPREFIX}/usr/$(get_libdir)/wine-${WINE_VARIANT}"
1114 - --libexecdir="${MY_LIBEXECDIR}"
1115 - --localstatedir="${MY_LOCALSTATEDIR}"
1116 - --mandir="${MY_MANDIR}"
1117 - --sysconfdir="${EPREFIX}/etc/wine"
1118 - $(use_with alsa)
1119 - $(use_with capi)
1120 - $(use_with lcms cms)
1121 - $(use_with cups)
1122 - $(use_with ncurses curses)
1123 - $(use_with udisks dbus)
1124 - $(use_with faudio)
1125 - $(use_with fontconfig)
1126 - $(use_with ssl gnutls)
1127 - $(use_enable gecko mshtml)
1128 - $(use_with gcrypt)
1129 - $(use_with gphoto2 gphoto)
1130 - $(use_with gsm)
1131 - $(use_with gssapi)
1132 - $(use_with gstreamer)
1133 - --without-hal
1134 - $(use_with jpeg)
1135 - $(use_with kerberos krb5)
1136 - $(use_with ldap)
1137 - --without-mingw # linux LDFLAGS leak in mingw32: bug #685172
1138 - $(use_enable mono mscoree)
1139 - $(use_with mp3 mpg123)
1140 - $(use_with netapi)
1141 - $(use_with nls gettext)
1142 - $(use_with openal)
1143 - $(use_with opencl)
1144 - $(use_with opengl)
1145 - $(use_with osmesa)
1146 - $(use_with oss)
1147 - $(use_with pcap)
1148 - $(use_with png)
1149 - $(use_with pulseaudio pulse)
1150 - $(use_with threads pthread)
1151 - $(use_with scanner sane)
1152 - $(use_with sdl)
1153 - $(use_enable test tests)
1154 - $(use_with truetype freetype)
1155 - $(use_with udev)
1156 - $(use_with unwind)
1157 - $(use_with v4l v4l2)
1158 - $(use_with vkd3d)
1159 - $(use_with vulkan)
1160 - $(use_with X x)
1161 - $(use_with X xfixes)
1162 - $(use_with xcomposite)
1163 - $(use_with xinerama)
1164 - $(use_with xml)
1165 - $(use_with xml xslt)
1166 - )
1167 -
1168 - use staging && myconf+=(
1169 - --with-xattr
1170 - $(use_with themes gtk3)
1171 - $(use_with vaapi va)
1172 - )
1173 -
1174 - local PKG_CONFIG AR RANLIB
1175 - # Avoid crossdev's i686-pc-linux-gnu-pkg-config if building wine32 on amd64; #472038
1176 - # set AR and RANLIB to make QA scripts happy; #483342
1177 - tc-export PKG_CONFIG AR RANLIB
1178 -
1179 - if use amd64; then
1180 - if [[ ${ABI} == amd64 ]]; then
1181 - myconf+=( --enable-win64 )
1182 - else
1183 - myconf+=( --disable-win64 )
1184 - fi
1185 -
1186 - # Note: using --with-wine64 results in problems with multilib.eclass
1187 - # CC/LD hackery. We're using separate tools instead.
1188 - fi
1189 -
1190 - ECONF_SOURCE=${S} \
1191 - econf "${myconf[@]}"
1192 - emake depend
1193 -}
1194 -
1195 -multilib_src_test() {
1196 - # FIXME: win32-only; wine64 tests fail with "could not find the Wine loader"
1197 - if [[ ${ABI} == x86 ]]; then
1198 - if [[ $(id -u) == 0 ]]; then
1199 - ewarn "Skipping tests since they cannot be run under the root user."
1200 - ewarn "To run the test ${MY_PN} suite, add userpriv to FEATURES in make.conf"
1201 - return
1202 - fi
1203 -
1204 - WINEPREFIX="${T}/.wine-${ABI}" \
1205 - Xemake test
1206 - fi
1207 -}
1208 -
1209 -multilib_src_install_all() {
1210 - local DOCS=( ANNOUNCE AUTHORS README )
1211 - add_locale_docs() {
1212 - local locale_doc="documentation/README.$1"
1213 - [[ ! -e ${locale_doc} ]] || DOCS+=( ${locale_doc} )
1214 - }
1215 - l10n_for_each_locale_do add_locale_docs
1216 -
1217 - einstalldocs
1218 - prune_libtool_files --all
1219 -
1220 - if ! use perl ; then # winedump calls function_grep.pl, and winemaker is a perl script
1221 - rm "${D%/}${MY_PREFIX}"/bin/{wine{dump,maker},function_grep.pl} \
1222 - "${D%/}${MY_MANDIR}"/man1/wine{dump,maker}.1 || die
1223 - fi
1224 -
1225 - # Remove wineconsole if neither backend is installed #551124
1226 - if ! use X && ! use ncurses; then
1227 - rm "${D%/}${MY_PREFIX}"/bin/wineconsole* || die
1228 - rm "${D%/}${MY_MANDIR}"/man1/wineconsole* || die
1229 - rm_wineconsole() {
1230 - rm "${D%/}${MY_PREFIX}/$(get_libdir)"/wine/{,fakedlls/}wineconsole.exe* || die
1231 - }
1232 - multilib_foreach_abi rm_wineconsole
1233 - fi
1234 -
1235 - use abi_x86_32 && pax-mark psmr "${D%/}${MY_PREFIX}"/bin/wine{,-preloader} #255055
1236 - use abi_x86_64 && pax-mark psmr "${D%/}${MY_PREFIX}"/bin/wine64{,-preloader}
1237 -
1238 - # Avoid double prefix from dosym and make_wrapper
1239 - MY_PREFIX=${MY_PREFIX#${EPREFIX}}
1240 -
1241 - if use abi_x86_64 && ! use abi_x86_32; then
1242 - dosym wine64 "${MY_PREFIX}"/bin/wine # 404331
1243 - dosym wine64-preloader "${MY_PREFIX}"/bin/wine-preloader
1244 - fi
1245 -
1246 - # Failglob for binloops, shouldn't be necessary, but including to stay safe
1247 - eshopts_push -s failglob #615218
1248 - # Make wrappers for binaries for handling multiple variants
1249 - # Note: wrappers instead of symlinks because some are shell which use basename
1250 - local b
1251 - for b in "${ED%/}${MY_PREFIX}"/bin/*; do
1252 - make_wrapper "${b##*/}-${WINE_VARIANT}" "${MY_PREFIX}/bin/${b##*/}"
1253 - done
1254 - eshopts_pop
1255 -}
1256 -
1257 -pkg_postinst() {
1258 - eselect wine register ${P}
1259 - if [[ ${PN} == "wine-vanilla" ]]; then
1260 - eselect wine register --vanilla ${P} || die
1261 - else
1262 - if use staging; then
1263 - eselect wine register --staging ${P} || die
1264 - fi
1265 - fi
1266 -
1267 - eselect wine update --all --if-unset || die
1268 -
1269 - xdg_desktop_database_update
1270 -
1271 - if ! use gecko; then
1272 - ewarn "Without Wine Gecko, wine prefixes will not have a default"
1273 - ewarn "implementation of iexplore. Many older windows applications"
1274 - ewarn "rely upon the existence of an iexplore implementation, so"
1275 - ewarn "you will likely need to install an external one, like via winetricks"
1276 - fi
1277 - if ! use mono; then
1278 - ewarn "Without Wine Mono, wine prefixes will not have a default"
1279 - ewarn "implementation of .NET. Many windows applications rely upon"
1280 - ewarn "the existence of a .NET implementation, so you will likely need"
1281 - ewarn "to install an external one, like via winetricks"
1282 - fi
1283 -}
1284 -
1285 -pkg_prerm() {
1286 - eselect wine deregister ${P}
1287 - if [[ ${PN} == "wine-vanilla" ]]; then
1288 - eselect wine deregister --vanilla ${P} || die
1289 - else
1290 - if use staging; then
1291 - eselect wine deregister --staging ${P} || die
1292 - fi
1293 - fi
1294 -
1295 - eselect wine update --all --if-unset || die
1296 -}
1297 -
1298 -pkg_postrm() {
1299 - xdg_desktop_database_update
1300 -}