Gentoo Archives: gentoo-commits

From: Ionen Wolkens <ionen@g.o>
To: gentoo-commits@l.g.o
Subject: [gentoo-commits] repo/gentoo:master commit in: app-emulation/wine-vanilla/files/, app-emulation/wine-vanilla/
Date: Thu, 29 Dec 2022 20:29:38
Message-Id: 1672345732.d12a4639c4a9e6e094dc06d180984033a3a7ab02.ionen@gentoo
1 commit: d12a4639c4a9e6e094dc06d180984033a3a7ab02
2 Author: Ionen Wolkens <ionen <AT> gentoo <DOT> org>
3 AuthorDate: Thu Dec 29 16:16:57 2022 +0000
4 Commit: Ionen Wolkens <ionen <AT> gentoo <DOT> org>
5 CommitDate: Thu Dec 29 20:28:52 2022 +0000
6 URL: https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=d12a4639
7
8 app-emulation/wine-vanilla: drop 7.20, 7.21-r1
9
10 Both versions had several quirks and shouldn't be worthwhile
11 to keep, try 7.19 instead if 7.22 is not suitable (7.19 was
12 before some more major changes).
13
14 Signed-off-by: Ionen Wolkens <ionen <AT> gentoo.org>
15
16 app-emulation/wine-vanilla/Manifest | 2 -
17 .../files/wine-vanilla-7.21-crossflags.patch | 29 --
18 .../files/wine-vanilla-7.21-opengl32.patch | 73 -----
19 .../wine-vanilla/wine-vanilla-7.20.ebuild | 321 --------------------
20 .../wine-vanilla/wine-vanilla-7.21-r1.ebuild | 328 ---------------------
21 5 files changed, 753 deletions(-)
22
23 diff --git a/app-emulation/wine-vanilla/Manifest b/app-emulation/wine-vanilla/Manifest
24 index bb49c1f10238..56e7617cc7a2 100644
25 --- a/app-emulation/wine-vanilla/Manifest
26 +++ b/app-emulation/wine-vanilla/Manifest
27 @@ -1,5 +1,3 @@
28 DIST wine-7.0.1.tar.xz 27167768 BLAKE2B 9bf74e7077fe4b77611f8195feeb53fc6475bdaeac97dab5221942115d6108d8786f93d4a96745bad72afb074b15129fec9b0b2f10261d91c9a9b57bd2240ded SHA512 5a5258132fe30bfb5313454598b85e7d97a74d1e0c7ca7af16aa8c486e316ad34ab74a25fd9a403c98ad1f3280385232f7d159bb824f713e920a4a0dae62c944
29 DIST wine-7.19.tar.xz 28502612 BLAKE2B b7b270656955c7a1e1d84e8bbc7e3e8abff5aedadb5e8a458f0b1109d746875a359f3d2f53b1c9c6caae65d17fd1d205466cd3a884034a8bad6afe9456f13b5d SHA512 f76dbda97cccad4c0f249b5dd4e8d48afa832134f1704ae228650bb73ee82823e628b23bd53a3f8729e06a8933597ff2fffa5551f156fc9c9181b67c066747d5
30 -DIST wine-7.20.tar.xz 28534920 BLAKE2B 2e0cd49a7820f0c885a2a6dbcded6ebbdb5e1ea5576b03dedb7ee066f74f8c675193450cdd45bf5e0224bd588a890138e47a15f513edbfde1eabf1b65c9abe31 SHA512 6e2e65fba2336985df93165050f0f46b752d6aa94fc1581451c58969e2003748378be4b9e16b647ca2922fbdff77920311b12a17bda630a7bccfc7ee8f03b453
31 -DIST wine-7.21.tar.xz 28703308 BLAKE2B 8902ded32b9e635f8ccf659ca4055e9ad45d3659f3ad48d0c218dc5a7a334df456ea0e9441dcaff58e8cac0bbd65140b20e61180acaa06230bc70e28a8382c7e SHA512 15c0c9efda972b84890886fd4b1fb18dd462373ba490f5e607004a5436caba9823f643369ceb5abbc2d2d0e26d7ce002e00136299d9984c0a27f729f3ac129c1
32 DIST wine-7.22.tar.xz 28974052 BLAKE2B c86466964817b916ee8f7b687f193eda8bdd3fb17152ab1565971e36f43b12b540033ac1c5fa5d15576041febd32cf1ea2955732c5386debcbda46fb3acca0f1 SHA512 bf58a5b98bef5b291aff1eca3f94c28da95990e4c8da9af5e9e28b9480d57163d088b501b0c1bca5b568bf586dd9933cdc1ea1f371b78d95c94e2d25d0a65efc
33
34 diff --git a/app-emulation/wine-vanilla/files/wine-vanilla-7.21-crossflags.patch b/app-emulation/wine-vanilla/files/wine-vanilla-7.21-crossflags.patch
35 deleted file mode 100644
36 index 66cb8d7bd004..000000000000
37 --- a/app-emulation/wine-vanilla/files/wine-vanilla-7.21-crossflags.patch
38 +++ /dev/null
39 @@ -1,29 +0,0 @@
40 -Restore CROSSLDFLAGS and ensure tested flags are saved in
41 -{arch}_*FLAGS (e.g. -fno-strict-aliasing)
42 -
43 -quickfix, odds are this will be revamped upstream
44 ---- a/configure.ac
45 -+++ b/configure.ac
46 -@@ -911,9 +911,9 @@
47 - saved_CC=$CC
48 - saved_CFLAGS=$CFLAGS
49 -+ saved_LDFLAGS=$LDFLAGS
50 -
51 - CFLAGS=${CROSSCFLAGS:-"-g -O2"}
52 -+ LDFLAGS=${CROSSLDFLAGS:-}
53 - AS_VAR_COPY([CC],[${wine_arch}_CC])
54 -- AS_VAR_COPY([${wine_arch}_CFLAGS],[CFLAGS])
55 -- AS_VAR_COPY([${wine_arch}_LDFLAGS],[LDFLAGS])
56 - AS_VAR_SET([${wine_arch}_EXTRACFLAGS],["-D__WINE_PE_BUILD -Wall"])
57 -
58 -@@ -1044,6 +1044,10 @@
59 - AS_VAR_APPEND([${wine_arch}_LDFLAGS],[" -Wl,--build-id"])])
60 -
61 -+ AS_VAR_COPY([${wine_arch}_CFLAGS],[CFLAGS])
62 -+ AS_VAR_COPY([${wine_arch}_LDFLAGS],[LDFLAGS])
63 -+
64 - CC=$saved_CC
65 - CFLAGS=$saved_CFLAGS
66 -+ LDFLAGS=$saved_LDFLAGS
67 - done
68 -
69
70 diff --git a/app-emulation/wine-vanilla/files/wine-vanilla-7.21-opengl32.patch b/app-emulation/wine-vanilla/files/wine-vanilla-7.21-opengl32.patch
71 deleted file mode 100644
72 index 9411e05e96fd..000000000000
73 --- a/app-emulation/wine-vanilla/files/wine-vanilla-7.21-opengl32.patch
74 +++ /dev/null
75 @@ -1,73 +0,0 @@
76 -Fixes PE opengl32.dll failing to initialize.
77 -
78 -https://gitlab.winehq.org/wine/wine/-/commit/34099bba6cb
79 -From: Rémi Bernon <rbernon@×××××××××××.com>
80 -Date: Mon, 14 Nov 2022 11:55:51 +0100
81 -Subject: [PATCH] ntdll: Delay loading unixlibs until the functions are
82 - requested.
83 -
84 -Wine-Bug: https://bugs.winehq.org/show_bug.cgi?id=53909
85 ---- a/dlls/ntdll/unix/virtual.c
86 -+++ b/dlls/ntdll/unix/virtual.c
87 -@@ -98,6 +98,7 @@ struct builtin_module
88 - unsigned int refcount;
89 - void *handle;
90 - void *module;
91 -+ char *unix_path;
92 - void *unix_handle;
93 - };
94 -
95 -@@ -583,6 +584,7 @@ static void add_builtin_module( void *module, void *handle )
96 - builtin->handle = handle;
97 - builtin->module = module;
98 - builtin->refcount = 1;
99 -+ builtin->unix_path = NULL;
100 - builtin->unix_handle = NULL;
101 - list_add_tail( &builtin_modules, &builtin->entry );
102 - }
103 -@@ -603,6 +605,7 @@ void release_builtin_module( void *module )
104 - list_remove( &builtin->entry );
105 - if (builtin->handle) dlclose( builtin->handle );
106 - if (builtin->unix_handle) dlclose( builtin->unix_handle );
107 -+ free( builtin->unix_path );
108 - free( builtin );
109 - }
110 - break;
111 -@@ -652,6 +655,8 @@ static NTSTATUS get_builtin_unix_funcs( void *module, BOOL wow, const void **fun
112 - LIST_FOR_EACH_ENTRY( builtin, &builtin_modules, struct builtin_module, entry )
113 - {
114 - if (builtin->module != module) continue;
115 -+ if (builtin->unix_path && !builtin->unix_handle)
116 -+ builtin->unix_handle = dlopen( builtin->unix_path, RTLD_NOW );
117 - if (builtin->unix_handle)
118 - {
119 - *funcs = dlsym( builtin->unix_handle, ptr_name );
120 -@@ -669,26 +674,19 @@ static NTSTATUS get_builtin_unix_funcs( void *module, BOOL wow, const void **fun
121 - */
122 - NTSTATUS load_builtin_unixlib( void *module, const char *name )
123 - {
124 -- void *handle;
125 - sigset_t sigset;
126 -- NTSTATUS status = STATUS_DLL_NOT_FOUND;
127 -+ NTSTATUS status = STATUS_SUCCESS;
128 - struct builtin_module *builtin;
129 -
130 -- if (!(handle = dlopen( name, RTLD_NOW ))) return status;
131 - server_enter_uninterrupted_section( &virtual_mutex, &sigset );
132 - LIST_FOR_EACH_ENTRY( builtin, &builtin_modules, struct builtin_module, entry )
133 - {
134 - if (builtin->module != module) continue;
135 -- if (!builtin->unix_handle)
136 -- {
137 -- builtin->unix_handle = handle;
138 -- status = STATUS_SUCCESS;
139 -- }
140 -+ if (!builtin->unix_path) builtin->unix_path = strdup( name );
141 - else status = STATUS_IMAGE_ALREADY_LOADED;
142 - break;
143 - }
144 - server_leave_uninterrupted_section( &virtual_mutex, &sigset );
145 -- if (status) dlclose( handle );
146 - return status;
147 - }
148 -
149
150 diff --git a/app-emulation/wine-vanilla/wine-vanilla-7.20.ebuild b/app-emulation/wine-vanilla/wine-vanilla-7.20.ebuild
151 deleted file mode 100644
152 index 883a0f427034..000000000000
153 --- a/app-emulation/wine-vanilla/wine-vanilla-7.20.ebuild
154 +++ /dev/null
155 @@ -1,321 +0,0 @@
156 -# Copyright 2022 Gentoo Authors
157 -# Distributed under the terms of the GNU General Public License v2
158 -
159 -EAPI=8
160 -
161 -MULTILIB_COMPAT=( abi_x86_{32,64} )
162 -inherit autotools flag-o-matic multilib multilib-build toolchain-funcs wrapper
163 -
164 -WINE_GECKO=2.47.3
165 -WINE_MONO=7.4.0
166 -
167 -if [[ ${PV} == *9999 ]]; then
168 - inherit git-r3
169 - EGIT_REPO_URI="https://gitlab.winehq.org/wine/wine.git"
170 -else
171 - (( $(ver_cut 2) )) && WINE_SDIR=$(ver_cut 1).x || WINE_SDIR=$(ver_cut 1).0
172 - SRC_URI="https://dl.winehq.org/wine/source/${WINE_SDIR}/wine-${PV}.tar.xz"
173 - S="${WORKDIR}/wine-${PV}"
174 - KEYWORDS="-* ~amd64 ~x86"
175 -fi
176 -
177 -DESCRIPTION="Free implementation of Windows(tm) on Unix, without external patchsets"
178 -HOMEPAGE="
179 - https://www.winehq.org/
180 - https://gitlab.winehq.org/wine/wine/"
181 -
182 -LICENSE="LGPL-2.1+ BSD-2 IJG MIT ZLIB gsm libpng2 libtiff"
183 -SLOT="${PV}"
184 -IUSE="
185 - +X +abi_x86_32 +abi_x86_64 +alsa capi crossdev-mingw cups dos
186 - llvm-libunwind debug custom-cflags +fontconfig +gecko gphoto2
187 - +gstreamer kerberos ldap +mingw +mono netapi nls odbc openal
188 - opencl +opengl osmesa pcap perl pulseaudio samba scanner +sdl
189 - selinux +ssl +truetype udev udisks +unwind usb v4l +vulkan
190 - +xcomposite xinerama"
191 -REQUIRED_USE="
192 - X? ( truetype )
193 - crossdev-mingw? ( mingw )" # bug #551124 for truetype
194 -
195 -# tests are non-trivial to run, can hang easily, don't play well with
196 -# sandbox, and several need real opengl/vulkan or network access
197 -RESTRICT="test"
198 -
199 -# `grep WINE_CHECK_SONAME configure.ac` + if not directly linked
200 -WINE_DLOPEN_DEPEND="
201 - X? (
202 - x11-libs/libXcursor[${MULTILIB_USEDEP}]
203 - x11-libs/libXfixes[${MULTILIB_USEDEP}]
204 - x11-libs/libXi[${MULTILIB_USEDEP}]
205 - x11-libs/libXrandr[${MULTILIB_USEDEP}]
206 - x11-libs/libXrender[${MULTILIB_USEDEP}]
207 - x11-libs/libXxf86vm[${MULTILIB_USEDEP}]
208 - opengl? (
209 - media-libs/libglvnd[X,${MULTILIB_USEDEP}]
210 - osmesa? ( media-libs/mesa[osmesa,${MULTILIB_USEDEP}] )
211 - )
212 - xcomposite? ( x11-libs/libXcomposite[${MULTILIB_USEDEP}] )
213 - xinerama? ( x11-libs/libXinerama[${MULTILIB_USEDEP}] )
214 - )
215 - cups? ( net-print/cups[${MULTILIB_USEDEP}] )
216 - fontconfig? ( media-libs/fontconfig[${MULTILIB_USEDEP}] )
217 - kerberos? ( virtual/krb5[${MULTILIB_USEDEP}] )
218 - netapi? ( net-fs/samba[${MULTILIB_USEDEP}] )
219 - odbc? ( dev-db/unixODBC[${MULTILIB_USEDEP}] )
220 - sdl? ( media-libs/libsdl2[haptic,joystick,${MULTILIB_USEDEP}] )
221 - ssl? ( net-libs/gnutls:=[${MULTILIB_USEDEP}] )
222 - truetype? ( media-libs/freetype[${MULTILIB_USEDEP}] )
223 - udisks? ( sys-apps/dbus[${MULTILIB_USEDEP}] )
224 - v4l? ( media-libs/libv4l[${MULTILIB_USEDEP}] )
225 - vulkan? ( media-libs/vulkan-loader[${MULTILIB_USEDEP}] )"
226 -WINE_COMMON_DEPEND="
227 - ${WINE_DLOPEN_DEPEND}
228 - X? (
229 - x11-libs/libX11[${MULTILIB_USEDEP}]
230 - x11-libs/libXext[${MULTILIB_USEDEP}]
231 - )
232 - alsa? ( media-libs/alsa-lib[${MULTILIB_USEDEP}] )
233 - capi? ( net-libs/libcapi:=[${MULTILIB_USEDEP}] )
234 - gphoto2? ( media-libs/libgphoto2:=[${MULTILIB_USEDEP}] )
235 - gstreamer? (
236 - dev-libs/glib:2[${MULTILIB_USEDEP}]
237 - media-libs/gst-plugins-base:1.0[${MULTILIB_USEDEP}]
238 - media-libs/gstreamer:1.0[${MULTILIB_USEDEP}]
239 - )
240 - ldap? ( net-nds/openldap:=[${MULTILIB_USEDEP}] )
241 - openal? ( media-libs/openal[${MULTILIB_USEDEP}] )
242 - opencl? ( virtual/opencl[${MULTILIB_USEDEP}] )
243 - pcap? ( net-libs/libpcap[${MULTILIB_USEDEP}] )
244 - pulseaudio? ( media-libs/libpulse[${MULTILIB_USEDEP}] )
245 - scanner? ( media-gfx/sane-backends[${MULTILIB_USEDEP}] )
246 - udev? ( virtual/libudev:=[${MULTILIB_USEDEP}] )
247 - unwind? (
248 - llvm-libunwind? ( sys-libs/llvm-libunwind[${MULTILIB_USEDEP}] )
249 - !llvm-libunwind? ( sys-libs/libunwind:=[${MULTILIB_USEDEP}] )
250 - )
251 - usb? ( dev-libs/libusb:1[${MULTILIB_USEDEP}] )"
252 -RDEPEND="
253 - ${WINE_COMMON_DEPEND}
254 - app-emulation/wine-desktop-common
255 - dos? ( games-emulation/dosbox )
256 - gecko? ( app-emulation/wine-gecko:${WINE_GECKO}[${MULTILIB_USEDEP}] )
257 - gstreamer? ( media-plugins/gst-plugins-meta:1.0[${MULTILIB_USEDEP}] )
258 - mono? ( app-emulation/wine-mono:${WINE_MONO} )
259 - perl? (
260 - dev-lang/perl
261 - dev-perl/XML-LibXML
262 - )
263 - samba? ( net-fs/samba[winbind] )
264 - selinux? ( sec-policy/selinux-wine )
265 - udisks? ( sys-fs/udisks:2 )"
266 -DEPEND="
267 - ${WINE_COMMON_DEPEND}
268 - sys-kernel/linux-headers
269 - X? ( x11-base/xorg-proto )"
270 -BDEPEND="
271 - dev-lang/perl
272 - sys-devel/binutils
273 - sys-devel/bison
274 - sys-devel/flex
275 - virtual/pkgconfig
276 - mingw? ( !crossdev-mingw? ( dev-util/mingw64-toolchain[${MULTILIB_USEDEP}] ) )
277 - nls? ( sys-devel/gettext )"
278 -IDEPEND=">=app-eselect/eselect-wine-2"
279 -
280 -QA_TEXTRELS="usr/lib/*/wine/i386-unix/*.so" # uses -fno-PIC -Wl,-z,notext
281 -
282 -PATCHES=(
283 - "${FILESDIR}"/${PN}-7.0-noexecstack.patch
284 - "${FILESDIR}"/${PN}-7.20-unwind.patch
285 -)
286 -
287 -pkg_pretend() {
288 - [[ ${MERGE_TYPE} == binary ]] && return
289 -
290 - if use crossdev-mingw && [[ ! -v MINGW_BYPASS ]]; then
291 - local mingw=-w64-mingw32
292 - for mingw in $(usev abi_x86_64 x86_64${mingw}) $(usev abi_x86_32 i686${mingw}); do
293 - if ! type -P ${mingw}-gcc >/dev/null; then
294 - eerror "With USE=crossdev-mingw, you must prepare the MinGW toolchain"
295 - eerror "yourself by installing sys-devel/crossdev then running:"
296 - eerror
297 - eerror " crossdev --target ${mingw}"
298 - eerror
299 - eerror "For more information, please see: https://wiki.gentoo.org/wiki/Mingw"
300 - die "USE=crossdev-mingw is enabled, but ${mingw}-gcc was not found"
301 - fi
302 - done
303 - fi
304 -}
305 -
306 -src_prepare() {
307 - # sanity check, bumping these has a history of oversights
308 - local geckomono=$(sed -En '/^#define (GECKO|MONO)_VER/{s/[^0-9.]//gp}' \
309 - dlls/appwiz.cpl/addons.c || die)
310 - if [[ ${WINE_GECKO}$'\n'${WINE_MONO} != "${geckomono}" ]]; then
311 - local gmfatal=
312 - [[ ${PV} == *9999 ]] && gmfatal=nonfatal
313 - ${gmfatal} die -n "gecko/mono mismatch in ebuild, has: " ${geckomono} " (please file a bug)"
314 - fi
315 -
316 - default
317 -
318 - # ensure .desktop calls this variant + slot
319 - sed -i "/^Exec=/s/wine /${P} /" loader/wine.desktop || die
320 -
321 - # always update for patches (including user's wrt #432348)
322 - eautoreconf
323 - tools/make_requests || die # perl
324 -}
325 -
326 -src_configure() {
327 - WINE_PREFIX=/usr/lib/${P}
328 - WINE_DATADIR=/usr/share/${P}
329 -
330 - local conf=(
331 - --prefix="${EPREFIX}"${WINE_PREFIX}
332 - --datadir="${EPREFIX}"${WINE_DATADIR}
333 - --includedir="${EPREFIX}"/usr/include/${P}
334 - --libdir="${EPREFIX}"${WINE_PREFIX}
335 - --mandir="${EPREFIX}"${WINE_DATADIR}/man
336 - $(use_enable gecko mshtml)
337 - $(use_enable mono mscoree)
338 - --disable-tests
339 - $(use_with X x)
340 - $(use_with alsa)
341 - $(use_with capi)
342 - $(use_with cups)
343 - $(use_with fontconfig)
344 - $(use_with gphoto2 gphoto)
345 - $(use_with gstreamer)
346 - $(use_with kerberos gssapi)
347 - $(use_with kerberos krb5)
348 - $(use_with ldap)
349 - $(use_with mingw)
350 - $(use_with netapi)
351 - $(use_with nls gettext)
352 - $(use_with openal)
353 - $(use_with opencl)
354 - $(use_with opengl)
355 - $(use_with osmesa)
356 - --without-oss # media-sound/oss is not packaged (OSSv4)
357 - $(use_with pcap)
358 - $(use_with pulseaudio pulse)
359 - $(use_with scanner sane)
360 - $(use_with sdl)
361 - $(use_with ssl gnutls)
362 - $(use_with truetype freetype)
363 - $(use_with udev)
364 - $(use_with udisks dbus) # dbus is only used for udisks
365 - $(use_with unwind)
366 - $(use_with usb)
367 - $(use_with v4l v4l2)
368 - $(use_with vulkan)
369 - $(use_with xcomposite)
370 - $(use_with xinerama)
371 - $(usev !odbc ac_cv_lib_soname_odbc=)
372 - )
373 -
374 - tc-ld-force-bfd # builds with non-bfd but broken at runtime (bug #867097)
375 - filter-lto # build failure
376 - use mingw || filter-flags -fno-plt # build failure
377 - use custom-cflags || strip-flags # can break in obscure ways at runtime
378 - use crossdev-mingw || PATH=${BROOT}/usr/lib/mingw64-toolchain/bin:${PATH}
379 -
380 - # temporary workaround for tc-ld-force-bfd not yet enforcing with mold
381 - # https://github.com/gentoo/gentoo/pull/28355
382 - [[ $($(tc-getCC) ${LDFLAGS} -Wl,--version 2>/dev/null) == mold* ]] &&
383 - append-ldflags -fuse-ld=bfd
384 -
385 - # build using upstream's way (--with-wine64)
386 - # order matters: configure+compile 64->32, install 32->64
387 - local -i bits
388 - for bits in $(usev abi_x86_64 64) $(usev abi_x86_32 32); do
389 - (
390 - einfo "Configuring ${PN} for ${bits}bits in ${WORKDIR}/build${bits} ..."
391 -
392 - mkdir ../build${bits} || die
393 - cd ../build${bits} || die
394 -
395 - # CROSSCC_amd64/x86 are unused by Wine, but recognized here for users
396 - if (( bits == 64 )); then
397 - : "${CROSSCC:=${CROSSCC_amd64:-x86_64-w64-mingw32-gcc}}"
398 - conf+=( --enable-win64 )
399 - elif use amd64; then
400 - conf+=(
401 - $(usev abi_x86_64 --with-wine64=../build64)
402 - TARGETFLAGS=-m32 # for widl
403 - )
404 - # _setup is optional, but use over Wine's auto-detect (+#472038)
405 - multilib_toolchain_setup x86
406 - fi
407 - : "${CROSSCC:=${CROSSCC_x86:-i686-w64-mingw32-gcc}}"
408 -
409 - # use *FLAGS for mingw, but strip unsupported (e.g. --hash-style=gnu)
410 - if use mingw; then
411 - : "${CROSSCFLAGS:=$(
412 - filter-flags '-fstack-clash-protection' #758914
413 - filter-flags '-fstack-protector*' #870136
414 - filter-flags '-mfunction-return=thunk*' #878849
415 - CC=${CROSSCC} test-flags-CC ${CFLAGS:--O2})}"
416 - : "${CROSSLDFLAGS:=$(
417 - filter-flags '-fuse-ld=*'
418 - CC=${CROSSCC} test-flags-CCLD ${LDFLAGS})}"
419 - export CROSS{CC,{C,LD}FLAGS}
420 - fi
421 -
422 - ECONF_SOURCE=${S} econf "${conf[@]}"
423 - )
424 - done
425 -}
426 -
427 -src_compile() {
428 - use abi_x86_64 && emake -C ../build64 # do first
429 - use abi_x86_32 && emake -C ../build32
430 -}
431 -
432 -src_install() {
433 - use abi_x86_32 && emake DESTDIR="${D}" -C ../build32 install
434 - use abi_x86_64 && emake DESTDIR="${D}" -C ../build64 install # do last
435 -
436 - # symlink for plain 'wine' and install its man pages if 64bit-only #404331
437 - if use abi_x86_64 && use !abi_x86_32; then
438 - dosym wine64 ${WINE_PREFIX}/bin/wine
439 - dosym wine64-preloader ${WINE_PREFIX}/bin/wine-preloader
440 - local man
441 - for man in ../build64/loader/wine.*man; do
442 - : "${man##*/wine}"
443 - : "${_%.*}"
444 - insinto ${WINE_DATADIR}/man/${_:+${_#.}/}man1
445 - newins ${man} wine.1
446 - done
447 - fi
448 -
449 - use perl || rm "${ED}"${WINE_DATADIR}/man/man1/wine{dump,maker}.1 \
450 - "${ED}"${WINE_PREFIX}/bin/{function_grep.pl,wine{dump,maker}} || die
451 -
452 - # create variant wrappers for eselect-wine
453 - local bin
454 - for bin in "${ED}"${WINE_PREFIX}/bin/*; do
455 - make_wrapper "${bin##*/}-${P#wine-}" "${bin#"${ED}"}"
456 - done
457 -
458 - # don't let portage try to strip PE files with the wrong
459 - # strip executable and instead handle it here (saves ~120MB)
460 - if use mingw; then
461 - dostrip -x ${WINE_PREFIX}/wine/{i386,x86_64}-windows
462 - use debug ||
463 - find "${ED}"${WINE_PREFIX}/wine/*-windows -regex '.*\.\(a\|dll\|exe\)' \
464 - -exec $(usex abi_x86_64 x86_64 i686)-w64-mingw32-strip --strip-unneeded {} + || die
465 - fi
466 -
467 - dodoc ANNOUNCE AUTHORS README* documentation/README*
468 -}
469 -
470 -pkg_postinst() {
471 - eselect wine update --if-unset || die
472 -}
473 -
474 -pkg_postrm() {
475 - eselect wine update --if-unset || die
476 -}
477
478 diff --git a/app-emulation/wine-vanilla/wine-vanilla-7.21-r1.ebuild b/app-emulation/wine-vanilla/wine-vanilla-7.21-r1.ebuild
479 deleted file mode 100644
480 index ed18a224f6b5..000000000000
481 --- a/app-emulation/wine-vanilla/wine-vanilla-7.21-r1.ebuild
482 +++ /dev/null
483 @@ -1,328 +0,0 @@
484 -# Copyright 2022 Gentoo Authors
485 -# Distributed under the terms of the GNU General Public License v2
486 -
487 -EAPI=8
488 -
489 -MULTILIB_COMPAT=( abi_x86_{32,64} )
490 -inherit autotools flag-o-matic multilib multilib-build toolchain-funcs wrapper
491 -
492 -WINE_GECKO=2.47.3
493 -WINE_MONO=7.4.0
494 -
495 -if [[ ${PV} == *9999 ]]; then
496 - inherit git-r3
497 - EGIT_REPO_URI="https://gitlab.winehq.org/wine/wine.git"
498 -else
499 - (( $(ver_cut 2) )) && WINE_SDIR=$(ver_cut 1).x || WINE_SDIR=$(ver_cut 1).0
500 - SRC_URI="https://dl.winehq.org/wine/source/${WINE_SDIR}/wine-${PV}.tar.xz"
501 - S="${WORKDIR}/wine-${PV}"
502 - KEYWORDS="-* ~amd64 ~x86"
503 -fi
504 -
505 -DESCRIPTION="Free implementation of Windows(tm) on Unix, without external patchsets"
506 -HOMEPAGE="
507 - https://www.winehq.org/
508 - https://gitlab.winehq.org/wine/wine/"
509 -
510 -LICENSE="LGPL-2.1+ BSD-2 IJG MIT ZLIB gsm libpng2 libtiff"
511 -SLOT="${PV}"
512 -IUSE="
513 - +X +abi_x86_32 +abi_x86_64 +alsa capi crossdev-mingw cups dos
514 - llvm-libunwind debug custom-cflags +fontconfig +gecko gphoto2
515 - +gstreamer kerberos ldap +mingw +mono netapi nls odbc opencl
516 - +opengl osmesa pcap perl pulseaudio samba scanner +sdl selinux
517 - +ssl +truetype udev udisks +unwind usb v4l +vulkan +xcomposite
518 - xinerama"
519 -REQUIRED_USE="
520 - X? ( truetype )
521 - crossdev-mingw? ( mingw )" # bug #551124 for truetype
522 -
523 -# tests are non-trivial to run, can hang easily, don't play well with
524 -# sandbox, and several need real opengl/vulkan or network access
525 -RESTRICT="test"
526 -
527 -# `grep WINE_CHECK_SONAME configure.ac` + if not directly linked
528 -WINE_DLOPEN_DEPEND="
529 - X? (
530 - x11-libs/libXcursor[${MULTILIB_USEDEP}]
531 - x11-libs/libXfixes[${MULTILIB_USEDEP}]
532 - x11-libs/libXi[${MULTILIB_USEDEP}]
533 - x11-libs/libXrandr[${MULTILIB_USEDEP}]
534 - x11-libs/libXrender[${MULTILIB_USEDEP}]
535 - x11-libs/libXxf86vm[${MULTILIB_USEDEP}]
536 - opengl? (
537 - media-libs/libglvnd[X,${MULTILIB_USEDEP}]
538 - osmesa? ( media-libs/mesa[osmesa,${MULTILIB_USEDEP}] )
539 - )
540 - xcomposite? ( x11-libs/libXcomposite[${MULTILIB_USEDEP}] )
541 - xinerama? ( x11-libs/libXinerama[${MULTILIB_USEDEP}] )
542 - )
543 - cups? ( net-print/cups[${MULTILIB_USEDEP}] )
544 - fontconfig? ( media-libs/fontconfig[${MULTILIB_USEDEP}] )
545 - kerberos? ( virtual/krb5[${MULTILIB_USEDEP}] )
546 - netapi? ( net-fs/samba[${MULTILIB_USEDEP}] )
547 - odbc? ( dev-db/unixODBC[${MULTILIB_USEDEP}] )
548 - sdl? ( media-libs/libsdl2[haptic,joystick,${MULTILIB_USEDEP}] )
549 - ssl? ( net-libs/gnutls:=[${MULTILIB_USEDEP}] )
550 - truetype? ( media-libs/freetype[${MULTILIB_USEDEP}] )
551 - udisks? ( sys-apps/dbus[${MULTILIB_USEDEP}] )
552 - v4l? ( media-libs/libv4l[${MULTILIB_USEDEP}] )
553 - vulkan? ( media-libs/vulkan-loader[${MULTILIB_USEDEP}] )"
554 -WINE_COMMON_DEPEND="
555 - ${WINE_DLOPEN_DEPEND}
556 - X? (
557 - x11-libs/libX11[${MULTILIB_USEDEP}]
558 - x11-libs/libXext[${MULTILIB_USEDEP}]
559 - )
560 - alsa? ( media-libs/alsa-lib[${MULTILIB_USEDEP}] )
561 - capi? ( net-libs/libcapi:=[${MULTILIB_USEDEP}] )
562 - gphoto2? ( media-libs/libgphoto2:=[${MULTILIB_USEDEP}] )
563 - gstreamer? (
564 - dev-libs/glib:2[${MULTILIB_USEDEP}]
565 - media-libs/gst-plugins-base:1.0[${MULTILIB_USEDEP}]
566 - media-libs/gstreamer:1.0[${MULTILIB_USEDEP}]
567 - )
568 - ldap? ( net-nds/openldap:=[${MULTILIB_USEDEP}] )
569 - opencl? ( virtual/opencl[${MULTILIB_USEDEP}] )
570 - pcap? ( net-libs/libpcap[${MULTILIB_USEDEP}] )
571 - pulseaudio? ( media-libs/libpulse[${MULTILIB_USEDEP}] )
572 - scanner? ( media-gfx/sane-backends[${MULTILIB_USEDEP}] )
573 - udev? ( virtual/libudev:=[${MULTILIB_USEDEP}] )
574 - unwind? (
575 - llvm-libunwind? ( sys-libs/llvm-libunwind[${MULTILIB_USEDEP}] )
576 - !llvm-libunwind? ( sys-libs/libunwind:=[${MULTILIB_USEDEP}] )
577 - )
578 - usb? ( dev-libs/libusb:1[${MULTILIB_USEDEP}] )"
579 -RDEPEND="
580 - ${WINE_COMMON_DEPEND}
581 - app-emulation/wine-desktop-common
582 - dos? ( games-emulation/dosbox )
583 - gecko? ( app-emulation/wine-gecko:${WINE_GECKO}[${MULTILIB_USEDEP}] )
584 - gstreamer? ( media-plugins/gst-plugins-meta:1.0[${MULTILIB_USEDEP}] )
585 - mono? ( app-emulation/wine-mono:${WINE_MONO} )
586 - perl? (
587 - dev-lang/perl
588 - dev-perl/XML-LibXML
589 - )
590 - samba? ( net-fs/samba[winbind] )
591 - selinux? ( sec-policy/selinux-wine )
592 - udisks? ( sys-fs/udisks:2 )"
593 -DEPEND="
594 - ${WINE_COMMON_DEPEND}
595 - sys-kernel/linux-headers
596 - X? ( x11-base/xorg-proto )"
597 -BDEPEND="
598 - dev-lang/perl
599 - sys-devel/binutils
600 - sys-devel/bison
601 - sys-devel/flex
602 - virtual/pkgconfig
603 - mingw? ( !crossdev-mingw? (
604 - >=dev-util/mingw64-toolchain-10.0.0_p1-r2[${MULTILIB_USEDEP}]
605 - ) )
606 - nls? ( sys-devel/gettext )"
607 -IDEPEND=">=app-eselect/eselect-wine-2"
608 -
609 -QA_TEXTRELS="usr/lib/*/wine/i386-unix/*.so" # uses -fno-PIC -Wl,-z,notext
610 -
611 -PATCHES=(
612 - "${FILESDIR}"/${PN}-7.0-noexecstack.patch
613 - "${FILESDIR}"/${PN}-7.20-unwind.patch
614 - "${FILESDIR}"/${P}-crossflags.patch
615 - "${FILESDIR}"/${P}-opengl32.patch
616 -)
617 -
618 -pkg_pretend() {
619 - [[ ${MERGE_TYPE} == binary ]] && return
620 -
621 - if use crossdev-mingw && [[ ! -v MINGW_BYPASS ]]; then
622 - local mingw=-w64-mingw32
623 - for mingw in $(usev abi_x86_64 x86_64${mingw}) $(usev abi_x86_32 i686${mingw}); do
624 - if ! type -P ${mingw}-gcc >/dev/null; then
625 - eerror "With USE=crossdev-mingw, you must prepare the MinGW toolchain"
626 - eerror "yourself by installing sys-devel/crossdev then running:"
627 - eerror
628 - eerror " crossdev --target ${mingw}"
629 - eerror
630 - eerror "For more information, please see: https://wiki.gentoo.org/wiki/Mingw"
631 - die "USE=crossdev-mingw is enabled, but ${mingw}-gcc was not found"
632 - fi
633 - done
634 - fi
635 -}
636 -
637 -src_prepare() {
638 - # sanity check, bumping these has a history of oversights
639 - local geckomono=$(sed -En '/^#define (GECKO|MONO)_VER/{s/[^0-9.]//gp}' \
640 - dlls/appwiz.cpl/addons.c || die)
641 - if [[ ${WINE_GECKO}$'\n'${WINE_MONO} != "${geckomono}" ]]; then
642 - local gmfatal=
643 - [[ ${PV} == *9999 ]] && gmfatal=nonfatal
644 - ${gmfatal} die -n "gecko/mono mismatch in ebuild, has: " ${geckomono} " (please file a bug)"
645 - fi
646 -
647 - default
648 -
649 - # ensure .desktop calls this variant + slot
650 - sed -i "/^Exec=/s/wine /${P} /" loader/wine.desktop || die
651 -
652 - # always update for patches (including user's wrt #432348)
653 - eautoreconf
654 - tools/make_requests || die # perl
655 -}
656 -
657 -src_configure() {
658 - WINE_PREFIX=/usr/lib/${P}
659 - WINE_DATADIR=/usr/share/${P}
660 -
661 - local conf=(
662 - --prefix="${EPREFIX}"${WINE_PREFIX}
663 - --datadir="${EPREFIX}"${WINE_DATADIR}
664 - --includedir="${EPREFIX}"/usr/include/${P}
665 - --libdir="${EPREFIX}"${WINE_PREFIX}
666 - --mandir="${EPREFIX}"${WINE_DATADIR}/man
667 - $(use_enable gecko mshtml)
668 - $(use_enable mono mscoree)
669 - --disable-tests
670 - $(use_with X x)
671 - $(use_with alsa)
672 - $(use_with capi)
673 - $(use_with cups)
674 - $(use_with fontconfig)
675 - $(use_with gphoto2 gphoto)
676 - $(use_with gstreamer)
677 - $(use_with kerberos gssapi)
678 - $(use_with kerberos krb5)
679 - $(use_with ldap)
680 - $(use_with mingw)
681 - $(use_with netapi)
682 - $(use_with nls gettext)
683 - $(use_with opencl)
684 - $(use_with opengl)
685 - $(use_with osmesa)
686 - --without-oss # media-sound/oss is not packaged (OSSv4)
687 - $(use_with pcap)
688 - $(use_with pulseaudio pulse)
689 - $(use_with scanner sane)
690 - $(use_with sdl)
691 - $(use_with ssl gnutls)
692 - $(use_with truetype freetype)
693 - $(use_with udev)
694 - $(use_with udisks dbus) # dbus is only used for udisks
695 - $(use_with unwind)
696 - $(use_with usb)
697 - $(use_with v4l v4l2)
698 - $(use_with vulkan)
699 - $(use_with xcomposite)
700 - $(use_with xinerama)
701 - $(usev !odbc ac_cv_lib_soname_odbc=)
702 - )
703 -
704 - tc-ld-force-bfd # builds with non-bfd but broken at runtime (bug #867097)
705 - filter-lto # build failure
706 - use mingw || filter-flags -fno-plt # build failure
707 - use custom-cflags || strip-flags # can break in obscure ways at runtime
708 - use crossdev-mingw || PATH=${BROOT}/usr/lib/mingw64-toolchain/bin:${PATH}
709 -
710 - # temporary workaround for tc-ld-force-bfd not yet enforcing with mold
711 - # https://github.com/gentoo/gentoo/pull/28355
712 - [[ $($(tc-getCC) ${LDFLAGS} -Wl,--version 2>/dev/null) == mold* ]] &&
713 - append-ldflags -fuse-ld=bfd
714 -
715 - # build using upstream's way (--with-wine64)
716 - # order matters: configure+compile 64->32, install 32->64
717 - local -i bits
718 - for bits in $(usev abi_x86_64 64) $(usev abi_x86_32 32); do
719 - (
720 - einfo "Configuring ${PN} for ${bits}bits in ${WORKDIR}/build${bits} ..."
721 -
722 - mkdir ../build${bits} || die
723 - cd ../build${bits} || die
724 -
725 - pe_arch=i386
726 - if (( bits == 64 )); then
727 - pe_arch=x86_64
728 - : "${CROSSCC:=${CROSSCC_amd64:-x86_64-w64-mingw32-gcc}}"
729 - conf+=( --enable-win64 )
730 - elif use amd64; then
731 - conf+=(
732 - $(usev abi_x86_64 --with-wine64=../build64)
733 - TARGETFLAGS=-m32 # for widl
734 - )
735 - # _setup is optional, but use over Wine's auto-detect (+#472038)
736 - multilib_toolchain_setup x86
737 - fi
738 - : "${CROSSCC:=${CROSSCC_x86:-i686-w64-mingw32-gcc}}"
739 -
740 - if use mingw; then
741 - # CROSSCC is no longer recognized by Wine, but still use for now
742 - # (future handling for CROSS* variables is subject to changes)
743 - conf+=( ac_cv_prog_${pe_arch}_CC="${CROSSCC}" )
744 -
745 - # use *FLAGS for mingw, but strip unsupported
746 - : "${CROSSCFLAGS:=$(
747 - filter-flags '-fstack-clash-protection' #758914
748 - filter-flags '-fstack-protector*' #870136
749 - filter-flags '-mfunction-return=thunk*' #878849
750 - CC=${CROSSCC} test-flags-CC ${CFLAGS:--O2})}"
751 - : "${CROSSLDFLAGS:=$(
752 - filter-flags '-fuse-ld=*'
753 - CC=${CROSSCC} test-flags-CCLD ${LDFLAGS})}"
754 - export CROSS{C,LD}FLAGS
755 - fi
756 -
757 - ECONF_SOURCE=${S} econf "${conf[@]}"
758 - )
759 - done
760 -}
761 -
762 -src_compile() {
763 - use abi_x86_64 && emake -C ../build64 # do first
764 - use abi_x86_32 && emake -C ../build32
765 -}
766 -
767 -src_install() {
768 - use abi_x86_32 && emake DESTDIR="${D}" -C ../build32 install
769 - use abi_x86_64 && emake DESTDIR="${D}" -C ../build64 install # do last
770 -
771 - # symlink for plain 'wine' and install its man pages if 64bit-only #404331
772 - if use abi_x86_64 && use !abi_x86_32; then
773 - dosym wine64 ${WINE_PREFIX}/bin/wine
774 - dosym wine64-preloader ${WINE_PREFIX}/bin/wine-preloader
775 - local man
776 - for man in ../build64/loader/wine.*man; do
777 - : "${man##*/wine}"
778 - : "${_%.*}"
779 - insinto ${WINE_DATADIR}/man/${_:+${_#.}/}man1
780 - newins ${man} wine.1
781 - done
782 - fi
783 -
784 - use perl || rm "${ED}"${WINE_DATADIR}/man/man1/wine{dump,maker}.1 \
785 - "${ED}"${WINE_PREFIX}/bin/{function_grep.pl,wine{dump,maker}} || die
786 -
787 - # create variant wrappers for eselect-wine
788 - local bin
789 - for bin in "${ED}"${WINE_PREFIX}/bin/*; do
790 - make_wrapper "${bin##*/}-${P#wine-}" "${bin#"${ED}"}"
791 - done
792 -
793 - # don't let portage try to strip PE files with the wrong
794 - # strip executable and instead handle it here (saves ~120MB)
795 - if use mingw; then
796 - dostrip -x ${WINE_PREFIX}/wine/{i386,x86_64}-windows
797 - use debug ||
798 - find "${ED}"${WINE_PREFIX}/wine/*-windows -regex '.*\.\(a\|dll\|exe\)' \
799 - -exec $(usex abi_x86_64 x86_64 i686)-w64-mingw32-strip --strip-unneeded {} + || die
800 - fi
801 -
802 - dodoc ANNOUNCE AUTHORS README* documentation/README*
803 -}
804 -
805 -pkg_postinst() {
806 - eselect wine update --if-unset || die
807 -}
808 -
809 -pkg_postrm() {
810 - eselect wine update --if-unset || die
811 -}