diff --git a/data_from_portwine/changelog b/data_from_portwine/changelog index cc64d45..6a0242a 100755 --- a/data_from_portwine/changelog +++ b/data_from_portwine/changelog @@ -1,12 +1,21 @@ История изменений и дальнейшие планы: ----------------------------------------- В планах: +* перенести все библиотеки и бинарники добавленые нашим проектом в 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 diff --git a/data_from_portwine/img/gui/covers/lol_cover.jpg b/data_from_portwine/img/gui/covers/lol_cover.jpg new file mode 100644 index 0000000..40c7c41 Binary files /dev/null and b/data_from_portwine/img/gui/covers/lol_cover.jpg differ diff --git a/data_from_portwine/img/gui/covers/pw_loading_cover.gif b/data_from_portwine/img/gui/covers/pw_loading_cover.gif new file mode 100644 index 0000000..dc2e90b Binary files /dev/null and b/data_from_portwine/img/gui/covers/pw_loading_cover.gif differ diff --git a/data_from_portwine/img/gui/covers/pw_update_pfx_cover.gif b/data_from_portwine/img/gui/covers/pw_update_pfx_cover.gif new file mode 100644 index 0000000..6d8524c Binary files /dev/null and b/data_from_portwine/img/gui/covers/pw_update_pfx_cover.gif differ diff --git a/data_from_portwine/img/gui/port_proton.png b/data_from_portwine/img/gui/port_proton.png old mode 100755 new mode 100644 index a044688..29c4cf0 Binary files a/data_from_portwine/img/gui/port_proton.png and b/data_from_portwine/img/gui/port_proton.png differ diff --git a/data_from_portwine/img/w.png b/data_from_portwine/img/w.png old mode 100755 new mode 100644 index 62cfc28..825d467 Binary files a/data_from_portwine/img/w.png and b/data_from_portwine/img/w.png differ diff --git a/data_from_portwine/scripts/functions_helper b/data_from_portwine/scripts/functions_helper index 2429a65..2c9fdd9 100755 --- a/data_from_portwine/scripts/functions_helper +++ b/data_from_portwine/scripts/functions_helper @@ -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}..." diff --git a/data_from_portwine/scripts/portwine_db/League of Legends b/data_from_portwine/scripts/portwine_db/League of Legends index a040d27..a586112 100755 --- a/data_from_portwine/scripts/portwine_db/League of Legends +++ b/data_from_portwine/scripts/portwine_db/League of Legends @@ -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" diff --git a/data_from_portwine/scripts/portwine_db/wgc b/data_from_portwine/scripts/portwine_db/wgc index 6d7a652..d7e7055 100755 --- a/data_from_portwine/scripts/portwine_db/wgc +++ b/data_from_portwine/scripts/portwine_db/wgc @@ -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 diff --git a/data_from_portwine/scripts/runlib b/data_from_portwine/scripts/runlib index 6e9824c..ec6ea98 100755 --- a/data_from_portwine/scripts/runlib +++ b/data_from_portwine/scripts/runlib @@ -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 \ diff --git a/data_from_portwine/scripts/start.sh b/data_from_portwine/scripts/start.sh index a511ca9..926c2dc 100755 --- a/data_from_portwine/scripts/start.sh +++ b/data_from_portwine/scripts/start.sh @@ -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 } diff --git a/data_from_portwine/scripts/var b/data_from_portwine/scripts/var index b2f57a0..c3b72b7 100755 --- a/data_from_portwine/scripts/var +++ b/data_from_portwine/scripts/var @@ -1,6 +1,6 @@ #!/bin/bash #Author: Castro-Fidel (PortWINE-Linux.ru) -#SCRIPTS_NEXT_VERSION=2051 +#SCRIPTS_NEXT_VERSION=2052 #PORT_NEXT_VERSION=97 ######################################################################## export PW_MANGOHUD=1