diff --git a/proton-tkg/proton-tkg-profiles/advanced-customization.cfg b/proton-tkg/proton-tkg-profiles/advanced-customization.cfg index f43fb81f1..ffa86ff64 100644 --- a/proton-tkg/proton-tkg-profiles/advanced-customization.cfg +++ b/proton-tkg/proton-tkg-profiles/advanced-customization.cfg @@ -77,9 +77,6 @@ _pefixup="objcopy" # Set to true to forcefully disable using ccache (else it'll be used if detected). _NOCCACHE="false" -# Set to true to disable usage of 32-bit unix libs and use Wine 8.0+ experimental WoW64 for 32-bit apps. Default is "false" as it's still under development. -_NOLIB32="false" - # Optionally set additional make dependencies for makepkg builds. Multiple elements should be separated by a space. # Only affects makepkg _user_makedeps="" diff --git a/proton-tkg/proton-tkg-profiles/sample-external-config.cfg b/proton-tkg/proton-tkg-profiles/sample-external-config.cfg index d3d75c364..1f451e2d8 100644 --- a/proton-tkg/proton-tkg-profiles/sample-external-config.cfg +++ b/proton-tkg/proton-tkg-profiles/sample-external-config.cfg @@ -112,9 +112,6 @@ _pefixup="objcopy" # Set to true to forcefully disable using ccache (else it'll be used if detected). _NOCCACHE="false" -# Set to true to disable usage of 32-bit unix libs and use Wine 8.0+ experimental WoW64 for 32-bit apps. Default is "false" as it's still under development. -_NOLIB32="false" - # Optionally set additional make dependencies for makepkg builds. Multiple elements should be separated by a space. # Only affects makepkg _user_makedeps="" diff --git a/proton-tkg/proton-tkg.sh b/proton-tkg/proton-tkg.sh index 54ed4a785..1010083fc 100755 --- a/proton-tkg/proton-tkg.sh +++ b/proton-tkg/proton-tkg.sh @@ -96,57 +96,57 @@ function new_lib_path_check { # We want to track builds using the new lib paths - introduced with 0aa335b1060428f5f799c93e3c6dea2bc2dd864a-79a148e1fa8b5ada2dc8fec03cf866a3d78c0d54 # i386 - if [ -d "$_nowhere/proton_dist_tmp/$_lib32name/wine/i386-unix" ] && [ ! -d "$_nowhere/proton_dist_tmp/$_lib32name/wine/i386-windows" ]; then # This case shouldn't exist + if [ -d "$_nowhere/proton_dist_tmp/lib/wine/i386-unix" ] && [ ! -d "$_nowhere/proton_dist_tmp/lib/wine/i386-windows" ]; then # This case shouldn't exist _new_lib_paths="true" _new_lib_paths_69="false" - _i386_unix_path="$_nowhere/proton_dist_tmp/$_lib32name/wine/i386-unix/" - _i386_windows_path="$_nowhere/proton_dist_tmp/$_lib32name/wine/" - _i386_windows_tail="/$_lib32name/wine" - elif [ ! -d "$_nowhere/proton_dist_tmp/$_lib32name/wine/i386-unix" ] && [ -d "$_nowhere/proton_dist_tmp/$_lib32name/wine/i386-windows" ] && [ ! -e "$_nowhere"/proton_dist_tmp/$_lib32name/libwine.* ]; then + _i386_unix_path="$_nowhere/proton_dist_tmp/lib/wine/i386-unix/" + _i386_windows_path="$_nowhere/proton_dist_tmp/lib/wine/" + _i386_windows_tail="/lib/wine" + elif [ ! -d "$_nowhere/proton_dist_tmp/lib/wine/i386-unix" ] && [ -d "$_nowhere/proton_dist_tmp/lib/wine/i386-windows" ] && [ ! -e "$_nowhere"/proton_dist_tmp/lib/libwine.* ]; then _new_lib_paths="true" _new_lib_paths_69="false" - _i386_unix_path="$_nowhere/proton_dist_tmp/$_lib32name/" - _i386_windows_path="$_nowhere/proton_dist_tmp/$_lib32name/wine/i386-windows/" - _i386_windows_tail="/$_lib32name/wine/i386-windows" - elif [ -d "$_nowhere/proton_dist_tmp/$_lib32name/wine/i386-unix" ] && [ -d "$_nowhere/proton_dist_tmp/$_lib32name/wine/i386-windows" ] && [ ! -e "$_nowhere"/proton_dist_tmp/$_lib32name/libwine.* ]; then + _i386_unix_path="$_nowhere/proton_dist_tmp/lib/" + _i386_windows_path="$_nowhere/proton_dist_tmp/lib/wine/i386-windows/" + _i386_windows_tail="/lib/wine/i386-windows" + elif [ -d "$_nowhere/proton_dist_tmp/lib/wine/i386-unix" ] && [ -d "$_nowhere/proton_dist_tmp/lib/wine/i386-windows" ] && [ ! -e "$_nowhere"/proton_dist_tmp/lib/libwine.* ]; then _new_lib_paths="true" _new_lib_paths_69="true" - _i386_unix_path="$_nowhere/proton_dist_tmp/$_lib32name/wine/i386-unix/" - _i386_windows_path="$_nowhere/proton_dist_tmp/$_lib32name/wine/i386-windows/" - _i386_windows_tail="/$_lib32name/wine/i386-windows" + _i386_unix_path="$_nowhere/proton_dist_tmp/lib/wine/i386-unix/" + _i386_windows_path="$_nowhere/proton_dist_tmp/lib/wine/i386-windows/" + _i386_windows_tail="/lib/wine/i386-windows" else _new_lib_paths="false" _new_lib_paths_69="false" - _i386_unix_path="$_nowhere/proton_dist_tmp/$_lib32name/" - _i386_windows_path="$_nowhere/proton_dist_tmp/$_lib32name/wine/" - _i386_windows_tail="/$_lib32name/wine" + _i386_unix_path="$_nowhere/proton_dist_tmp/lib/" + _i386_windows_path="$_nowhere/proton_dist_tmp/lib/wine/" + _i386_windows_tail="/lib/wine" fi # x86_64 - if [ -d "$_nowhere/proton_dist_tmp/$_lib64name/wine/x86_64-unix" ] && [ ! -d "$_nowhere/proton_dist_tmp/$_lib64name/wine/x86_64-windows" ]; then # This case shouldn't exist + if [ -d "$_nowhere/proton_dist_tmp/lib64/wine/x86_64-unix" ] && [ ! -d "$_nowhere/proton_dist_tmp/lib64/wine/x86_64-windows" ]; then # This case shouldn't exist _new_lib_paths="true" _new_lib_paths_69="false" - _x86_64_unix_path="$_nowhere/proton_dist_tmp/$_lib64name/wine/x86_64-unix/" - _x86_64_windows_path="$_nowhere/proton_dist_tmp/$_lib64name/wine/" - _x86_64_windows_tail="/$_lib64name/wine" - elif [ ! -d "$_nowhere/proton_dist_tmp/$_lib64name/wine/x86_64-unix" ] && [ -d "$_nowhere/proton_dist_tmp/$_lib64name/wine/x86_64-windows" ] && [ ! -e "$_nowhere"/proton_dist_tmp/$_lib64name/libwine.* ]; then + _x86_64_unix_path="$_nowhere/proton_dist_tmp/lib64/wine/x86_64-unix/" + _x86_64_windows_path="$_nowhere/proton_dist_tmp/lib64/wine/" + _x86_64_windows_tail="/lib64/wine" + elif [ ! -d "$_nowhere/proton_dist_tmp/lib64/wine/x86_64-unix" ] && [ -d "$_nowhere/proton_dist_tmp/lib64/wine/x86_64-windows" ] && [ ! -e "$_nowhere"/proton_dist_tmp/lib64/libwine.* ]; then _new_lib_paths="true" _new_lib_paths_69="false" - _x86_64_unix_path="$_nowhere/proton_dist_tmp/$_lib64name/" - _x86_64_windows_path="$_nowhere/proton_dist_tmp/$_lib64name/wine/x86_64-windows/" - _x86_64_windows_tail="$_lib64name/wine/x86_64-windows" - elif [ -d "$_nowhere/proton_dist_tmp/$_lib64name/wine/x86_64-unix" ] && [ -d "$_nowhere/proton_dist_tmp/$_lib64name/wine/x86_64-windows" ] && [ ! -e "$_nowhere"/proton_dist_tmp/$_lib64name/libwine.* ]; then + _x86_64_unix_path="$_nowhere/proton_dist_tmp/lib64/" + _x86_64_windows_path="$_nowhere/proton_dist_tmp/lib64/wine/x86_64-windows/" + _x86_64_windows_tail="lib64/wine/x86_64-windows" + elif [ -d "$_nowhere/proton_dist_tmp/lib64/wine/x86_64-unix" ] && [ -d "$_nowhere/proton_dist_tmp/lib64/wine/x86_64-windows" ] && [ ! -e "$_nowhere"/proton_dist_tmp/lib64/libwine.* ]; then _new_lib_paths="true" _new_lib_paths_69="true" - _x86_64_unix_path="$_nowhere/proton_dist_tmp/$_lib64name/wine/x86_64-unix/" - _x86_64_windows_path="$_nowhere/proton_dist_tmp/$_lib64name/wine/x86_64-windows/" - _x86_64_windows_tail="$_lib64name/wine/x86_64-windows" + _x86_64_unix_path="$_nowhere/proton_dist_tmp/lib64/wine/x86_64-unix/" + _x86_64_windows_path="$_nowhere/proton_dist_tmp/lib64/wine/x86_64-windows/" + _x86_64_windows_tail="lib64/wine/x86_64-windows" else _new_lib_paths="false" _new_lib_paths_69="false" - _x86_64_unix_path="$_nowhere/proton_dist_tmp/$_lib64name/" - _x86_64_windows_path="$_nowhere/proton_dist_tmp/$_lib64name/wine/" - _x86_64_windows_tail="/$_lib64name/wine" + _x86_64_unix_path="$_nowhere/proton_dist_tmp/lib64/" + _x86_64_windows_path="$_nowhere/proton_dist_tmp/lib64/wine/" + _x86_64_windows_tail="/lib64/wine" fi echo "_i386_unix_path=$_i386_unix_path" >>"$_logdir"/proton-tkg.log 2>&1 @@ -192,35 +192,28 @@ function build_vrclient { cp -a "${_nowhere}"/Proton/vrclient_x64/* build/vrclient.win32 && mv build/vrclient.win32/vrclient_x64 build/vrclient.win32/vrclient && mv build/vrclient.win32/vrclient/vrclient_x64.spec build/vrclient.win32/vrclient/vrclient.spec cd build/vrclient.win64 - winemaker $WINEMAKERFLAGS -L"$_nowhere/proton_dist_tmp/$_lib64name/" -L"$_nowhere/proton_dist_tmp/$_lib64name/wine/" -I"$_nowhere/openvr/build/vrclient.win64/vrclient_x64/" -I"$_nowhere/openvr/build/vrclient.win64/" vrclient_x64 + winemaker $WINEMAKERFLAGS -L"$_nowhere/proton_dist_tmp/lib64/" -L"$_nowhere/proton_dist_tmp/lib64/wine/" -I"$_nowhere/openvr/build/vrclient.win64/vrclient_x64/" -I"$_nowhere/openvr/build/vrclient.win64/" vrclient_x64 make -e CC="winegcc -m64" CXX="wineg++ -m64 $_cxx_addon" -C "$_nowhere/openvr/build/vrclient.win64/vrclient_x64" -j$(nproc) && strip --strip-debug vrclient_x64/vrclient_x64.dll.so || exit 1 winebuild --dll --fake-module -E "$_nowhere/openvr/build/vrclient.win64/vrclient_x64/vrclient_x64.spec" -o vrclient_x64.dll.fake || exit 1 cd ../.. cd build/vrclient.win32 - if [ "$_NOLIB32" != "true" ]; then - winemaker $WINEMAKERFLAGS --wine32 -L"$_nowhere/proton_dist_tmp/$_lib32name/" -L"$_nowhere/proton_dist_tmp/$_lib32name/wine/" -I"$_nowhere/openvr/build/vrclient.win32/vrclient/" -I"$_nowhere/openvr/build/vrclient.win32/" vrclient - make -e CC="winegcc -m32" CXX="wineg++ -m32 $_cxx_addon" -C "$_nowhere/openvr/build/vrclient.win32/vrclient" -j$(nproc) && strip --strip-debug vrclient/vrclient.dll.so || exit 1 - fi + winemaker $WINEMAKERFLAGS --wine32 -L"$_nowhere/proton_dist_tmp/lib/" -L"$_nowhere/proton_dist_tmp/lib/wine/" -I"$_nowhere/openvr/build/vrclient.win32/vrclient/" -I"$_nowhere/openvr/build/vrclient.win32/" vrclient + make -e CC="winegcc -m32" CXX="wineg++ -m32 $_cxx_addon" -C "$_nowhere/openvr/build/vrclient.win32/vrclient" -j$(nproc) && strip --strip-debug vrclient/vrclient.dll.so || exit 1 winebuild --dll --fake-module -E "$_nowhere/openvr/build/vrclient.win32/vrclient/vrclient.spec" -o vrclient.dll.fake || exit 1 cd "$_nowhere" - mkdir -p proton_dist_tmp/lib/wine/dxvk - mkdir -p proton_dist_tmp/lib64/wine/dxvk cp -v "${_nowhere}"/openvr/bin/win32/openvr_api.dll proton_dist_tmp/lib/wine/dxvk/openvr_api_dxvk.dll cp -v "${_nowhere}"/openvr/bin/win64/openvr_api.dll proton_dist_tmp/lib64/wine/dxvk/openvr_api_dxvk.dll if [ "$_new_lib_paths" = "true" ]; then - if [ "$_new_lib_paths_69" = "true" ] && [ -d proton_dist_tmp/$_lib32name/wine/i386-windows ] && [ -d proton_dist_tmp/$_lib64name/wine/x86_64-windows ]; then - cp -v "${_nowhere}"/openvr/build/vrclient.win64/vrclient_x64/vrclient_x64.dll.so proton_dist_tmp/$_lib64name/wine/x86_64-unix/ && cp -v "${_nowhere}"/openvr/build/vrclient.win64/vrclient_x64.dll.fake proton_dist_tmp/$_lib64name/wine/x86_64-windows/vrclient_x64.dll - if [ "$_NOLIB32" != "true" ]; then - cp -v "${_nowhere}"/openvr/build/vrclient.win32/vrclient/vrclient.dll.so proton_dist_tmp/$_lib32name/wine/i386-unix/ - fi - cp -v "${_nowhere}"/openvr/build/vrclient.win32/vrclient.dll.fake proton_dist_tmp/$_lib32name/wine/i386-windows/vrclient.dll + if [ "$_new_lib_paths_69" = "true" ] && [ -d proton_dist_tmp/lib/wine/i386-windows ] && [ -d proton_dist_tmp/lib64/wine/x86_64-windows ]; then + cp -v "${_nowhere}"/openvr/build/vrclient.win64/vrclient_x64/vrclient_x64.dll.so proton_dist_tmp/lib64/wine/x86_64-unix/ && cp -v "${_nowhere}"/openvr/build/vrclient.win64/vrclient_x64.dll.fake proton_dist_tmp/lib64/wine/x86_64-windows/vrclient_x64.dll + cp -v "${_nowhere}"/openvr/build/vrclient.win32/vrclient/vrclient.dll.so proton_dist_tmp/lib/wine/i386-unix/ && cp -v "${_nowhere}"/openvr/build/vrclient.win32/vrclient.dll.fake proton_dist_tmp/lib/wine/i386-windows/vrclient.dll fi else - cp -v "${_nowhere}"/openvr/build/vrclient.win64/vrclient_x64/vrclient_x64.dll.so proton_dist_tmp/$_lib64name/wine/ && cp -v "${_nowhere}"/openvr/build/vrclient.win64/vrclient_x64.dll.fake proton_dist_tmp/$_lib64name/wine/fakedlls/vrclient_x64.dll - cp -v "${_nowhere}"/openvr/build/vrclient.win32/vrclient/vrclient.dll.so proton_dist_tmp/$_lib32name/wine/ && cp -v "${_nowhere}"/openvr/build/vrclient.win32/vrclient.dll.fake proton_dist_tmp/$_lib32name/wine/fakedlls/vrclient.dll + cp -v "${_nowhere}"/openvr/build/vrclient.win64/vrclient_x64/vrclient_x64.dll.so proton_dist_tmp/lib64/wine/ && cp -v "${_nowhere}"/openvr/build/vrclient.win64/vrclient_x64.dll.fake proton_dist_tmp/lib64/wine/fakedlls/vrclient_x64.dll + cp -v "${_nowhere}"/openvr/build/vrclient.win32/vrclient/vrclient.dll.so proton_dist_tmp/lib/wine/ && cp -v "${_nowhere}"/openvr/build/vrclient.win32/vrclient.dll.fake proton_dist_tmp/lib/wine/fakedlls/vrclient.dll fi } @@ -266,11 +259,9 @@ function build_lsteamclient { cd ../.. cd build/lsteamclient.win32 - if [ "$_NOLIB32" != "true" ]; then - winemaker $WINEMAKERFLAGS --dll -DSTEAM_API_EXPORTS -Dprivate=public -Dprotected=public --wine32 . - sed -re 's@_LDFLAGS=@_LDFLAGS= -static-libgcc -static-libstdc++ -ldl @' -i "$_nowhere/Proton/build/lsteamclient.win32/Makefile" - make -e CC="winegcc -m32" CXX="wineg++ -m32 $_cxx_addon" -C "$_nowhere/Proton/build/lsteamclient.win32" -j$(nproc) && strip --strip-debug lsteamclient.dll.so || exit 1 - fi + winemaker $WINEMAKERFLAGS --dll -DSTEAM_API_EXPORTS -Dprivate=public -Dprotected=public --wine32 . + sed -re 's@_LDFLAGS=@_LDFLAGS= -static-libgcc -static-libstdc++ -ldl @' -i "$_nowhere/Proton/build/lsteamclient.win32/Makefile" + make -e CC="winegcc -m32" CXX="wineg++ -m32 $_cxx_addon" -C "$_nowhere/Proton/build/lsteamclient.win32" -j$(nproc) && strip --strip-debug lsteamclient.dll.so || exit 1 if [ "$_new_lib_paths_69" = "true" ]; then touch "$_nowhere/Proton/build/lsteamclient.win32/steamclient.spec" winebuild --dll --fake-module -m32 -E "$_nowhere/Proton/build/lsteamclient.win32/steamclient.spec" --dll-name=lsteamclient -o lsteamclient.dll.fake || exit 1 @@ -280,23 +271,21 @@ function build_lsteamclient { # Inject lsteamclient libs in our wine-tkg-git build if [ "$_new_lib_paths" = "true" ]; then if [ "$_new_lib_paths_69" = "true" ]; then - cp -v Proton/build/lsteamclient.win64/lsteamclient.dll.so proton_dist_tmp/$_lib64name/wine/x86_64-unix/ - if [ "$_NOLIB32" != "true" ]; then - cp -v Proton/build/lsteamclient.win32/lsteamclient.dll.so proton_dist_tmp/$_lib32name/wine/i386-unix/ - fi + cp -v Proton/build/lsteamclient.win64/lsteamclient.dll.so proton_dist_tmp/lib64/wine/x86_64-unix/ + cp -v Proton/build/lsteamclient.win32/lsteamclient.dll.so proton_dist_tmp/lib/wine/i386-unix/ else - cp -v Proton/build/lsteamclient.win64/lsteamclient.dll.so proton_dist_tmp/$_lib64name/wine/ - cp -v Proton/build/lsteamclient.win32/lsteamclient.dll.so proton_dist_tmp/$_lib32name/wine/ + cp -v Proton/build/lsteamclient.win64/lsteamclient.dll.so proton_dist_tmp/lib64/wine/ + cp -v Proton/build/lsteamclient.win32/lsteamclient.dll.so proton_dist_tmp/lib/wine/ fi - if [ "$_new_lib_paths_69" = "true" ] && [ -d proton_dist_tmp/$_lib32name/wine/i386-windows ] && [ -d proton_dist_tmp/$_lib64name/wine/x86_64-windows ]; then - cp -v Proton/build/lsteamclient.win64/lsteamclient.dll.fake proton_dist_tmp/$_lib64name/wine/x86_64-windows/lsteamclient.dll - cp -v Proton/build/lsteamclient.win32/lsteamclient.dll.fake proton_dist_tmp/$_lib32name/wine/i386-windows/lsteamclient.dll + if [ "$_new_lib_paths_69" = "true" ] && [ -d proton_dist_tmp/lib/wine/i386-windows ] && [ -d proton_dist_tmp/lib64/wine/x86_64-windows ]; then + cp -v Proton/build/lsteamclient.win64/lsteamclient.dll.fake proton_dist_tmp/lib64/wine/x86_64-windows/lsteamclient.dll + cp -v Proton/build/lsteamclient.win32/lsteamclient.dll.fake proton_dist_tmp/lib/wine/i386-windows/lsteamclient.dll fi else - cp -v Proton/build/lsteamclient.win64/lsteamclient.dll.so proton_dist_tmp/$_lib64name/wine/ - cp -v Proton/build/lsteamclient.win32/lsteamclient.dll.so proton_dist_tmp/$_lib32name/wine/ - cp -v Proton/build/lsteamclient.win64/lsteamclient.dll.fake proton_dist_tmp/$_lib64name/wine/fakedlls/lsteamclient.dll - cp -v Proton/build/lsteamclient.win32/lsteamclient.dll.fake proton_dist_tmp/$_lib32name/wine/fakedlls/lsteamclient.dll + cp -v Proton/build/lsteamclient.win64/lsteamclient.dll.so proton_dist_tmp/lib64/wine/ + cp -v Proton/build/lsteamclient.win32/lsteamclient.dll.so proton_dist_tmp/lib/wine/ + cp -v Proton/build/lsteamclient.win64/lsteamclient.dll.fake proton_dist_tmp/lib64/wine/fakedlls/lsteamclient.dll + cp -v Proton/build/lsteamclient.win32/lsteamclient.dll.fake proton_dist_tmp/lib/wine/fakedlls/lsteamclient.dll fi } @@ -399,20 +388,18 @@ function build_mediaconverter { cd "$_nowhere"/Proton/media-converter # 32-bit - if [ "$_NOLIB32" != "true" ]; then - mkdir -p "$_nowhere"/Proton/build/mediaconv32 - rm -rf "$_nowhere"/Proton/build/mediaconv32/* - ( if [ -d '/usr/lib32/pkgconfig' ]; then # Typical Arch path - export PKG_CONFIG_PATH="$_proton_tkg_path/gst/lib/pkgconfig:/usr/lib32/pkgconfig" - elif [ -d '/usr/lib/i386-linux-gnu/pkgconfig' ]; then # Ubuntu 18.04/19.04 path - export PKG_CONFIG_PATH="$_proton_tkg_path/gst/lib/pkgconfig:/usr/lib/i386-linux-gnu/pkgconfig" - else - export PKG_CONFIG_PATH="$_proton_tkg_path/gst/lib/pkgconfig:/usr/lib/pkgconfig" # Pretty common path, possibly helpful for OpenSuse & Fedora - fi - PKG_CONFIG_ALLOW_CROSS=1 cargo build --target i686-unknown-linux-gnu --target-dir "$_nowhere"/Proton/build/mediaconv32 --release ) - - cp -a "$_nowhere"/Proton/build/mediaconv32/i686-unknown-linux-gnu/release/libprotonmediaconverter.so "$_nowhere"/gst/lib/gstreamer-1.0/ + mkdir -p "$_nowhere"/Proton/build/mediaconv32 + rm -rf "$_nowhere"/Proton/build/mediaconv32/* + ( if [ -d '/usr/lib32/pkgconfig' ]; then # Typical Arch path + export PKG_CONFIG_PATH="$_proton_tkg_path/gst/lib/pkgconfig:/usr/lib32/pkgconfig" + elif [ -d '/usr/lib/i386-linux-gnu/pkgconfig' ]; then # Ubuntu 18.04/19.04 path + export PKG_CONFIG_PATH="$_proton_tkg_path/gst/lib/pkgconfig:/usr/lib/i386-linux-gnu/pkgconfig" + else + export PKG_CONFIG_PATH="$_proton_tkg_path/gst/lib/pkgconfig:/usr/lib/pkgconfig" # Pretty common path, possibly helpful for OpenSuse & Fedora fi + PKG_CONFIG_ALLOW_CROSS=1 cargo build --target i686-unknown-linux-gnu --target-dir "$_nowhere"/Proton/build/mediaconv32 --release ) + + cp -a "$_nowhere"/Proton/build/mediaconv32/i686-unknown-linux-gnu/release/libprotonmediaconverter.so "$_nowhere"/gst/lib/gstreamer-1.0/ # 64-bit mkdir -p "$_nowhere"/Proton/build/mediaconv64 @@ -484,13 +471,11 @@ function build_steamhelper { winemaker $WINEMAKERFLAGS --wine32 --guiexe -lsteam_api -lole32 -I"$_nowhere/Proton/lsteamclient/steamworks_sdk_142/" -I"$_nowhere/openvr/headers/" -L"$_nowhere/Proton/steam_helper" . fi - if [ "$_NOLIB32" != "true" ]; then - # 32-bit - if [ -e "$_nowhere"/Proton/steam_helper/32/libsteam_api.so ]; then - make -e CC="winegcc -m32" CXX="wineg++ -m32 $_cxx_addon" -C "$_nowhere/Proton/build/steam.win32" LIBRARIES="-L$_nowhere/Proton/steam_helper/32/ -lsteam_api -lole32 -lmsi -ldl -static-libgcc -static-libstdc++" -j$(nproc) && strip --strip-debug steam.exe.so || exit 1 - else - make -e CC="winegcc -m32" CXX="wineg++ -m32 $_cxx_addon" -C "$_nowhere/Proton/build/steam.win32" LIBRARIES="-lsteam_api -lole32 -ldl -static-libgcc -static-libstdc++" -j$(nproc) && strip --strip-debug steam.exe.so || exit 1 - fi + # 32-bit + if [ -e "$_nowhere"/Proton/steam_helper/32/libsteam_api.so ]; then + make -e CC="winegcc -m32" CXX="wineg++ -m32 $_cxx_addon" -C "$_nowhere/Proton/build/steam.win32" LIBRARIES="-L$_nowhere/Proton/steam_helper/32/ -lsteam_api -lole32 -lmsi -ldl -static-libgcc -static-libstdc++" -j$(nproc) && strip --strip-debug steam.exe.so || exit 1 + else + make -e CC="winegcc -m32" CXX="wineg++ -m32 $_cxx_addon" -C "$_nowhere/Proton/build/steam.win32" LIBRARIES="-lsteam_api -lole32 -ldl -static-libgcc -static-libstdc++" -j$(nproc) && strip --strip-debug steam.exe.so || exit 1 fi if [ "$_new_lib_paths_69" = "true" ]; then @@ -513,39 +498,35 @@ function build_steamhelper { if [ "$_new_lib_paths" = "true" ]; then # .exe 32 - always there - cp -v Proton/build/steam.win32/steam.exe.fake proton_dist_tmp/$_lib32name/wine/i386-windows/steam.exe + cp -v Proton/build/steam.win32/steam.exe.fake proton_dist_tmp/lib/wine/i386-windows/steam.exe # .exe 64 if [ -e Proton/build/steam.win64/steam.exe.fake ]; then - cp -v Proton/build/steam.win64/steam.exe.fake proton_dist_tmp/$_lib64name/wine/x86_64-windows/steam.exe + cp -v Proton/build/steam.win64/steam.exe.fake proton_dist_tmp/lib64/wine/x86_64-windows/steam.exe fi if [ "$_new_lib_paths_69" = "true" ]; then - if [ "$_NOLIB32" != "true" ]; then - # .so 32 - if [ -e Proton/build/steam.win32/steam.exe.so ]; then - cp -v Proton/build/steam.win32/steam.exe.so proton_dist_tmp/$_lib32name/wine/i386-unix/ - fi - fi + # .so 32 - always there + cp -v Proton/build/steam.win32/steam.exe.so proton_dist_tmp/lib/wine/i386-unix/ # .so 64 if [ -e Proton/build/steam.win64/steam.exe.so ]; then - cp -v Proton/build/steam.win64/steam.exe.so proton_dist_tmp/$_lib64name/wine/x86_64-unix/ + cp -v Proton/build/steam.win64/steam.exe.so proton_dist_tmp/lib64/wine/x86_64-unix/ fi else # .so 32 - always there - cp -v Proton/build/steam.win32/steam.exe.so proton_dist_tmp/$_lib32name/wine/ + cp -v Proton/build/steam.win32/steam.exe.so proton_dist_tmp/lib/wine/ fi # .so 32 if [ -e Proton/build/steam.win32/libsteam_api.so ]; then - cp -v Proton/build/steam.win32/libsteam_api.so proton_dist_tmp/$_lib32name/ + cp -v Proton/build/steam.win32/libsteam_api.so proton_dist_tmp/lib/ fi # .so 64 if [ -e Proton/build/steam.win64/32/libsteam_api.so ]; then - cp -v Proton/build/steam.win64/32/libsteam_api.so proton_dist_tmp/$_lib32name/ - cp -v Proton/build/steam.win64/64/libsteam_api.so proton_dist_tmp/$_lib64name/ + cp -v Proton/build/steam.win64/32/libsteam_api.so proton_dist_tmp/lib/ + cp -v Proton/build/steam.win64/64/libsteam_api.so proton_dist_tmp/lib64/ fi else - cp -v Proton/build/steam.win32/steam.exe.fake proton_dist_tmp/$_lib32name/wine/fakedlls/steam.exe - cp -v Proton/build/steam.win32/steam.exe.so proton_dist_tmp/$_lib32name/wine/ - cp -v Proton/build/steam.win32/libsteam_api.so proton_dist_tmp/$_lib32name/ + cp -v Proton/build/steam.win32/steam.exe.fake proton_dist_tmp/lib/wine/fakedlls/steam.exe + cp -v Proton/build/steam.win32/steam.exe.so proton_dist_tmp/lib/wine/ + cp -v Proton/build/steam.win32/libsteam_api.so proton_dist_tmp/lib/ fi fi } @@ -824,14 +805,6 @@ else # Wine-tkg-git has injected versioning and settings in the token for us, so get the values back source "$_nowhere/proton_tkg_token" - if [ "$_NOLIB32" = "true" ]; then - _lib32name="lib" - _lib64name="lib" - else - _lib32name="lib" - _lib64name="lib64" - fi - # Prompt to re-use existing gst if [ -d "${_resources_path}"/gst ] && [ -z $_reuse_built_gst ]; then echo " Existing proton gstreamer dir found. Do you want to use it instead of rebuilding?" @@ -967,15 +940,10 @@ else build_steamhelper # gst/mediaconverter - # Disable lib32 stuff when _NOLIB32 is enabled - if [ "$_NOLIB32" = "true" ]; then - _lib32_gstreamer="false" - _use_lib32_mpeg2dec_and_x264="false" - fi if [ "$_build_mediaconv" = "true" ] || [ "$_build_gstreamer" = "true" ]; then - mv "$_nowhere"/gst/lib64/* proton_dist_tmp/$_lib64name/ + mv "$_nowhere"/gst/lib64/* proton_dist_tmp/lib64/ if [ "$_lib32_gstreamer" = "true" ]; then - mv "$_nowhere"/gst/lib/* proton_dist_tmp/$_lib32name/ + mv "$_nowhere"/gst/lib/* proton_dist_tmp/lib/ fi fi rm -rf "$_nowhere/gst" diff --git a/proton-tkg/proton_template/default_pfx.py b/proton-tkg/proton_template/default_pfx.py index 03ca27c16..ebb7cd0a6 100755 --- a/proton-tkg/proton_template/default_pfx.py +++ b/proton-tkg/proton_template/default_pfx.py @@ -64,7 +64,6 @@ def setup_dll_symlinks(default_pfx_dir, dist_dir): elif bitness == 64: libdir = os.path.join(dist_dir, 'lib64/wine') newlibdir = os.path.join(dist_dir, 'lib64/wine/x86_64-windows') - wow64libdir = os.path.join(dist_dir, 'lib/wine/x86_64-windows') else: continue if os.path.exists(os.path.join(libdir, file_)): @@ -73,8 +72,6 @@ def setup_dll_symlinks(default_pfx_dir, dist_dir): target = os.path.join(libdir, 'fakedlls', file_) elif os.path.exists(os.path.join(newlibdir, file_)): target = os.path.join(newlibdir, file_) - elif os.path.exists(os.path.join(wow64libdir, file_)): - target = os.path.join(wow64libdir, file_) else: continue os.unlink(filename) diff --git a/wine-tkg-git/non-makepkg-build.sh b/wine-tkg-git/non-makepkg-build.sh index 9d63bb6db..214c29c5a 100755 --- a/wine-tkg-git/non-makepkg-build.sh +++ b/wine-tkg-git/non-makepkg-build.sh @@ -259,10 +259,7 @@ build_wine_tkg() { local _prefix="${_nomakepkg_prefix_path}/${_nomakepkg_pkgname}" fi - if [ "$_NOLIB32" = "true" ]; then - local _lib32name="lib" - local _lib64name="lib" - elif [ -e /lib ] && [ -e /lib64 ] && [ -d /usr/lib ] && [ -d /usr/lib32 ] && [ "$_EXTERNAL_INSTALL" != "proton" ]; then + if [ -e /lib ] && [ -e /lib64 ] && [ -d /usr/lib ] && [ -d /usr/lib32 ] && [ "$_EXTERNAL_INSTALL" != "proton" ]; then local _lib32name="lib32" local _lib64name="lib" else diff --git a/wine-tkg-git/wine-tkg-profiles/advanced-customization.cfg b/wine-tkg-git/wine-tkg-profiles/advanced-customization.cfg index 61d15d3e7..f4e5e7335 100644 --- a/wine-tkg-git/wine-tkg-profiles/advanced-customization.cfg +++ b/wine-tkg-git/wine-tkg-profiles/advanced-customization.cfg @@ -64,7 +64,7 @@ _generate_patchsets="false" # Set to "true" to log compiler warnings and errors to a debug.log file _log_errors_to_file="false" -# Set to true to disable usage of 32-bit unix libs and use Wine 8.0+ experimental WoW64 for 32-bit apps. Default is "false" as it's still under development. +# Set to true to disable 32-bit wine. Doing so will disable WoW64 and break ALL 32-bit apps. Default is "false". _NOLIB32="true" # Set to true to disable 64-bit wine. Doing so will only build 32-bit wine and no SUPPORT for 64-bit apps. Default is "false". diff --git a/wine-tkg-git/wine-tkg-profiles/sample-external-config.cfg b/wine-tkg-git/wine-tkg-profiles/sample-external-config.cfg index 6fa6f6e3c..7ba0e3d96 100644 --- a/wine-tkg-git/wine-tkg-profiles/sample-external-config.cfg +++ b/wine-tkg-git/wine-tkg-profiles/sample-external-config.cfg @@ -74,7 +74,7 @@ _generate_patchsets="false" # Set to "true" to log compiler warnings and errors to a debug.log file _log_errors_to_file="false" -# Set to true to disable usage of 32-bit unix libs and use Wine 8.0+ experimental WoW64 for 32-bit apps. Default is "false" as it's still under development. +# Set to true to disable 32-bit wine. Doing so will disable WoW64 and break ALL 32-bit apps. Default is "false". _NOLIB32="false" # Set to true to disable 64-bit wine. Doing so will only build 32-bit wine and no SUPPORT for 64-bit apps. Default is "false". diff --git a/wine-tkg-git/wine-tkg-scripts/build-64.sh b/wine-tkg-git/wine-tkg-scripts/build-64.sh index bd098a37d..7d421743b 100644 --- a/wine-tkg-git/wine-tkg-scripts/build-64.sh +++ b/wine-tkg-git/wine-tkg-scripts/build-64.sh @@ -18,20 +18,12 @@ _configure_64() { msg2 'Configuring Wine-64...' cd "${srcdir}"/"${pkgname}"-64-build if [ "$_NUKR" != "debug" ] || [[ "$_DEBUGANSW3" =~ [yY] ]]; then - chmod +x ../"${_winesrcdir}"/configure - if [ "$_NOLIB32" != "true" ]; then - ../"${_winesrcdir}"/configure \ + chmod +x ../"${_winesrcdir}"/configure + ../"${_winesrcdir}"/configure \ --prefix="$_prefix" \ --enable-win64 \ "${_configure_args64[@]}" \ "${_configure_args[@]}" - else - ../"${_winesrcdir}"/configure \ - --prefix="$_prefix" \ - --enable-archs=i386,x86_64 \ - "${_configure_args64[@]}" \ - "${_configure_args[@]}" - fi fi if [ "$_pkg_strip" != "true" ]; then msg2 "Disable strip" diff --git a/wine-tkg-git/wine-tkg-scripts/build.sh b/wine-tkg-git/wine-tkg-scripts/build.sh index 19787324d..48d0d93d9 100644 --- a/wine-tkg-git/wine-tkg-scripts/build.sh +++ b/wine-tkg-git/wine-tkg-scripts/build.sh @@ -118,15 +118,15 @@ _build_serial() { local _LAST_BUILD_CONFIG="$_where"/last_build_config.log . "$_where"/wine-tkg-scripts/build-64.sh . "$_where"/wine-tkg-scripts/build-32.sh - if [ "$_NOLIB64" != "true" ]; then - # build wine 64-bit - # (according to the wine wiki, this 64-bit/32-bit building order is mandatory) - _exports_64 - _configure_64 - _build_64 + if [ "$_NOLIB64" != "true" ]; then + # build wine 64-bit + # (according to the wine wiki, this 64-bit/32-bit building order is mandatory) + _exports_64 + _configure_64 + _build_64 fi - if [ "$_NOLIB32" != "true" ]; then - # build wine 32-bit + if [ "$_NOLIB32" != "true" ]; then + # build wine 32-bit # nomakepkg if [ "$_nomakepkg_midbuild_prompt" = "true" ]; then msg2 '64-bit side has been built, 32-bit will follow.' @@ -139,7 +139,7 @@ _build_serial() { # /nomakepkg _exports_32 _configure_32 - _build_32 + _build_32 if [ "$_nomakepkg_dep_resolution_distro" = "debuntu" ] && [ "$_NOLIB64" != "true" ]; then # Install 64-bit deps back after 32-bit wine is built _debuntu_64 fi @@ -181,20 +181,12 @@ _package_nomakepkg() { else local _prefix="${_nomakepkg_prefix_path}/${_nomakepkg_pkgname}" fi - - if [ "$_NOLIB32" = "true" ]; then - local _lib32name="lib" - local _lib64name="lib" - elif [ -e /lib ] && [ -e /lib64 ] && [ -d /usr/lib ] && [ -d /usr/lib32 ] && [ "$_EXTERNAL_INSTALL" != "proton" ]; then - local _lib32name="lib32" - local _lib64name="lib" - else - local _lib32name="lib" - local _lib64name="lib64" - fi + local _lib32name="lib32" + local _lib64name="lib" # External install if [ "$_EXTERNAL_INSTALL" = "true" ]; then + _lib32name="lib" && _lib64name="lib64" if [ "$_EXTERNAL_NOVER" = "true" ]; then _prefix="$_DEFAULT_EXTERNAL_PATH/$pkgname" else @@ -244,18 +236,14 @@ _package_nomakepkg() { if [ "$_pkg_strip" = "true" ]; then msg2 "Fixing x86_64 PE files..." find "$_prefix"/"$_lib64name"/ -type f -not '(' -iname '*.pc' -or -iname '*.cmake' -or -iname '*.a' -or -iname '*.la' -or -iname '*.def' -or -iname '*.py' -or -iname '*.pyc' -or -iname '*.pl' ')' -printf '--strip-unneeded\0%p\0%p\0' | xargs -0 -r -P1 -n3 objcopy --file-alignment=4096 --set-section-flags .text=contents,alloc,load,readonly,code - if [ "$_NOLIB32" != "true" ]; then - msg2 "Fixing i386 PE files..." - find "$_prefix"/"$_lib32name"/ -type f -not '(' -iname '*.pc' -or -iname '*.cmake' -or -iname '*.a' -or -iname '*.la' -or -iname '*.def' -or -iname '*.py' -or -iname '*.pyc' -or -iname '*.pl' ')' -printf '--strip-unneeded\0%p\0%p\0' | xargs -0 -r -P1 -n3 objcopy --file-alignment=4096 --set-section-flags .text=contents,alloc,load,readonly,code - fi + msg2 "Fixing i386 PE files..." + find "$_prefix"/"$_lib32name"/ -type f -not '(' -iname '*.pc' -or -iname '*.cmake' -or -iname '*.a' -or -iname '*.la' -or -iname '*.def' -or -iname '*.py' -or -iname '*.pyc' -or -iname '*.pl' ')' -printf '--strip-unneeded\0%p\0%p\0' | xargs -0 -r -P1 -n3 objcopy --file-alignment=4096 --set-section-flags .text=contents,alloc,load,readonly,code find "$_prefix"/bin/ -type f -not '(' -iname '*.pc' -or -iname '*.cmake' -or -iname '*.a' -or -iname '*.la' -or -iname '*.def' -or -iname '*.py' -or -iname '*.pyc' -or -iname '*.pl' ')' -printf '--strip-unneeded\0%p\0%p\0' | xargs -0 -r -P1 -n3 sh -c 'objcopy --file-alignment=4096 "$@" > /dev/null 2>&1; exit 0' cmd else msg2 "Fixing x86_64 PE files..." find "$_prefix"/"$_lib64name"/ -type f -not '(' -iname '*.pc' -or -iname '*.cmake' -or -iname '*.a' -or -iname '*.la' -or -iname '*.def' -or -iname '*.py' -or -iname '*.pyc' -or -iname '*.pl' ')' -printf '%p\0%p\0' | xargs -0 -r -P1 -n2 objcopy --file-alignment=4096 --set-section-flags .text=contents,alloc,load,readonly,code - if [ "$_NOLIB32" != "true" ]; then - msg2 "Fixing i386 PE files..." - find "$_prefix"/"$_lib32name"/ -type f -not '(' -iname '*.pc' -or -iname '*.cmake' -or -iname '*.a' -or -iname '*.la' -or -iname '*.def' -or -iname '*.py' -or -iname '*.pyc' -or -iname '*.pl' ')' -printf '%p\0%p\0' | xargs -0 -r -P1 -n2 objcopy --file-alignment=4096 --set-section-flags .text=contents,alloc,load,readonly,code - fi + msg2 "Fixing i386 PE files..." + find "$_prefix"/"$_lib32name"/ -type f -not '(' -iname '*.pc' -or -iname '*.cmake' -or -iname '*.a' -or -iname '*.la' -or -iname '*.def' -or -iname '*.py' -or -iname '*.pyc' -or -iname '*.pl' ')' -printf '%p\0%p\0' | xargs -0 -r -P1 -n2 objcopy --file-alignment=4096 --set-section-flags .text=contents,alloc,load,readonly,code find "$_prefix"/bin/ -type f -not '(' -iname '*.pc' -or -iname '*.cmake' -or -iname '*.a' -or -iname '*.la' -or -iname '*.def' -or -iname '*.py' -or -iname '*.pyc' -or -iname '*.pl' ')' -printf '%p\0%p\0' | xargs -0 -r -P1 -n2 sh -c 'objcopy --file-alignment=4096 "$@" > /dev/null 2>&1; exit 0' cmd fi elif [ "$_pkg_strip" = "true" ]; then @@ -410,18 +398,14 @@ _package_makepkg() { if [ "$_pkg_strip" = "true" ]; then msg2 "Fixing x86_64 PE files..." find "${pkgdir}$_prefix"/"$_lib64name"/ -type f -not '(' -iname '*.pc' -or -iname '*.cmake' -or -iname '*.a' -or -iname '*.la' -or -iname '*.def' -or -iname '*.py' -or -iname '*.pyc' -or -iname '*.pl' -or -iname '*.conf' ')' -printf '--strip-unneeded\0%p\0%p\0' | xargs -0 -r -P1 -n3 objcopy --file-alignment=4096 --set-section-flags .text=contents,alloc,load,readonly,code - if [ "$_NOLIB32" != "true" ]; then - msg2 "Fixing i386 PE files..." - find "${pkgdir}$_prefix"/"$_lib32name"/ -type f -not '(' -iname '*.pc' -or -iname '*.cmake' -or -iname '*.a' -or -iname '*.la' -or -iname '*.def' -or -iname '*.py' -or -iname '*.pyc' -or -iname '*.pl' -or -iname '*.conf' ')' -printf '--strip-unneeded\0%p\0%p\0' | xargs -0 -r -P1 -n3 objcopy --file-alignment=4096 --set-section-flags .text=contents,alloc,load,readonly,code - fi + msg2 "Fixing i386 PE files..." + find "${pkgdir}$_prefix"/"$_lib32name"/ -type f -not '(' -iname '*.pc' -or -iname '*.cmake' -or -iname '*.a' -or -iname '*.la' -or -iname '*.def' -or -iname '*.py' -or -iname '*.pyc' -or -iname '*.pl' -or -iname '*.conf' ')' -printf '--strip-unneeded\0%p\0%p\0' | xargs -0 -r -P1 -n3 objcopy --file-alignment=4096 --set-section-flags .text=contents,alloc,load,readonly,code find "${pkgdir}$_prefix"/bin/ -type f -not '(' -iname '*.pc' -or -iname '*.cmake' -or -iname '*.a' -or -iname '*.la' -or -iname '*.def' -or -iname '*.py' -or -iname '*.pyc' -or -iname '*.pl' ')' -printf '--strip-unneeded\0%p\0%p\0' | xargs -0 -r -P1 -n3 sh -c 'objcopy --file-alignment=4096 "$@" > /dev/null 2>&1; exit 0' cmd else msg2 "Fixing x86_64 PE files..." find "${pkgdir}$_prefix"/"$_lib64name"/ -type f -not '(' -iname '*.pc' -or -iname '*.cmake' -or -iname '*.a' -or -iname '*.la' -or -iname '*.def' -or -iname '*.py' -or -iname '*.pyc' -or -iname '*.pl' -or -iname '*.conf' ')' -printf '%p\0%p\0' | xargs -0 -r -P1 -n2 objcopy --file-alignment=4096 --set-section-flags .text=contents,alloc,load,readonly,code - if [ "$_NOLIB32" != "true" ]; then - msg2 "Fixing i386 PE files..." - find "${pkgdir}$_prefix"/"$_lib32name"/ -type f -not '(' -iname '*.pc' -or -iname '*.cmake' -or -iname '*.a' -or -iname '*.la' -or -iname '*.def' -or -iname '*.py' -or -iname '*.pyc' -or -iname '*.pl' -or -iname '*.conf' ')' -printf '%p\0%p\0' | xargs -0 -r -P1 -n2 objcopy --file-alignment=4096 --set-section-flags .text=contents,alloc,load,readonly,code - fi + msg2 "Fixing i386 PE files..." + find "${pkgdir}$_prefix"/"$_lib32name"/ -type f -not '(' -iname '*.pc' -or -iname '*.cmake' -or -iname '*.a' -or -iname '*.la' -or -iname '*.def' -or -iname '*.py' -or -iname '*.pyc' -or -iname '*.pl' -or -iname '*.conf' ')' -printf '%p\0%p\0' | xargs -0 -r -P1 -n2 objcopy --file-alignment=4096 --set-section-flags .text=contents,alloc,load,readonly,code find "${pkgdir}$_prefix"/bin/ -type f -not '(' -iname '*.pc' -or -iname '*.cmake' -or -iname '*.a' -or -iname '*.la' -or -iname '*.def' -or -iname '*.py' -or -iname '*.pyc' -or -iname '*.pl' ')' -printf '%p\0%p\0' | xargs -0 -r -P1 -n2 sh -c 'objcopy --file-alignment=4096 "$@" > /dev/null 2>&1; exit 0' cmd fi elif [ "$_pkg_strip" = "true" ]; then diff --git a/wine-tkg-git/wine-tkg-scripts/prepare.sh b/wine-tkg-git/wine-tkg-scripts/prepare.sh index 049d9214c..7fa595357 100644 --- a/wine-tkg-git/wine-tkg-scripts/prepare.sh +++ b/wine-tkg-git/wine-tkg-scripts/prepare.sh @@ -76,7 +76,6 @@ _exit_cleanup() { fi echo "_reuse_built_gst='${_reuse_built_gst}'" >> "$_proton_tkg_path"/proton_tkg_token echo "_unfrog='${_unfrog}'" >> "$_proton_tkg_path"/proton_tkg_token - echo "_NOLIB32='${_NOLIB32}'" >> "$_proton_tkg_path"/proton_tkg_token fi rm -f "$_where"/BIG_UGLY_FROGMINER && msg2 'Removed BIG_UGLY_FROGMINER - Ribbit' # state tracker end @@ -279,10 +278,8 @@ msg2 '' _EXTERNAL_INSTALL="proton" _EXTERNAL_NOVER="false" _nomakepkg_nover="true" - if [[ "$_LOCAL_PRESET" = valve* ]]; then - _NOLIB32="false" - _NOLIB64="false" - fi + _NOLIB32="false" + _NOLIB64="false" _esync_version="" _use_faudio="true" _highcorecount_fix="true"