Commit 7102314f authored by Mikhail Tergoev's avatar Mikhail Tergoev

###Scripts version 1075###

parent c1a0930b
...@@ -15,6 +15,10 @@ ...@@ -15,6 +15,10 @@
* добавить контроль за окнами для правильного отключения прогресс бара * добавить контроль за окнами для правильного отключения прогресс бара
* зарабатывать на жизнь развитием проекта с помощью вашей подписки на https://boosty.to/portwine-linux.ru * зарабатывать на жизнь развитием проекта с помощью вашей подписки на https://boosty.to/portwine-linux.ru
----------------------------------------- -----------------------------------------
###PortProton-80### 11.05.2021 ###Scripts version 1075###
* обновлен WINE до версии Proton 6.8 GE 1
* обновлена инициализация и настройка префикса под новые версии Proton GE
###Scripts version 1074### ###Scripts version 1074###
* HOTFIX - добалено ожидание окончания создания префикса, перед продолжением использования порта * HOTFIX - добалено ожидание окончания создания префикса, перед продолжением использования порта
......
...@@ -19,7 +19,6 @@ ...@@ -19,7 +19,6 @@
##export PW_OLD_GL_STRING=1 ##export PW_OLD_GL_STRING=1
##export PW_HIDE_NVIDIA_GPU=1 ##export PW_HIDE_NVIDIA_GPU=1
##export PW_FORCE_USE_VSYNC=0 # Vsync: 0-FORCE_OFF, 1-FORCE_ON, 2-BY_DEFAULT ##export PW_FORCE_USE_VSYNC=0 # Vsync: 0-FORCE_OFF, 1-FORCE_ON, 2-BY_DEFAULT
##export PW_VKD3D_FEATURE_LEVEL=1
##export PW_DXGI_FROM_DXVK=1 ##export PW_DXGI_FROM_DXVK=1
##export PW_VIRTUAL_DESKTOP=1 ##export PW_VIRTUAL_DESKTOP=1
##export VKD3D_CONFIG=force_bindless_texel_buffer,multi_queue ##export VKD3D_CONFIG=force_bindless_texel_buffer,multi_queue
......
...@@ -29,13 +29,15 @@ print_var () { ...@@ -29,13 +29,15 @@ print_var () {
for vp in $@ ; do echo "${vp}=${!vp}" ; done for vp in $@ ; do echo "${vp}=${!vp}" ; done
} }
try_copy_file () { try_copy_file () {
if [ ! -f "$1" ] ; then print_info "file $1 not found for copy" if [ ! -f "$1" ] ; then print_info "file $1 not found for copy" && return 1
elif [ -z "$2" ] ; then print_error "no way to copy file $1" elif [ -z "$2" ] ; then print_error "no way to copy file $1" && return 1
else else
cp -f "$1" "$2" cp -f "$1" "$2"
[ "$?" != 0 ] && print_error "failed to copy file $1 to $2" || return 0 if [ "$?" != 0 ]
then print_error "failed to copy file $1 to $2" || return 1
else print_info "copy file $1 to $2 was successful" || return 0
fi
fi fi
return 1
} }
try_copy_dir () { try_copy_dir () {
if [ ! -d "$1" ] ; then print_info "directory $1 not found for copy" if [ ! -d "$1" ] ; then print_info "directory $1 not found for copy"
...@@ -288,6 +290,10 @@ START_PORTWINE () ...@@ -288,6 +290,10 @@ START_PORTWINE ()
then export PATH="${WINEDIR}/bin:${PATH}" then export PATH="${WINEDIR}/bin:${PATH}"
else export PATH="${WINEDIR}/bin" else export PATH="${WINEDIR}/bin"
fi fi
if [ ! -z "${LD_LIBRARY_PATH}" ]
then export LD_LIBRARY_PATH="${WINEDIR}/lib64:${WINEDIR}/lib:${LD_LIBRARY_PATH}"
else export LD_LIBRARY_PATH="${WINEDIR}/lib64:${WINEDIR}/lib"
fi
export WINE="${WINELOADER}" export WINE="${WINELOADER}"
# export GST_PLUGIN_SYSTEM_PATH_1_0="${WINEDIR}/lib64/gstreamer-1.0:${WINEDIR}/gstreamer-1.0" # export GST_PLUGIN_SYSTEM_PATH_1_0="${WINEDIR}/lib64/gstreamer-1.0:${WINEDIR}/gstreamer-1.0"
export WINE_GST_REGISTRY_DIR="${PORT_WINE_TMP_PATH}" export WINE_GST_REGISTRY_DIR="${PORT_WINE_TMP_PATH}"
...@@ -346,9 +352,6 @@ START_PORTWINE () ...@@ -346,9 +352,6 @@ START_PORTWINE ()
if [ ! -z "${PW_HIDE_NVIDIA_GPU}" ] && [ "${PW_HIDE_NVIDIA_GPU}" != 0 ] ; then if [ ! -z "${PW_HIDE_NVIDIA_GPU}" ] && [ "${PW_HIDE_NVIDIA_GPU}" != 0 ] ; then
export WINE_HIDE_NVIDIA_GPU="1" export WINE_HIDE_NVIDIA_GPU="1"
fi fi
if [ ! -z "${PW_VKD3D_FEATURE_LEVEL}" ] && [ "${PW_VKD3D_FEATURE_LEVEL}" != 0 ] ; then
export VKD3D_FEATURE_LEVEL="12_0"
fi
if [ ! -z "${PW_HEAP_DELAY_FREE}" ] && [ "${PW_HEAP_DELAY_FREE}" != 0 ] if [ ! -z "${PW_HEAP_DELAY_FREE}" ] && [ "${PW_HEAP_DELAY_FREE}" != 0 ]
then export WINE_HEAP_DELAY_FREE="1" then export WINE_HEAP_DELAY_FREE="1"
else export WINE_HEAP_DELAY_FREE="0" else export WINE_HEAP_DELAY_FREE="0"
...@@ -605,21 +608,19 @@ PW_INIT_PFX () { ...@@ -605,21 +608,19 @@ PW_INIT_PFX () {
rm -f "${WINEDIR}"*/lib*/*steam* rm -f "${WINEDIR}"*/lib*/*steam*
rm -f "${WINEDIR}"*/lib*/wine/*steam* rm -f "${WINEDIR}"*/lib*/wine/*steam*
rm -f "${WINEDIR}"*/lib*/wine/fakedlls/*steam* rm -f "${WINEDIR}"*/lib*/wine/fakedlls/*steam*
#sed -i '/HKCU,Software\\Valve\\Steam/d' "${WINEDIR}"*/share/wine/wine.inf if [ ! -d "${WINEPREFIX}" ] || [ ! -d "${WINEPREFIX}"/drive_c/windows ] || \
#sed -i '/HKLM,Software\\Wow6432Node\\Valve\\Steam/d' "${WINEDIR}"*/share/wine/wine.inf [ ! -d "${WINEPREFIX}/dosdevices" ] || [ ! -f "${WINEPREFIX}"/userdef.reg ] || \
#sed -i '/HKLM,Software\\Wow6432Node\\Valve\\Steam/d' "${WINEDIR}"*/share/wine/wine.inf [ ! -f "${WINEPREFIX}"/system.reg ] || [ ! -f "${WINEPREFIX}"/user.reg ]
then
pw_clear_pfx
create_new_dir "${WINEPREFIX}"
if [ -d "${WINEDIR}/share/default_pfx/" ] ; then
cp -fr "${WINEDIR}/share/default_pfx/"* "${WINEPREFIX}"
fi
create_new_dir "${WINEPREFIX}/drive_c" create_new_dir "${WINEPREFIX}/drive_c"
create_new_dir "${WINEPREFIX}/dosdevices" create_new_dir "${WINEPREFIX}/dosdevices"
[ ! -d "${WINEPREFIX}/dosdevices/c:" ] && try_force_link_dir "${WINEPREFIX}/drive_c/" "${WINEPREFIX}/dosdevices/c:" [ ! -d "${WINEPREFIX}/dosdevices/c:" ] && try_force_link_dir "${WINEPREFIX}/drive_c/" "${WINEPREFIX}/dosdevices/c:"
[ ! -d "${WINEPREFIX}/dosdevices/z:" ] && try_force_link_dir "/" "${WINEPREFIX}/dosdevices/z:" [ ! -d "${WINEPREFIX}/dosdevices/z:" ] && try_force_link_dir "/" "${WINEPREFIX}/dosdevices/z:"
if [ ! -d "${WINEPREFIX}" ] || [ ! -d "${WINEPREFIX}"/drive_c/windows ] || \
[ ! -f "${WINEPREFIX}"/user.reg ] || [ ! -f "${WINEPREFIX}"/userdef.reg ] || \
[ ! -f "${WINEPREFIX}"/system.reg ]
then
sed -i '/HKCR,steam\\shell\\open\\command/d' "${WINEDIR}"*/share/wine/wine.inf
sed -i '/HKCR,steam\\shell\\open\\command/d' "${WINEDIR}"*/share/wine/wine.inf
try_remove_file "${WINEPREFIX}/winetricks.log"
create_new_dir "${WINEPREFIX}/drive_c/windows/syswow64/" create_new_dir "${WINEPREFIX}/drive_c/windows/syswow64/"
create_new_dir "${WINEPREFIX}/drive_c/windows/system32/" create_new_dir "${WINEPREFIX}/drive_c/windows/system32/"
PW_STOP_PROGRESS_BAR PW_STOP_PROGRESS_BAR
...@@ -634,8 +635,6 @@ PW_INIT_PFX () { ...@@ -634,8 +635,6 @@ PW_INIT_PFX () {
if [ ! -d "${PORT_WINE_PATH}/data/pfx/drive_c/users/${USER}" ]; then if [ ! -d "${PORT_WINE_PATH}/data/pfx/drive_c/users/${USER}" ]; then
try_force_link_dir "${PORT_WINE_PATH}/data/pfx/drive_c/users/steamuser" "${PORT_WINE_PATH}/data/pfx/drive_c/users/${USER}" try_force_link_dir "${PORT_WINE_PATH}/data/pfx/drive_c/users/steamuser" "${PORT_WINE_PATH}/data/pfx/drive_c/users/${USER}"
fi fi
rm -f "${WINEPREFIX}/drive_c/windows/system32"/steam*
rm -f "${WINEPREFIX}/drive_c/windows/syswow64"/steam*
create_new_dir "${WINEPREFIX}/drive_c/windows/Fonts/" create_new_dir "${WINEPREFIX}/drive_c/windows/Fonts/"
try_copy_file "${WINEDIR}/share/fonts/"LiberationSans-Regular.ttf "${WINEPREFIX}/drive_c/windows/Fonts/"arial.ttf try_copy_file "${WINEDIR}/share/fonts/"LiberationSans-Regular.ttf "${WINEPREFIX}/drive_c/windows/Fonts/"arial.ttf
...@@ -644,8 +643,6 @@ PW_INIT_PFX () { ...@@ -644,8 +643,6 @@ PW_INIT_PFX () {
try_copy_file "${WINEDIR}/share/fonts/"LiberationMono-Regular.ttf "${WINEPREFIX}/drive_c/windows/Fonts/"cour.ttf try_copy_file "${WINEDIR}/share/fonts/"LiberationMono-Regular.ttf "${WINEPREFIX}/drive_c/windows/Fonts/"cour.ttf
try_copy_file "${WINEDIR}/share/fonts/"SourceHanSansSCRegular.otf "${WINEPREFIX}/drive_c/windows/Fonts/"msyh.ttf try_copy_file "${WINEDIR}/share/fonts/"SourceHanSansSCRegular.otf "${WINEPREFIX}/drive_c/windows/Fonts/"msyh.ttf
var_winedlloverride_update "steam_api,steam_api64,steamclient,steamclient64=n" var_winedlloverride_update "steam_api,steam_api64,steamclient,steamclient64=n"
#sed -i '/steamclient/d' "${WINEPREFIX}"/*.reg
#sed -i '/SteamPath/d' "${WINEPREFIX}"/*.reg
export TOTAL_VRAM=`"${WINELIB}/amd64/usr/bin/glxinfo" -B | grep Total | awk -F: '{print $2}' | awk '{print $1}'` export TOTAL_VRAM=`"${WINELIB}/amd64/usr/bin/glxinfo" -B | grep Total | awk -F: '{print $2}' | awk '{print $1}'`
echo "TOTAL_VRAM=${TOTAL_VRAM}" echo "TOTAL_VRAM=${TOTAL_VRAM}"
...@@ -659,18 +656,26 @@ PW_INIT_PFX () { ...@@ -659,18 +656,26 @@ PW_INIT_PFX () {
export GL_SHARPEN_ENABLE=1 export GL_SHARPEN_ENABLE=1
export __GL_SHARPEN_VALUE=0 export __GL_SHARPEN_VALUE=0
for wine_build_dll in d3d11 d3d10 d3d10core d3d10_1 d3d9 ; do for wine_build_dll in d3d11 d3d10 d3d10core d3d10_1 d3d9 ; do
try_copy_file "${WINEDIR}/lib/wine/${wine_build_dll}.dll" "${WINEPREFIX}/drive_c/windows/syswow64/" if ! try_copy_file "${WINEDIR}/lib/wine/${wine_build_dll}.dll" "${WINEPREFIX}/drive_c/windows/syswow64/"
try_copy_file "${WINEDIR}/lib64/wine/${wine_build_dll}.dll" "${WINEPREFIX}/drive_c/windows/system32/" then try_copy_file "${WINEDIR}/lib/wine/i386-windows/${wine_build_dll}.dll" "${WINEPREFIX}/drive_c/windows/syswow64/"
fi
if ! try_copy_file "${WINEDIR}/lib64/wine/${wine_build_dll}.dll" "${WINEPREFIX}/drive_c/windows/system32/"
then try_copy_file "${WINEDIR}/lib64/wine/x86_64-windows/${wine_build_dll}.dll" "${WINEPREFIX}/drive_c/windows/system32/"
fi
done done
try_copy_file "${WINEDIR}"/lib/wine/fakedlls/dxgi.dll "${WINEPREFIX}/drive_c/windows/syswow64/" if ! try_copy_file "${WINEDIR}"/lib/wine/fakedlls/dxgi.dll "${WINEPREFIX}/drive_c/windows/syswow64/"
try_copy_file "${WINEDIR}"/lib64/wine/fakedlls/dxgi.dll "${WINEPREFIX}/drive_c/windows/system32/" then try_copy_file "${WINEDIR}"/lib/wine/i386-windows/dxgi.dll "${WINEPREFIX}/drive_c/windows/syswow64/"
fi
if ! try_copy_file "${WINEDIR}"/lib64/wine/fakedlls/dxgi.dll "${WINEPREFIX}/drive_c/windows/system32/"
then try_copy_file "${WINEDIR}"/lib64/wine/x86_64-windows/dxgi.dll "${WINEPREFIX}/drive_c/windows/system32/"
fi
var_winedlloverride_update "dxgi=b;d3d12=" var_winedlloverride_update "dxgi=b;d3d12="
echo "Use OpenGL" echo "Use OpenGL"
elif [ "${PW_VULKAN_USE}" = "dxvk" ]; then elif [ "${PW_VULKAN_USE}" = "dxvk" ]; then
for wine_dxvk_dll in d3d11 d3d10 d3d10core d3d10_1 d3d9 dxgi ; do for wine_dxvk_dll in d3d11 d3d10 d3d10core d3d10_1 d3d9 dxgi ; do
try_copy_file "${PW_VULKAN_DLL}/dxvk-${PW_DXVK_VER}/x32/${wine_dxvk_dll}.dll" "${WINEPREFIX}/drive_c/windows/syswow64/" try_copy_file "${PW_VULKAN_DLL}/dxvk-${PW_DXVK_VER}/x32/${wine_dxvk_dll}.dll" "${WINEPREFIX}/drive_c/windows/syswow64/"
try_copy_file "${PW_VULKAN_DLL}/dxvk-${PW_DXVK_VER}/x64/${wine_dxvk_dll}.dll" "${WINEPREFIX}/drive_c/windows/system32/" try_copy_file "${PW_VULKAN_DLL}/dxvk-${PW_DXVK_VER}/x64/${wine_dxvk_dll}.dll" "${WINEPREFIX}/drive_c/windows/system32/"
[ "$?" == 0 ] && var_winedlloverride_update "${wine_dxvk_dll}=n" var_winedlloverride_update "${wine_dxvk_dll}=n"
done done
var_winedlloverride_update "d3d12=" var_winedlloverride_update "d3d12="
echo "Use DXVK version ${PW_DXVK_VER} (DX9-DX11 to Vulkan)" echo "Use DXVK version ${PW_DXVK_VER} (DX9-DX11 to Vulkan)"
...@@ -678,7 +683,7 @@ PW_INIT_PFX () { ...@@ -678,7 +683,7 @@ PW_INIT_PFX () {
for wine_vkd3d_dll in d3d12 ; do for wine_vkd3d_dll in d3d12 ; do
try_copy_file "${PW_VULKAN_DLL}/vkd3d-proton-${PW_VKD3D_VER}/x86/${wine_vkd3d_dll}.dll" "${WINEPREFIX}/drive_c/windows/syswow64/" try_copy_file "${PW_VULKAN_DLL}/vkd3d-proton-${PW_VKD3D_VER}/x86/${wine_vkd3d_dll}.dll" "${WINEPREFIX}/drive_c/windows/syswow64/"
try_copy_file "${PW_VULKAN_DLL}/vkd3d-proton-${PW_VKD3D_VER}/x64/${wine_vkd3d_dll}.dll" "${WINEPREFIX}/drive_c/windows/system32/" try_copy_file "${PW_VULKAN_DLL}/vkd3d-proton-${PW_VKD3D_VER}/x64/${wine_vkd3d_dll}.dll" "${WINEPREFIX}/drive_c/windows/system32/"
[ "$?" == 0 ] && var_winedlloverride_update "${wine_vkd3d_dll}=n" var_winedlloverride_update "${wine_vkd3d_dll}=n"
done done
if [ ! -z "${PW_DXGI_FROM_DXVK}" ] && [ "${PW_DXGI_FROM_DXVK}" != 0 ] ; then if [ ! -z "${PW_DXGI_FROM_DXVK}" ] && [ "${PW_DXGI_FROM_DXVK}" != 0 ] ; then
for wine_dxvk_dll in d3d11 d3d10 d3d10core d3d10_1 d3d9 dxgi ; do for wine_dxvk_dll in d3d11 d3d10 d3d10core d3d10_1 d3d9 dxgi ; do
...@@ -687,14 +692,23 @@ PW_INIT_PFX () { ...@@ -687,14 +692,23 @@ PW_INIT_PFX () {
var_winedlloverride_update "${wine_dxvk_dll}=n" var_winedlloverride_update "${wine_dxvk_dll}=n"
done done
else else
try_copy_file "${WINEDIR}/lib/wine/fakedlls/dxgi.dll" "${WINEPREFIX}/drive_c/windows/syswow64/" if ! try_copy_file "${WINEDIR}"/lib/wine/fakedlls/dxgi.dll "${WINEPREFIX}/drive_c/windows/syswow64/"
try_copy_file "${WINEDIR}/lib64/wine/fakedlls/dxgi.dll" "${WINEPREFIX}/drive_c/windows/system32/" then try_copy_file "${WINEDIR}"/lib/wine/i386-windows/dxgi.dll "${WINEPREFIX}/drive_c/windows/syswow64/"
fi
if ! try_copy_file "${WINEDIR}"/lib64/wine/fakedlls/dxgi.dll "${WINEPREFIX}/drive_c/windows/system32/"
then try_copy_file "${WINEDIR}"/lib64/wine/x86_64-windows/dxgi.dll "${WINEPREFIX}/drive_c/windows/system32/"
fi
var_winedlloverride_update "dxgi=b" var_winedlloverride_update "dxgi=b"
for wine_build_dll in d3d11 d3d10 d3d10core d3d10_1 d3d9 ; do for wine_build_dll in d3d11 d3d10 d3d10core d3d10_1 d3d9 ; do
try_copy_file "${WINEDIR}/lib/wine/${wine_build_dll}.dll" "${WINEPREFIX}/drive_c/windows/syswow64/" if ! try_copy_file "${WINEDIR}/lib/wine/${wine_build_dll}.dll" "${WINEPREFIX}/drive_c/windows/syswow64/"
try_copy_file "${WINEDIR}/lib64/wine/${wine_build_dll}.dll" "${WINEPREFIX}/drive_c/windows/system32/" then try_copy_file "${WINEDIR}/lib/wine/i386-windows/${wine_build_dll}.dll" "${WINEPREFIX}/drive_c/windows/syswow64/"
fi
if ! try_copy_file "${WINEDIR}/lib64/wine/${wine_build_dll}.dll" "${WINEPREFIX}/drive_c/windows/system32/"
then try_copy_file "${WINEDIR}/lib64/wine/x86_64-windows/${wine_build_dll}.dll" "${WINEPREFIX}/drive_c/windows/system32/"
fi
done done
fi fi
export VKD3D_FEATURE_LEVEL="12_0"
export PW_WINDOWS_VER="10" export PW_WINDOWS_VER="10"
echo "Use VKD3D-PROTON version ${PW_VKD3D_VER} (DX12 to vulkan)" echo "Use VKD3D-PROTON version ${PW_VKD3D_VER} (DX12 to vulkan)"
fi fi
......
...@@ -57,7 +57,7 @@ done ...@@ -57,7 +57,7 @@ done
chmod u+x "${PORT_SCRIPTS_PATH}/"* chmod u+x "${PORT_SCRIPTS_PATH}/"*
try_force_link_dir "${PORT_WINE_PATH}/data/pfx/drive_c/" "${PORT_WINE_PATH}/" try_force_link_dir "${PORT_WINE_PATH}/data/pfx/drive_c/" "${PORT_WINE_PATH}/"
#pw_clear_pfx
if [ "${s_install}" = "1" ]; then if [ "${s_install}" = "1" ]; then
echo "Installation completed successfully." echo "Installation completed successfully."
else else
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment