Commit d1bb1d7f authored by Mikhail Tergoev's avatar Mikhail Tergoev

###Scripts version 2052###

parent 3c928884
История изменений и дальнейшие планы:
-----------------------------------------
В планах:
* перенести все библиотеки и бинарники добавленые нашим проектом в Portable
* добавить проверку на существоваие каталога wine, если таковой нет, предложить стандартную версию, или скачать другую
* добавить inxi в runtime и его вывод с аргументом -G в log
* добавить проверку количества db файлов на один exe
* заниматься только развитием проекта за счет вашей подписки на https://boosty.to/portwine-linux.ru
-----------------------------------------
###Scripts version 2052###
* ребрендинг лого (исходник лого есть в Discord - жду ваши варианты иконок в формате png)
* добалена обложка при загрузке клиента League of Legends
* добавлена анимация при загрузке PortProton
* добавлена анимация при обновллении префикса и работы winetricks (с возможностью постмотреть вывод терминала внутри GUI)
* копирование d3d_extras заменено на создание символьных ссылок (еще немного увеличевает скорость запуска порта)
###Scripts version 2051###
* Добавлена проверка и скачивание актуальной версии WINE для League of Legends перед запуском игры
* добавлена проверка и скачивание актуальной версии WINE для League of Legends перед запуском игры
###Scripts version 2050###
* HOTFIX - отображение версий WINE при создании db файла
......@@ -32,7 +41,7 @@
###Scripts version 2047###
* автоматическое отключение gamemode для системы Red Hat (исправляет долгую загрузку wine)
* обновлен PROTON_STEAM до версии 6.8-3 (cовместно с dxvk, vkd3d и nvapi)
* обновлен PROTON_STEAM до версии 6.3-8rc (cовместно с dxvk, vkd3d и nvapi)
* обновлен PROTON_GE (dxvk, vkd3d из 6.21-1 и nvapi до внрсии 0.5)
* добавлены библиотеки для начальной поддержки Battle Eye
* обновлен контейнер до актуального состояния steam runtime soldiers
......
data_from_portwine/img/gui/port_proton.png

12.1 KB | W: | H:

data_from_portwine/img/gui/port_proton.png

50.4 KB | W: | H:

data_from_portwine/img/gui/port_proton.png
data_from_portwine/img/gui/port_proton.png
data_from_portwine/img/gui/port_proton.png
data_from_portwine/img/gui/port_proton.png
  • 2-up
  • Swipe
  • Onion skin
data_from_portwine/img/w.png

73 KB | W: | H:

data_from_portwine/img/w.png

409 KB | W: | H:

data_from_portwine/img/w.png
data_from_portwine/img/w.png
data_from_portwine/img/w.png
data_from_portwine/img/w.png
  • 2-up
  • Swipe
  • Onion skin
