FreeBSD Bugzilla – Attachment 226663 Details for
Bug 257284
emulators/wine: Update to 6.0.1 to match emulators/i386-wine ports
Home
|
New
|
Browse
|
Search
|
[?]
|
Reports
|
Help
|
New Account
|
Log In
Remember
[x]
|
Forgot Password
Login:
[x]
[patch]
wow64 wrapper + ld_preload workaround (fixed llvm path)
wow64-wrapper-v2.patch (text/plain), 4.41 KB, created by
Alex S
on 2021-07-24 23:14:36 UTC
(
hide
)
Description:
wow64 wrapper + ld_preload workaround (fixed llvm path)
Filename:
MIME Type:
Creator:
Alex S
Created:
2021-07-24 23:14:36 UTC
Size:
4.41 KB
patch
obsolete
>diff --git a/emulators/wine/Makefile b/emulators/wine/Makefile >index 1e906e38b82e..7af4e43d8a44 100644 >--- a/emulators/wine/Makefile >+++ b/emulators/wine/Makefile >@@ -154,6 +154,16 @@ pre-build: > cd ${WRKSRC} && ${MAKE_CMD} depend > > post-install: >+.if ${ARCH} == i386 >+ ${MV} ${STAGEDIR}${PREFIX}/bin/wineserver ${STAGEDIR}${PREFIX}/bin/wineserver32 >+ ${MV} ${STAGEDIR}${PREFIX}/bin/wine ${STAGEDIR}${PREFIX}/bin/wine.bin >+ ${INSTALL_SCRIPT} ${FILESDIR}/wine.sh ${STAGEDIR}${PREFIX}/bin/wine >+.else >+ ${MV} ${STAGEDIR}${PREFIX}/bin/wine64 ${STAGEDIR}${PREFIX}/bin/wine64.bin >+ ${INSTALL_SCRIPT} ${FILESDIR}/wine.sh ${STAGEDIR}${PREFIX}/bin/wine64 >+ ${INSTALL_SCRIPT} ${FILESDIR}/wine-wow64.sh ${STAGEDIR}${PREFIX}/bin/wine >+ ${INSTALL_SCRIPT} ${FILESDIR}/pkg32.sh ${STAGEDIR}${DATADIR}/pkg32.sh >+.endif > @${MV} -f ${STAGEDIR}${WINELIBDIR}/libwine.so.1.0 \ > ${STAGEDIR}${WINELIBDIR}/libwine.so.1 > @${LN} -sf libwine.so.1 ${STAGEDIR}/${WINELIBDIR}/libwine.so >diff --git a/emulators/wine/files/pkg32.sh b/emulators/wine/files/pkg32.sh >new file mode 100644 >index 000000000000..7aebca5b7cd1 >--- /dev/null >+++ b/emulators/wine/files/pkg32.sh >@@ -0,0 +1,13 @@ >+#!/bin/sh -e >+if [ "$(id -u)" = 0 ] >+then >+ echo "Don't run this script as root!" >+ exit 1 >+fi >+ >+I386_ROOT="${WINE_i386_ROOT:-$HOME/.i386-wine-pkg}" >+ >+mkdir -p "$I386_ROOT" >+ABI=$(pkg config ABI | sed s/amd64/i386/) >+echo pkg -o ABI="$ABI" -o INSTALL_AS_USER=true -o RUN_SCRIPTS=false --rootdir "$I386_ROOT" "$@" >+exec pkg -o ABI="$ABI" -o INSTALL_AS_USER=true -o RUN_SCRIPTS=false --rootdir "$I386_ROOT" "$@" >diff --git a/emulators/wine/files/wine-wow64.sh b/emulators/wine/files/wine-wow64.sh >new file mode 100644 >index 000000000000..02900b99a663 >--- /dev/null >+++ b/emulators/wine/files/wine-wow64.sh >@@ -0,0 +1,40 @@ >+#!/bin/sh -e >+TARGET="$(realpath "$0")" >+PREFIX="${TARGET%/*/*}" >+LOCALBASE="${PREFIX}" >+ >+I386_ROOT="${WINE_i386_ROOT:-$HOME/.i386-wine-pkg}" >+ >+if [ ! -f "$I386_ROOT/$PREFIX/bin/wine" ] >+then >+ printf "%s doesn't exist!\n\n" "$I386_ROOT/$PREFIX/bin/wine" >+ printf "Try installing 32-bit wine with\n\t%s\n" "$PREFIX/share/wine/pkg32.sh install wine mesa-dri" >+ exit 1 >+fi >+ >+WINE32_VERSION=$(env -u WINELOADERNOEXEC "$I386_ROOT/$PREFIX/bin/wine" --version) >+WINE64_VERSION=$(env -u WINELOADERNOEXEC "${TARGET}64" --version) >+if [ "$WINE32_VERSION" != "$WINE64_VERSION" ] >+then >+ printf "wine [%s] and wine64 [%s] versions do not match!\n\n" "$WINE32_VERSION" "$WINE64_VERSION" >+ printf "Try updating 32-bit wine with\n\t%s\n" "$PREFIX/share/wine/pkg32.sh upgrade" >+ exit 1 >+fi >+ >+export LIBGL_DRIVERS_PATH="${LIBGL_DRIVERS_PATH:+$LIBGL_DRIVERS_PATH:}$LOCALBASE/lib/dri:$LOCALBASE/lib32/dri:$I386_ROOT/$LOCALBASE/lib/dri" >+export LD_32_LIBRARY_PATH="${LD_32_LIBRARY_PATH:+$LD_32_LIBRARY_PATH:}$I386_ROOT/$PREFIX/lib/wine:$LOCALBASE/lib32:$I386_ROOT/$LOCALBASE/lib" >+for d in "$I386_ROOT/$LOCALBASE"/llvm*/lib >+do >+ if [ -d "$d" ] >+ then >+ export LD_32_LIBRARY_PATH="$LD_32_LIBRARY_PATH:$d" >+ fi >+done >+export LD_32_LIBRARY_PATH_RPATH=y >+ >+if [ -z "$WINE_NO_WOW64" ] >+then >+ export WINESERVER="${TARGET}server" >+fi >+ >+exec "$I386_ROOT/$PREFIX/bin/wine" "$@" >diff --git a/emulators/wine/files/wine.sh b/emulators/wine/files/wine.sh >new file mode 100644 >index 000000000000..9d46ba6be4e9 >--- /dev/null >+++ b/emulators/wine/files/wine.sh >@@ -0,0 +1,13 @@ >+#!/bin/sh >+TARGET="$(realpath "$0")" >+ >+if [ -z "$WINESERVER" ] && [ -f "${TARGET}server32" ] >+then >+ export WINESERVER="${TARGET}server32" >+fi >+ >+# workaround for https://bugs.winehq.org/show_bug.cgi?id=50257 >+export LD_BIND_NOW=1 >+export LD_32_BIND_NOW=1 >+ >+exec "${TARGET}.bin" "$@" >diff --git a/emulators/wine/pkg-plist b/emulators/wine/pkg-plist >index e0ce9b935d1f..56204d3a63ad 100644 >--- a/emulators/wine/pkg-plist >+++ b/emulators/wine/pkg-plist >@@ -5,8 +5,10 @@ bin/notepad > bin/regedit > bin/regsvr32 > bin/widl >-%%WINE32%%bin/wine >+bin/wine >+%%WINE32%%bin/wine.bin > %%WINE64%%bin/wine64 >+%%WINE64%%bin/wine64.bin > bin/wineboot > bin/winebuild > bin/winecfg >@@ -20,7 +22,8 @@ bin/winegcc > bin/winemaker > bin/winemine > bin/winepath >-bin/wineserver >+%%WINE32%%bin/wineserver32 >+%%WINE64%%bin/wineserver > bin/wmc > bin/wrc > include/wine/debug.h >@@ -3367,6 +3370,7 @@ share/applications/wine.desktop > %%DATADIR%%/nls/normnfkc.nls > %%DATADIR%%/nls/normnfkd.nls > %%DATADIR%%/nls/sortdefault.nls >+%%WINE64%%%%DATADIR%%/pkg32.sh > %%PORTDOCS%%%%DOCSDIR%%/ANNOUNCE > %%PORTDOCS%%%%DOCSDIR%%/AUTHORS > %%PORTDOCS%%%%DOCSDIR%%/README
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 257284
:
226624
|
226662
| 226663