FreeBSD Bugzilla – Attachment 210031 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 v5
wow64-option-v5.patch (text/plain), 6.21 KB, created by
Alex S
on 2019-12-18 12:37:19 UTC
(
hide
)
Description:
wow64-option.patch v5
Filename:
MIME Type:
Creator:
Alex S
Created:
2019-12-18 12:37:19 UTC
Size:
6.21 KB
patch
obsolete
>diff --git a/emulators/i386-wine-devel/Makefile.i386 b/emulators/i386-wine-devel/Makefile.i386 >index 2044c8ab616a..78820fe73891 100644 >--- a/emulators/i386-wine-devel/Makefile.i386 >+++ b/emulators/i386-wine-devel/Makefile.i386 >@@ -14,10 +14,11 @@ PKGDEINSTALL= ${PKGINSTALL} > > RUN_DEPENDS= mesa-dri>0:graphics/mesa-dri > >-CONFLICTS_INSTALL?= wine-[0-9]* wine-staging-[0-9]* wine-devel-[0-9]* \ >+WINE_CROSS_BUILD_OPTIONS=WOW64 >+ >+CONFLICTS_INSTALL?= wine-[0-9]* wine-staging-[0-9]* \ > i386-wine-[0-9]* i386-wine-staging-[0-9]* > >-ACTUAL-PACKAGE-DEPENDS= ${DO_NADA} > WINELIBDIR= ${PREFIX}/lib32 > CONFIGURE_ARGS+= --bindir=${PREFIX}/bin32 --libdir=${WINELIBDIR} > PLIST_REINPLACE+= winelib >@@ -36,7 +37,7 @@ 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} ; \ >@@ -77,3 +78,12 @@ post-install-script: > ${ECHO_CMD} ${DATADIR:S|$(PREFIX)/||}/patch-nvidia.sh >> ${TMPPLIST} > > .include "${MASTERDIR}/Makefile" >+ >+.if ${PORT_OPTIONS:MWOW64} >+ACTUAL-PACKAGE-DEPENDS= ${ECHO_CMD} "\"wine-devel\": {origin: \"emulators/wine-devel\", version: \"${PKGVERSION}\"}" >+BINBOUNCE= binbounce.wow64 >+.else >+CONFLICTS_INSTALL+= wine-devel-[0-9]* >+ACTUAL-PACKAGE-DEPENDS= ${DO_NADA} >+BINBOUNCE= binbounce >+.endif >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 09bd72019831..75e5fff14aab 100644 >--- a/emulators/wine-devel/Makefile >+++ b/emulators/wine-devel/Makefile >@@ -3,7 +3,7 @@ > > PORTNAME= wine > DISTVERSION= 4.21 >-PORTEPOCH= 1 >+PORTEPOCH= 2 > CATEGORIES= emulators > MASTER_SITES= SF/${PORTNAME}/Source \ > http://mirrors.ibiblio.org/wine/source/4.x/ >@@ -27,7 +27,7 @@ LIB_DEPENDS= libFAudio.so:audio/faudio \ > USES= bison desktop-file-utils gmake localbase shebangfix tar:xz xorg > > CONFLICTS_INSTALL= wine-[0-9]* wine-staging-[0-9]* i386-wine-[0-9]* \ >- i386-wine-staging-[0-9]* i386-wine-devel-[0-9]* >+ i386-wine-staging-[0-9]* > > GNU_CONFIGURE= yes > CONFIGURE_ARGS+=--verbose \ >@@ -55,12 +55,16 @@ SHEBANG_FILES= tools/make_requests tools/winemaker/winemaker \ > > SUB_FILES= pkg-message > >-PORTDATA= l_intl.nls wine.inf >- > OPTIONS_DEFINE= CUPS DOCS DOSBOX GCC GNUTLS HAL LDAP LIBXSLT MPG123 OPENAL STAGING V4L VKD3D VULKAN WINEMAKER X11 GECKO MONO > OPTIONS_DEFAULT=GCC GNUTLS X11 > OPTIONS_SUB= yes > >+OPTIONS_DEFINE_amd64=WOW64 >+ >+.if defined(WINE_CROSS_BUILD_OPTIONS) >+OPTIONS_DEFINE+=${WINE_CROSS_BUILD_OPTIONS} >+.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,14 @@ X11_LIB_DEPENDS= libfontconfig.so:x11-fonts/fontconfig \ > > .include <bsd.port.pre.mk> > >+.if empty(PORT_OPTIONS:MWOW64) || ${ARCH} == amd64 >+PORTDATA= l_intl.nls wine.inf >+.endif >+ >+.if empty(PORT_OPTIONS:MWOW64) >+CONFLICTS_INSTALL+= i386-wine-devel-[0-9]* >+.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 +149,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 +181,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 ${ARCH} == i386 && ${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