Scripts version 2093

This commit is contained in:
castro-fidel
2022-03-19 18:02:49 +03:00
parent a74978b822
commit c68e687948
9 changed files with 267 additions and 140 deletions

View File

@ -1,6 +1,6 @@
#!/bin/env bash
#!/usr/bin/env bash
# Author: Castro-Fidel (PortWINE-Linux.ru)
# Development assistants: Cefeiko; Dezert1r; Taz_mania; Anton_Famillianov; gavr; RidBowt; chal55rus
# Development assistants: Cefeiko; Dezert1r; Taz_mania; Anton_Famillianov; gavr; RidBowt; chal55rus; UserDiscord
########################################################################
echo '
████─████─████─███─█───█─███─█──█─███
@ -32,7 +32,6 @@ start_portwine () {
sed -i '/Steam.exe/d' "${WINEDIR}/share/wine/wine.inf"
sed -i '/\\Valve\\Steam/d' "${WINEDIR}/share/wine/wine.inf"
if [ -x "`which konsole 2>/dev/null`" ]; then export PW_TERM="konsole --nofork -e"
# elif [ -x "`which gnome-terminal 2>/dev/null`" ]; then export PW_TERM="gnome-terminal -- /usr/bin/env bash" ???
elif [ -x "`which lxterminal 2>/dev/null`" ]; then export PW_TERM="lxterminal -e"
elif [ -x "`which xterm 2>/dev/null`" ]; then export PW_TERM="${PW_XTERM}"
else export PW_TERM="${PW_XTERM}"
@ -43,96 +42,7 @@ start_portwine () {
fi
pw_update_pfx_cover_gui
if [[ ! -z "`cat /etc/*-release | grep -i opensuse`" ]] \
|| [[ ! -z "`cat /etc/*-release | grep -i centos`" ]] \
|| [[ ! -z "`cat /etc/*-release | grep -i fedora`" ]] \
|| [[ ! -z "`cat /etc/*-release | grep -i gentoo`" ]] ; then
if check_symlink "${PW_WINELIB}/portable/lib/lib64" ; then
rm -fr "${PW_WINELIB}/portable/lib/lib64"
fi
if [[ ! -d "${PW_WINELIB}/portable/lib/lib64" ]] ; then
mv -f "${PW_WINELIB}/portable/lib/lib" "${PW_WINELIB}/portable/lib/lib64"
fi
if [[ ! -d "${PW_WINELIB}/portable/lib/lib" ]] ; then
mv -f "${PW_WINELIB}/portable/lib/lib32" "${PW_WINELIB}/portable/lib/lib"
fi
fi
PW_PV_OVERRIDES="/usr/lib/pressure-vessel/overrides/lib"
if [[ ! -z "${LD_LIBRARY_PATH}" ]] ; then
if [[ -z "`echo ${PW_LD_LIBRARY_PATH} | grep "${WINEDIR}/lib64:${WINEDIR}/lib"`" ]] ; then
export PW_LD_LIBRARY_PATH="${WINEDIR}/lib64:${WINEDIR}/lib:${PW_WINELIB}/portable/lib/\$LIB:${PW_PV_OVERRIDES}/x86_64-linux-gnu/aliases:${PW_PV_OVERRIDES}/i386-linux-gnu/aliases:${LD_LIBRARY_PATH}"
fi
else
export PW_LD_LIBRARY_PATH="${WINEDIR}/lib64:${WINEDIR}/lib:${PW_WINELIB}/portable/lib/\$LIB:${PW_PV_OVERRIDES}/x86_64-linux-gnu/aliases:${PW_PV_OVERRIDES}/i386-linux-gnu/aliases"
fi
if [[ ! -z "${VK_LAYER_PATH}" ]]
then export VK_LAYER_PATH="${PW_WINELIB}/portable/share/vulkan/implicit_layer.d/:${VK_LAYER_PATH}"
else export VK_LAYER_PATH="${PW_WINELIB}/portable/share/vulkan/implicit_layer.d/"
fi
if [ ! -z ${PATH_TMP} ]
then export PATH="${PATH_TMP}"
else export PATH_TMP="${PATH}"
fi
if [ ! -z "${PATH}" ]
then export PATH="${WINEDIR}/bin:${PATH}:${PW_WINELIB}/portable/bin"
else export PATH="${WINEDIR}/bin:${PW_WINELIB}/portable/bin"
fi
if [ "${PW_USE_GSTREAMER}" = 1 ] ; then
if [ -d "${WINEDIR}/lib64/gstreamer-1.0" ] ; then
export GST_PLUGIN_SYSTEM_PATH_1_0="${WINEDIR}/lib64/gstreamer-1.0:${WINEDIR}/lib/gstreamer-1.0"
fi
export WINE_GST_REGISTRY_DIR="${PORT_WINE_TMP_PATH}"
export MEDIACONV_AUDIO_DUMP_FILE="${PORT_WINE_TMP_PATH}"/audio.foz
export MEDIACONV_AUDIO_TRANSCODED_FILE="${PORT_WINE_TMP_PATH}"/transcoded_audio.foz
export MEDIACONV_VIDEO_DUMP_FILE="${PORT_WINE_TMP_PATH}"/video.foz
export MEDIACONV_VIDEO_TRANSCODED_FILE="${PORT_WINE_TMP_PATH}"/transcoded_video.foz
else
var_winedlloverride_update "winegstreamer="
fi
# export STAGING_SHARED_MEMORY=1
# export PW_FORCE_LARGE_ADDRESS_AWARE=1
if [ "${PW_USE_RUNTIME}" = 0 ] ; then
export pw_runtime=""
if [ "${PW_MANGOHUD}" = 1 ] ; then
[ -z `which mangohud` ] && export PW_MANGOHUD=0
fi
echo "RUNTIME is disabled"
else
if [[ ! -z "${PW_SANDBOX_HOME_PATH}" && -d "${PW_SANDBOX_HOME_PATH}" ]]; then
export pw_runtime="${PW_WINELIB}/run \
--unshare-home \
--home="${PW_SANDBOX_HOME_PATH}" \
--"
else
export pw_runtime="${PW_WINELIB}/run \
--share-home \
--"
fi
# export PRESSURE_VESSEL_VARIABLE_DIR="${PW_WINELIB}/runtime"
export PRESSURE_VESSEL_REMOVE_GAME_OVERLAY=1
export PRESSURE_VESSEL_IMPORT_VULKAN_LAYERS=1
export PRESSURE_VESSEL_GC_RUNTIMES=0
export PRESSURE_VESSEL_PREFIX="${PW_WINELIB}/pressure-vessel"
unset PRESSURE_VESSEL_FILESYSTEMS_RO
unset PRESSURE_VESSEL_FILESYSTEMS_RW
for PWRTMRO in ${PW_RT_MOUNT_RO[*]} ; do
if [ ! -z "${PRESSURE_VESSEL_FILESYSTEMS_RO}" ]
then export PRESSURE_VESSEL_FILESYSTEMS_RO="${PRESSURE_VESSEL_FILESYSTEMS_RO}:${PWRTMRO}"
else export PRESSURE_VESSEL_FILESYSTEMS_RO="${PWRTMRO}"
fi
done
for PWRTMRW in ${PW_RT_MOUNT_RW[*]} ; do
if [ ! -z "${PRESSURE_VESSEL_FILESYSTEMS_RW}" ]
then export PRESSURE_VESSEL_FILESYSTEMS_RW="${PRESSURE_VESSEL_FILESYSTEMS_RW}:${PWRTMRW}"
else export PRESSURE_VESSEL_FILESYSTEMS_RW="${PWRTMRW}"
fi
done
echo "RUNTIME is enabled"
fi
pw_init_runtime
if [[ ! -z "${PW_LOG}" && "${PW_LOG}" != 0 ]] ; then
export WINEDEBUG="fixme-all,err+loaddll,err+dll,err+file,err+reg"
@ -143,11 +53,12 @@ start_portwine () {
export WINEDEBUG="-all"
export DXVK_LOG_LEVEL="none"
export VKD3D_SHADER_DEBUG="none"
export VKD3D_FEATURE_LEVEL="12_0"
export VKD3D_DEBUG="none"
export DXVK_LOG_PATH="none"
fi
export VKD3D_FEATURE_LEVEL="12_0"
#default wine-mono override for FNA games
export WINE_MONO_OVERRIDES="Microsoft.Xna.Framework.*,Gac=n"
@ -312,6 +223,9 @@ start_portwine () {
then
pw_clear_pfx
check_dirs_and_files_in_pfx
if [[ -d "${WINEDIR}/share/default_pfx/" ]] ; then
cp -frL "${WINEDIR}/share/default_pfx/"* "${PORT_WINE_PATH}/data/prefixes/${PW_PREFIX_NAME}/"
fi
${pw_runtime} env LD_LIBRARY_PATH="${PW_LD_LIBRARY_PATH}" "${WINELOADER}" wineboot -i &>>"${PORT_WINE_TMP_PATH}/update_pfx_log"
wait_wineserver &&
echo "${PW_WINE_USE}" > "${PORT_WINE_PATH}/data/prefixes/${PW_PREFIX_NAME}/.wine_ver"
@ -335,7 +249,7 @@ start_portwine () {
#enabled BattleEye_Runtime and EasyAntiCheat_Runtime
export PROTON_BATTLEYE_RUNTIME="${PW_PLUGINS_PATH}/d3d_extras/BattlEye_Runtime"
export PROTON_EAC_RUNTIME="${PW_PLUGINS_PATH}/d3d_extras/EasyAntiCheat_Runtime"
var_winedlloverride_update "easyanticheat_x86,easyanticheat_x64,beclient,beclient_x64=b,n"
var_winedlloverride_update "beclient,beclient_x64=b,n"
#try link d3d extras libs
for d3d_extras_from_plugins in d3dcompiler_33 d3dcompiler_34 d3dcompiler_35 d3dcompiler_36 d3dcompiler_37 \
d3dcompiler_38 d3dcompiler_39 d3dcompiler_40 d3dcompiler_41 d3dcompiler_42 d3dcompiler_43 d3dcompiler_46 \
@ -455,20 +369,10 @@ start_portwine () {
echo "Try to install DLL in prefix: ${PW_DLL_NEED_INSTALL}" >> "${PORT_WINE_TMP_PATH}/update_pfx_log"
print_info "Try to install DLL in prefix: ${PW_DLL_NEED_INSTALL}"
chmod -R 775 "${HOME}/.cache/winetricks"
# if [ "${PW_WINE_VER}" != "${PW_PROTON_STEAM_VER}" ] ; then
# export PW_WINE_VER_FROM_DB="${PW_WINE_USE}"
# export PW_WINE_VER="${PW_PROTON_STEAM_VER}"
# init_wine_ver
# fi
${pw_runtime} env PATH="${PATH}" LD_LIBRARY_PATH="${PW_LD_LIBRARY_PATH}" \
"${PORT_WINE_TMP_PATH}/winetricks" -q -r -f ${PW_DLL_NEED_INSTALL} &>>"${PORT_WINE_TMP_PATH}/update_pfx_log"
wait_wineserver
kill_portwine
# if [ "${PW_WINE_VER_FROM_DB}" != "${PW_PROTON_STEAM_VER}" ] ; then
# export PW_SILENT_RESTART=1
# /usr/bin/env bash ${pw_full_command_line[*]} &
# exit 0
# fi
fi
fi
if [[ -f "${PORT_WINE_PATH}/data/prefixes/${PW_PREFIX_NAME}/system.reg" ]] && [[ -z `cat "${PORT_WINE_PATH}/data/prefixes/${PW_PREFIX_NAME}/system.reg" | grep "Windows $PW_WINDOWS_VER"` ]] ; then
@ -481,6 +385,10 @@ start_portwine () {
kill_portwine
echo "Set to win${PW_WINDOWS_VER}"
fi
if [[ "${portwine_exe}" == *-Shipping.exe ]] ; then
echo "Disable EAC"
[[ -z "${LAUNCH_PARAMETERS}" ]] && export LAUNCH_PARAMETERS+="-eac-nop-loaded "
fi
pw_stop_progress_bar &&
pw_tray_icon &&
if [[ "${PW_CHECK_AUTOINSTAL}" != "1" ]] ; then
@ -524,11 +432,12 @@ pw_run () {
export -f pw_run
###MAIN###
if [ $(id -u) -eq 0 ] ; then
if [[ $(id -u) -eq 0 ]] ; then
zenity_error "Do not run the script from the superuser!"
exit 1
fi
if [[ ! -z "${PW_SILENT_RESTART}" && "${PW_SILENT_RESTART}" = 1 ]] ; then
create_new_dir "${HOME}/.local/share/applications"
if [[ ! -z "${PW_SILENT_RESTART}" ]] && [[ "${PW_SILENT_RESTART}" = 1 ]] ; then
export PW_GUI_DISABLED_CS=1
unset PW_SILENT_RESTART
else
@ -537,7 +446,7 @@ fi
unset MANGOHUD MANGOHUD_DLSYM PW_NO_ESYNC PW_NO_FSYNC PW_VULKAN_USE WINEDLLOVERRIDES PW_NO_WRITE_WATCH PW_YAD_SET PW_ICON_FOR_YAD
unset PW_CHECK_AUTOINSTAL PW_VKBASALT_EFFECTS PW_VKBASALT_FFX_CAS PORTWINE_DB PORTWINE_DB_FILE PW_DISABLED_CREATE_DB
unset CHK_SYMLINK_FILE MESA_GL_VERSION_OVERRIDE PATH_TO_GAME PW_START_DEBUG PORTPROTON_NAME PORTWINE_CREATE_SHORTCUT_NAME
unset PW_PREFIX_NAME WINEPREFIX VULKAN_MOD PW_WINE_VER
unset PW_PREFIX_NAME WINEPREFIX VULKAN_MOD PW_WINE_VER PW_ADD_TO_ARGS_IN_RUNTIME
export portname=PortProton