FreeBSD Bugzilla – Attachment 210388 Details for
Bug 242625
Somewhat limited WoW64 support for emulators/wine-devel, emulators/i386-wine-devel
Home
|
New
|
Browse
|
Search
|
[?]
|
Reports
|
Help
|
New Account
|
Log In
Remember
[x]
|
Forgot Password
Login:
[x]
[patch]
wow64-option.patch v6
wow64-option-v6.patch (text/plain), 4.86 KB, created by
Alex S
on 2020-01-02 11:56:40 UTC
(
hide
)
Description:
wow64-option.patch v6
Filename:
MIME Type:
Creator:
Alex S
Created:
2020-01-02 11:56:40 UTC
Size:
4.86 KB
patch
obsolete
>diff --git a/emulators/i386-wine-devel/Makefile.i386 b/emulators/i386-wine-devel/Makefile.i386 >index 2044c8ab616a..f3ef0423b3b8 100644 >--- a/emulators/i386-wine-devel/Makefile.i386 >+++ b/emulators/i386-wine-devel/Makefile.i386 >@@ -30,13 +30,15 @@ BUNDLE_LIBS= yes > IGNORE= This port is not for consumption on FreeBSD/i386. To cross-build for FreeBSD/amd64: make -DWINE_CROSS_BUILD > .endif > >+BINBOUNCE= binbounce >+ > # Hook into post-install and do some adapting to make i386 binaries work nicely > # under FreeBSD/amd64 > post-install-script: > # Fix pkg-plist references > ${REINPLACE_CMD} -e 's!lib/!lib32/!g' ${TMPPLIST} > # Install bounce script to access the 32-bit executables >- ${INSTALL_SCRIPT} ${SLAVEDIR}/files/binbounce ${STAGEDIR}${PREFIX}/bin/wine >+ ${INSTALL_SCRIPT} ${SLAVEDIR}/files/${BINBOUNCE} ${STAGEDIR}${PREFIX}/bin/wine > for i in `${GREP} ^bin ${TMPPLIST} | ${XARGS} -n1 basename` ; do \ > [ "$${i}" = "wine" ] || ${LN} -f ${STAGEDIR}${PREFIX}/bin/wine ${STAGEDIR}${PREFIX}/bin/$${i} ; \ > ${ECHO_CMD} bin32/$${i} >> ${TMPPLIST} ; \ >diff --git a/emulators/i386-wine-devel/files/binbounce.wow64 b/emulators/i386-wine-devel/files/binbounce.wow64 >new file mode 100644 >index 000000000000..3ea3af7e7158 >--- /dev/null >+++ b/emulators/i386-wine-devel/files/binbounce.wow64 >@@ -0,0 +1,25 @@ >+#!/bin/sh >+ >+TARGET="`realpath $0`" >+ >+LOCALBASE=${TARGET%/*}/.. >+BINNAME=${TARGET##*/} >+ >+if [ -z "$__BINBOUNCE_BOOTSTRAP" ] >+then >+ export LIBGL_DRIVERS_PATH=$LOCALBASE/lib32/dri >+ export LD_32_LIBRARY_PATH="$LOCALBASE/lib32":"$LOCALBASE/lib32/wine":"$LD_32_LIBRARY_PATH":/usr/lib32 >+ export LD_32_LIBRARY_PATH_RPATH=y >+ export PATH="$LOCALBASE/bin32":"$PATH" >+ export __BINBOUNCE_BOOTSTRAP="1" >+ >+ WINE32_VERSION=`$LOCALBASE/bin32/wine --version` >+ WINE64_VERSION=`wine64 --version` >+ if [ "$WINE32_VERSION" != "$WINE64_VERSION" ] >+ then >+ echo "Please, make sure that wine [$WINE32_VERSION] and wine64 [$WINE64_VERSION] versions match each other." >+ exit 1 >+ fi >+fi >+ >+exec "$LOCALBASE/bin32/$BINNAME" "$@" >diff --git a/emulators/wine-devel/Makefile b/emulators/wine-devel/Makefile >index ea9d6d0731a4..e86d7255d743 100644 >--- a/emulators/wine-devel/Makefile >+++ b/emulators/wine-devel/Makefile >@@ -61,6 +61,10 @@ OPTIONS_DEFINE= CUPS DOCS DOSBOX GCC GNUTLS HAL LDAP LIBXSLT MPG123 OPENAL STAGI > OPTIONS_DEFAULT=GCC GNUTLS X11 > OPTIONS_SUB= yes > >+.if defined(WINE_SLAVE_BUILD) >+OPTIONS_DEFINE+=WOW64 >+.endif >+ > DOSBOX_DESC= Use DOSBox to run MS-DOS programs > LIBXSLT_DESC= Use libxslt (only used by msxml3.dll) > VKD3D_DESC= Direct3D 12 support via Vulkan >@@ -68,6 +72,7 @@ VULKAN_DESC= Vulkan API support > WINEMAKER_DESC= Fully support winemaker (requires Perl) > GECKO_DESC= Bundle Gecko MSI package for Wine > MONO_DESC= Bundle Mono MSI package for Wine >+WOW64_DESC= Allow simultaneous installation of 32- and 64-bit Wine > > CUPS_CONFIGURE_WITH= cups > CUPS_LIB_DEPENDS= libcups.so:print/cups >@@ -122,6 +127,12 @@ X11_LIB_DEPENDS= libfontconfig.so:x11-fonts/fontconfig \ > > .include <bsd.port.pre.mk> > >+.if ${PORT_OPTIONS:MWOW64} >+ACTUAL-PACKAGE-DEPENDS= ${ECHO_CMD} "\"wine-devel\": {origin: \"emulators/wine-devel\", version: \"${PKGVERSION}\"}" >+BINBOUNCE= binbounce.wow64 >+PORTDATA= >+.endif >+ > .if ${ARCH} == amd64 > # Wine is composed of three parts: > # - wine (aka this port) is the 32-bit component and runs 32-bit programs (on FreeBSD/i386) >@@ -136,13 +147,6 @@ X11_LIB_DEPENDS= libfontconfig.so:x11-fonts/fontconfig \ > # --libdir is required since Wine defaults to "${PREFIX}/lib64" on amd64. > CONFIGURE_ARGS+= --enable-win64 --libdir=${PREFIX}/lib > PLIST_SUB+= WINE32="@comment " WINE64="" >- >-# Wine assumes a WoW64 package is available, however WoW64 is not yet >-# available on FreeBSD. Also fix the desktop file. >-post-patch: >- ${REINPLACE_CMD} 's|/wine|/wine64|g' ${WRKSRC}/tools/wineapploader.in >- ${REINPLACE_CMD} '/Exec/s|wine|wine64|g' ${WRKSRC}/loader/wine.desktop >- > .else > PLIST_SUB+= WINE32="" WINE64="@comment " > .endif >@@ -175,6 +179,21 @@ post-install: > .endfor > ${INSTALL_DATA} ${WRKSRC}/programs/winedbg/README ${STAGEDIR}${DOCSDIR}/README.winedbg > ${INSTALL_DATA} ${WRKSRC}/tools/winedump/README ${STAGEDIR}${DOCSDIR}/README.winedump >+.if ${PORT_OPTIONS:MWOW64} >+ for i in `${GREP} ^bin ${TMPPLIST} | ${XARGS} -n1 basename` ; do \ >+ [ "$${i}" = "wine" ] || ${RM} ${STAGEDIR}${PREFIX}/bin/$${i} ${STAGEDIR}${PREFIX}/bin32/$${i} ; \ >+ done >+ ${RM} -r ${STAGEDIR}${PREFIX}/include/wine >+ ${RM} -r ${STAGEDIR}${PREFIX}/man >+ ${RM} -r ${STAGEDIR}${PREFIX}/share/wine/fonts >+ ${RM} -r ${STAGEDIR}${PREFIX}/share/wine/gecko >+ ${RM} -r ${STAGEDIR}${PREFIX}/share/wine/mono >+ ${RM} -r ${STAGEDIR}${DOCSDIR} >+ ${RM} ${STAGEDIR}${PREFIX}/share/applications/wine.desktop >+ ${RM} ${STAGEDIR}${PREFIX}/share/wine/*.inf >+ ${RM} ${STAGEDIR}${PREFIX}/share/wine/*.nls >+ ${REINPLACE_CMD} -n -E -e "/^(@|bin\/wine$$|lib\/)/p" ${TMPPLIST} >+.endif > > check-wine-devel-vs-staging: > @${GREP} %%STAGING%% pkg-plist | while read f; do \
You cannot view the attachment while viewing its details because your browser does not support IFRAMEs.
View the attachment on a separate page
.
View Attachment As Diff
View Attachment As Raw
Actions:
View
|
Diff
Attachments on
bug 242625
:
209913
|
209954
|
210022
|
210029
|
210031
| 210388