......@@ -294,6 +294,8 @@ init_wine_ver () {
done
fi
[[ ! -f "${WINEDIR}/version" ]] && echo "${PW_WINE_USE}" > "${WINEDIR}/version"
if [[ ! -d "${WINEDIR}/lib64/" && -d "${WINEDIR}/lib/wine/x86_64-unix" ]] ; then
create_new_dir "${WINEDIR}/lib64/wine"
mv -f "${WINEDIR}/lib/wine/x86_64-unix" "${WINEDIR}/lib64/wine/"
......@@ -323,6 +325,32 @@ sszen() {
zenity --progress --title="Settings..." --text="Updating parameters" --pulsate --auto-close --width=500 --height=90 --no-cancel
}
pw_start_progress_bar_cover () {
PW_GIF_FILE="$1"
PW_GIF_SIZE_X=`file "${PW_GIF_FILE}" | awk '{print $7 + 20}'`
PW_GIF_SIZE_Y=`file "${PW_GIF_FILE}" | awk '{print $9 + 20}'`
"${pw_yad}" --picture --filename="${PW_GIF_FILE}" --close-on-unfocus --no-buttons --undecorated --center \
--skip-taskbar --width=$PW_GIF_SIZE_X --height=$PW_GIF_SIZE_Y > /dev/null 2>&1 &
}
pw_update_pfx_cover_gui () {
PW_KEY_PROGRESS_BAR=$RANDOM
PW_GIF_FILE="${PW_GUI_ICON_PATH}/covers/pw_update_pfx_cover.gif"
PW_GIF_SIZE_X=`file "${PW_GIF_FILE}" | awk '{print $7 + 40}'`
PW_GIF_SIZE_Y=`file "${PW_GIF_FILE}" | awk '{print $9 + 80}'`
echo "UPDATE PREFIX..." > "${PORT_WINE_TMP_PATH}/update_pfx_log"
while [[ -f "${PORT_WINE_TMP_PATH}/update_pfx_log" ]] ; do
sleep 1
while read -r line ; do
echo "# ${line}"
done
done < "${PORT_WINE_TMP_PATH}/update_pfx_log" | "${pw_yad_new}" --plug=$PW_KEY_PROGRESS_BAR --tabnum="2" --text-info --tail &
"${pw_yad_new}" --plug=$PW_KEY_PROGRESS_BAR --tabnum="1" --picture --filename="${PW_GIF_FILE}" --image-on-top &
"${pw_yad_new}" --notebook --key="$PW_KEY_PROGRESS_BAR" --tab=LOGO --tab=TERMINAL --no-buttons --undecorated \
--center --auto-close --skip-taskbar --width=$PW_GIF_SIZE_X --height=$PW_GIF_SIZE_Y --tab-pos=bottom
}
pw_start_progress_bar_cs () {
"${pw_yad}" --progress --progress-text="$@" --pulsate --close-on-unfocus \
--no-buttons --undecorated --center --skip-taskbar --width=500 --wrap-width=500 > /dev/null 2>&1 &
......@@ -336,9 +364,13 @@ pw_start_progress_bar_block () {
}
pw_stop_progress_bar () {
try_remove_file "${PORT_WINE_TMP_PATH}/update_pfx_log"
while [ ! -z "`pgrep -a yad | grep "\-\-progress" | awk '{print $1}'`" ]
do kill -n 9 `pgrep -a yad | grep "\-\-progress" | awk '{print $1}' | head -n 1` > /dev/null 2>&1
done
while [ ! -z "`pgrep -a yad | grep -i "PortProton" | awk '{print $1}'`" ]
do kill -n 9 `pgrep -a yad | grep -i "PortProton" | awk '{print $1}' | head -n 1` > /dev/null 2>&1
done
}
pw_download_libs () {
......@@ -447,6 +479,9 @@ stop_portwine () {
fi
try_remove_dir "${PW_WINELIB}/var"
find "${WINEPREFIX}/drive_c/" -maxdepth 1 -type f -name "*.tmp" -delete
if [[ ! -z "`pgrep -a start.sh | grep -i portproton | awk '{print $1}'`" ]]
then kill -s KILL `pgrep -a start.sh | grep -i portproton | awk '{print $1}'`
fi &
exit 0
}
open_changelog () {
......@@ -822,11 +857,11 @@ gui_proton_downloader () {
fi
done
if [[ ${VERSION_INSTALLED_WINE} ]]; then
if [[ ! -z "${VERSION_INSTALLED_WINE}" ]]; then
try_remove_dir "${PORT_WINE_PATH}/data/dist/${VERSION_INSTALLED_WINE}"
unset VERSION_INSTALLED_WINE
gui_proton_downloader
exit 0
/bin/bash -c ${pw_full_command_line[*]} &
exit 0
fi
print_info "Download and install ${VERSION_WINE_GIT}..."
......
......@@ -58,8 +58,9 @@ check_download_wine_ver_for_lol () {
}
check_download_wine_ver_for_lol
check_port_for_lol () {
pw_start_progress_bar_block "Loading and start League of Legends. Please wait. It can take a long time!"
check_port_for_lol () {
"${pw_yad}" --progress --progress-text="Loading and start League of Legends. Please wait. It can take a long time!" \
--pulsate --no-buttons --undecorated --center --skip-taskbar --image="${PW_GUI_ICON_PATH}/covers/lol_cover.jpg" > /dev/null 2>&1 &
process=LeagueClientUx.exe
while [[ -z `pidof ${process}` ]] ; do
echo "PID ${process} not found"
......
......@@ -5,6 +5,7 @@
#Rating=5
export PW_COMMENT_DB="Wargaming Game Center"
################################################
export PW_WINE_USE=PROTON_GE
export PW_VULKAN_USE=1 #dxvk, vkd3d or 0 for OpenGL
export LAUNCH_PARAMETERS="--disable-gpu" # Additional launch options
#export PW_USE_TERMINAL=1
......
......@@ -34,7 +34,8 @@ start_portwine () {
cp -f "${PORT_SCRIPTS_PATH}/.Xresources" "${HOME}"
xrdb -merge "${HOME}/.Xresources"
fi
pw_start_progress_bar_block "Update prefix for ${PW_WINE_USE}... Please wait..."
pw_update_pfx_cover_gui &
if [[ ! -z "${LD_LIBRARY_PATH}" ]] ; then
if [[ -z "`echo ${LD_LIBRARY_PATH} | grep "${WINEDIR}/lib64:${WINEDIR}/lib"`" ]] ; then
......@@ -277,14 +278,14 @@ start_portwine () {
export PW_WINE_USE=${PW_PROTON_STEAM_VER}
init_wine_ver
check_dirs_and_files_in_pfx
${pw_runtime} env LD_LIBRARY_PATH="${LD_LIBRARY_PATH}" "${WINELOADER}" wineboot -i
${pw_runtime} env LD_LIBRARY_PATH="${LD_LIBRARY_PATH}" "${WINELOADER}" wineboot -i &>>"${PORT_WINE_TMP_PATH}/update_pfx_log"
wait_wineserver &&
export PW_WINE_USE="${OLD_PW_WINE_USE}"
init_wine_ver
echo "${PW_WINE_USE}" > "${WINEPREFIX}/.wine_ver"
elif [[ -z "`cat ${WINEPREFIX}/.wine_ver | grep ${PW_WINE_USE}`" ]] ; then
check_dirs_and_files_in_pfx
${pw_runtime} env LD_LIBRARY_PATH="${LD_LIBRARY_PATH}" "${WINELOADER}" wineboot -i
${pw_runtime} env LD_LIBRARY_PATH="${LD_LIBRARY_PATH}" "${WINELOADER}" wineboot -i &>>"${PORT_WINE_TMP_PATH}/update_pfx_log"
wait_wineserver &&
echo "${PW_WINE_USE}" > "${WINEPREFIX}/.wine_ver"
fi
......@@ -315,13 +316,13 @@ start_portwine () {
try_force_link_file "${PW_PLUGINS_PATH}"/BattlEye_Runtime/BEClient.so "${WINEDIR}"/lib
try_force_link_file "${PW_PLUGINS_PATH}"/BattlEye_Runtime/BEClient_x64.so "${WINEDIR}"/lib64
var_winedlloverride_update "beclient,beclient_x64=b,n"
#try copy d3d extras libs
#try link d3d extras libs
for d3d_extras_from_plugins in d3dcompiler_43 d3dx9_27 d3dx9_32 d3dx9_37.dll d3dx9_42 d3dcompiler_47 d3dx9_28.dll \
d3dx9_33 d3dx9_38 d3dx9_43 d3dx9_24 d3dx9_29 d3dx9_34 d3dx9_39 d3dx9_25 d3dx9_30 d3dx9_35 d3dx9_40 d3dx9_26 \
d3dx9_31 d3dx9_36 d3dx9_41
do
try_copy_file "${PW_PLUGINS_PATH}/d3d_extras/x64/${d3d_extras_from_plugins}.dll" "${WINEPREFIX}/drive_c/windows/system32/"
try_copy_file "${PW_PLUGINS_PATH}/d3d_extras/x32/${d3d_extras_from_plugins}.dll" "${WINEPREFIX}/drive_c/windows/syswow64/"
try_force_link_file "${PW_PLUGINS_PATH}/d3d_extras/x64/${d3d_extras_from_plugins}.dll" "${WINEPREFIX}/drive_c/windows/system32/"
try_force_link_file "${PW_PLUGINS_PATH}/d3d_extras/x32/${d3d_extras_from_plugins}.dll" "${WINEPREFIX}/drive_c/windows/syswow64/"
var_winedlloverride_update "${d3d_extras_from_plugins}=n"
done
var_winedlloverride_update "steam_api,steam_api64,steamclient,steamclient64=n;lsteamclient,winemenubuilder.exe="
......@@ -413,13 +414,15 @@ start_portwine () {
if [ "$?" == "1" ] ; then
if [ -z "${PW_DLL_NEED_INSTALL}" ]
then export PW_DLL_NEED_INSTALL="${need_install_dll_to_pfx}"
else export PW_DLL_NEED_INSTALL="${need_install_dll_to_pfx} ${PW_DLL_NEED_INSTALL}"
else export PW_DLL_NEED_INSTALL="${need_install_dll_to_pfx} ${PW_DLL_NEED_INSTALL}"
fi
export USE_WT_FROM_DB=1
fi
done
if [ "${USE_WT_FROM_DB}" == "1" ] ; then
update_winetricks
echo "START WINETRICKS..." >> "${PORT_WINE_TMP_PATH}/update_pfx_log"
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
......@@ -427,8 +430,8 @@ start_portwine () {
export PW_WINE_VER="${PW_PROTON_STEAM_VER}"
init_wine_ver
fi
${pw_runtime} xterm -e env PATH="${PATH}" LD_LIBRARY_PATH="${LD_LIBRARY_PATH}" \
"${PORT_WINE_TMP_PATH}/winetricks" -q -r ${PW_DLL_NEED_INSTALL}
${pw_runtime} env PATH="${PATH}" LD_LIBRARY_PATH="${LD_LIBRARY_PATH}" \
"${PORT_WINE_TMP_PATH}/winetricks" -q -r ${PW_DLL_NEED_INSTALL} &>>"${PORT_WINE_TMP_PATH}/update_pfx_log"
if [ "${PW_WINE_VER_FROM_DB}" != "${PW_PROTON_STEAM_VER}" ] ; then
export PW_SILENT_RESTART=1
/bin/bash -c ${pw_full_command_line[*]} &
......@@ -447,7 +450,7 @@ start_portwine () {
fi
pw_stop_progress_bar &&
pw_tray_icon
pw_start_progress_bar_cs "Start ${portname}... Please wait..."
pw_start_progress_bar_cover "${PW_GUI_ICON_PATH}/covers/pw_loading_cover.gif"
add_in_start_portwine
}
......@@ -504,6 +507,8 @@ export portname=PortProton
cd "$(dirname "`readlink -f "$0"`")" && export PORT_SCRIPTS_PATH="$(pwd)"
cd "${PORT_SCRIPTS_PATH}/../../" && export PORT_WINE_PATH="$(pwd)"
export PORT_WINE_TMP_PATH="${PORT_WINE_PATH}/data/tmp"
rm -f "${PORT_WINE_TMP_PATH}"/*.tar.*
if [ -d "${PORT_WINE_PATH}/data/dist" ] ; then
chmod -R 755 "${PORT_WINE_PATH}/data/dist"
orig_IFS="$IFS"
......@@ -525,7 +530,7 @@ create_new_dir "${PORT_WINE_TMP_PATH}"/mono
cd "${PORT_SCRIPTS_PATH}"
. "${PORT_SCRIPTS_PATH}/var"
export PW_PLUGINS_PATH="${PORT_WINE_TMP_PATH}/plugins${PW_PLUGINS_VER}/"
export PW_PLUGINS_PATH="${PORT_WINE_TMP_PATH}/plugins${PW_PLUGINS_VER}"
if [ ! -f "${PORT_WINE_TMP_PATH}/${portname}_loc" ] ; then
SET_LANG=`zenity --title "Install $portname" --text "Select the language" --list --radiolist \
......
......@@ -5,7 +5,8 @@ if [ -f "$1" ]; then
export portwine_exe="$(readlink -f "$1")"
fi
. "$(dirname $(readlink -f "$0"))/runlib"
kill_portwine
kill_portwine
pw_stop_progress_bar
portwine_launch () {
start_portwine
......@@ -191,7 +192,7 @@ pw_winecmd () {
export PW_USE_TERMINAL=1
start_portwine
cd "${WINEPREFIX}/drive_c"
${pw_runtime} xterm -e env LD_LIBRARY_PATH="${LD_LIBRARY_PATH}" "${WINELOADER}" cmd
${pw_runtime} env LD_LIBRARY_PATH="${LD_LIBRARY_PATH}" xterm -e "${WINELOADER}" cmd
stop_portwine
}
......
#!/bin/bash
#Author: Castro-Fidel (PortWINE-Linux.ru)
#SCRIPTS_NEXT_VERSION=2051
#SCRIPTS_NEXT_VERSION=2052
#PORT_NEXT_VERSION=97
########################################################################
export PW_MANGOHUD=1
......
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