Compare commits

...

18 Commits

12 changed files with 231 additions and 36 deletions

View File

@ -1,5 +1,12 @@
История изменений:
0.3.2:
* обновлена автоустановка "Альта-Максимум"
* исправлен запуск установленных программ аргументом "run"
Пример: "winehelper run БК.exe"
* добавлен аргумент "--debug" для запуска в режиме создания лога
Пример: "winehelper --debug run БК.exe"
0.3.1:
* добавлен вывод ошибки, если установочного файла не существует
* исправлена тихая установка нескольких приложений "Альта-Софт" в один префикс и каталог

22
THIRD-PARTY Normal file
View File

@ -0,0 +1,22 @@
WINE:
https://gitlab.winehq.org/wine/wine
https://gitlab.winehq.org/wine/wine-staging
https://github.com/ValveSoftware/Proton
https://github.com/Kron4ek/wine-tkg
https://git.altlinux.org/gears/w/wine.git
WINE-MONO:
https://gitlab.winehq.org/mono/wine-mono
WINE-GECKO:
https://gitlab.winehq.org/wine/wine-gecko
DXVK:
https://github.com/doitsujin/dxvk
VKD3D:
https://gitlab.winehq.org/wine/vkd3d
https://github.com/HansKristian-Work/vkd3d-proton
WINETRICKS:
https://github.com/Winetricks/winetricks

30
autoinstall/alta-expert Normal file
View File

@ -0,0 +1,30 @@
#!/usr/bin/env bash
# info_ru: Пакет программ для таможенного оформления. Включает программы Такса и ТамДок в комплектациях Эксперт, а также программу Заполнитель.
########################################################################
export WH_AUTOINSTALL="1"
export WH_WINE_USE="wine_x_tkg_10-0_amd64"
export WINEPREFIX="alta"
export PROG_NAME="Альта-Эксперт"
export BASE_PFX="alta_pfx_x86_v01"
export WH_WINDOWS_VER="10"
export WINEARCH="win32"
export INSTALL_DLL="corefonts eufonts lucida opensymbol tahoma cjkfonts vb6run mdac28 msxml3 msxml4 msxml6 mfc42 jet40 native_oleaut32"
ALTA_VERSION="230325"
AUTOINSTALL_EXE="${WH_TMP_DIR}/expert${ALTA_VERSION}.zip"
AUTOINSTALL_UNPACK="${WH_TMP_DIR}/expert${ALTA_VERSION}"
AUTOINSTALL_SETUP="${WH_TMP_DIR}/expert${ALTA_VERSION}/setup.exe"
prepair_wine
if try_download "https://www1.alta.ru/pub/packets/distr/expert${ALTA_VERSION}.zip" "${AUTOINSTALL_EXE}" ; then
7z x -y "${AUTOINSTALL_EXE}" -o"${AUTOINSTALL_UNPACK}"
try_remove_file "$AUTOINSTALL_EXE"
wine_run_install "${AUTOINSTALL_SETUP}" /S /OVERWRITE
try_remove_dir "$AUTOINSTALL_UNPACK"
ALTA_PATH="$DRIVE_C/ALTA"
create_desktop "Таможенные документы" "$ALTA_PATH/ordview.exe" "altatamdoc"
create_desktop "Такса" "$ALTA_PATH/taxwin.exe" "altatax"
create_desktop "Заполнитель" "$ALTA_PATH/zapoln.exe" "altazap"
fi

View File

@ -10,19 +10,20 @@ export WH_WINDOWS_VER="10"
export WINEARCH="win32"
export INSTALL_DLL="corefonts eufonts lucida opensymbol tahoma cjkfonts vb6run mdac28 msxml3 msxml4 msxml6 mfc42 jet40 native_oleaut32"
AUTOINSTALL_EXE="${WH_TMP_DIR}/maximum100325.zip"
AUTOINSTALL_UNPACK="${WH_TMP_DIR}/maximum100325"
AUTOINSTALL_SETUP="${WH_TMP_DIR}/maximum100325/setup.exe"
ALTA_VERSION="120325"
AUTOINSTALL_EXE="${WH_TMP_DIR}/maximum${ALTA_VERSION}.zip"
AUTOINSTALL_UNPACK="${WH_TMP_DIR}/maximum${ALTA_VERSION}"
AUTOINSTALL_SETUP="${WH_TMP_DIR}/maximum${ALTA_VERSION}/setup.exe"
prepair_wine
if try_download "https://www2.alta.ru/pub/packets/distr/maximum100325.zip" "${AUTOINSTALL_EXE}" ; then
if try_download "https://www2.alta.ru/pub/packets/distr/maximum${ALTA_VERSION}.zip" "${AUTOINSTALL_EXE}" ; then
7z x -y "${AUTOINSTALL_EXE}" -o"${AUTOINSTALL_UNPACK}"
try_remove_file "$AUTOINSTALL_EXE"
wine_run_install "${AUTOINSTALL_SETUP}" /S /OVERWRITE
try_remove_dir "$AUTOINSTALL_UNPACK"
ALTA_PATH="$DRIVE_C/Alta"
ALTA_PATH="$DRIVE_C/ALTA"
create_desktop "Альта-ГТД" "$ALTA_PATH/gtdw.exe" "altagtd"
create_desktop "Таможенные документы" "$ALTA_PATH/ordview.exe" "altatamdoc"
create_desktop "Такса" "$ALTA_PATH/taxwin.exe" "altatax"

View File

@ -0,0 +1,25 @@
#!/usr/bin/env bash
# info_ru: Специализированное программное обеспечение «Автономная станция прослушивания» предназначено для загрузки и прослушивания электронных материалов итогового собеседования.
########################################################################
export WH_AUTOINSTALL="1"
export WH_WINE_USE="wine_x_tkg_10-0_i586"
export WINEPREFIX="audio_station"
export PROG_NAME="АС Прослушивания"
export PROG_ICON="desktopaudiostation"
export BASE_PFX="none"
export WH_WINDOWS_VER="10"
export WINEARCH="win32"
export INSTALL_DLL="dotnet48 corefonts vcrun2022 dsound xact winhttp gdiplus"
export USE_RENDERER="proton"
if [[ -f "$2" ]] ; then
prepair_wine
wine_run_install "$2" /s /nr # /l=Russian
WIN_FILE_EXEC="$DRIVE_C/Program Files/Автономная станция прослушивания (2025)/DesktopAudioStation.exe"
create_desktop "$PROG_NAME" "$WIN_FILE_EXEC" "$PROG_ICON"
else
fatal "Не найден файл установки для $PROG_NAME. Перезапустите по примеру:
winehelper install $1 \"/путь/до/установочногоайла\""
fi

View File

@ -0,0 +1,25 @@
#!/usr/bin/env bash
# info_ru: Специализированное программное обеспечение «Автономная станция записи» предназначено для записи ответов участников итогового собеседования.
########################################################################
export WH_AUTOINSTALL="1"
export WH_WINE_USE="wine_x_tkg_10-0_i586"
export WINEPREFIX="audio_station"
export PROG_NAME="АС Записи"
export PROG_ICON="recordingstation"
export BASE_PFX="none"
export WH_WINDOWS_VER="10"
export WINEARCH="win32"
export INSTALL_DLL="dotnet48 corefonts vcrun2022 dsound xact winhttp gdiplus"
export USE_RENDERER="proton"
if [[ -f "$2" ]] ; then
prepair_wine
wine_run_install "$2" /S /v/qn
WIN_FILE_EXEC="$DRIVE_C/Program Files/Federal Test Center/ISRecordStation2024-2025/RecordStation.exe"
create_desktop "$PROG_NAME" "$WIN_FILE_EXEC" "$PROG_ICON"
else
fatal "Не найден файл установки для $PROG_NAME. Перезапустите по примеру:
winehelper install $1 \"/путь/до/установочногоайла\""
fi

View File

@ -0,0 +1,26 @@
#!/usr/bin/env bash
# info_ru: Это мощный, современный инструмент быстрой и качественной разработки АСУТП
########################################################################
export WH_AUTOINSTALL="1"
export WH_WINE_USE="wine_x_tkg_10-0_i586" # wine-9.0.9-alt1-i586"
export WINEPREFIX="scada-krug-2000"
export PROG_NAME="SCADA КРУГ 2000"
export PROG_ICON="krugtaskmanager"
export BASE_PFX="scadakrug2k_pfx_v01"
export WH_WINDOWS_VER="10"
export WINEARCH="win32"
export INSTALL_DLL="dotnet48 vcrun6 vcrun2008 vcrun2022 d3dcompiler_47 mdac28 corefonts riched20 wsh57"
export USE_RENDERER="proton"
if [[ -f "$2" ]] ; then
prepair_wine
kill_autostart "KrugTaskManager.exe" &
wine_run_install "$2" /quiet
WIN_FILE_EXEC="$DRIVE_C/Program Files/Krug2000/Bin/KrugTaskManager.exe"
create_desktop "Менеджер задач" "$WIN_FILE_EXEC" "$PROG_ICON"
else
fatal "Не найден файл установки для $PROG_NAME. Перезапустите по примеру:
winehelper install $1 \"/путь/до/установочногоайла\""
fi

Binary file not shown.

After

Width:  |  Height:  |  Size: 18 KiB

BIN
image/krugtaskmanager.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 15 KiB

BIN
image/recordingstation.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.6 KiB

View File

@ -1,7 +1,17 @@
##### WINE #####
3571c40a787f0386e0160b5d471b1bf11fa2a235b497156cd38198b90bcb4a9f wine_x_tkg_10-0_i586.tar.xz
71d6fdfd23d7988471d345c68e81699b8af931352b03dd216424b398f63c7b12 wine_x_tkg_10-0_amd64.tar.xz
fb7fdfde96de10a1b3b051bdf2727b6a7c1768b878483726454dd6726e9e0193 wine-9.0.14-alt1-i586-spravkibk.tar.xz
6f86d2220b65b709bf88c6f829a4998de3b929cc2091cd1333a51c32e1491b79 wine-9.0.9-alt1-i586.tar.xz
##### DXVK #####
98411effbc1b3611b11c4ca3af2ad29400b08e1c8c380791d6351600a06fb3c7 dxvk-1.10.3-28.tar.xz
##### VKD3D #####
df1a940d2e072a884524f66a16e0f0ef74048bc6a6642b96eb257528a522109f vkd3d-proton-1.1-2602.tar.xz
##### PREFIX #####
@ -41,3 +51,7 @@ d026d799f8d3893c64c749661240d76896d45fd14fdb6665bf0f875a4a05bcdb spravkibk_pfx_
# create with wine-9.0.14-alt1-i586-spravkibk (xuser in .reg files)
# winetricks msxml6 dotnet35sp1 msxml3 renderer=gdi
# winetricks isolate_home used after unpacking prefix
8a56796be2f18b831ce92119886e84f62c37e06fa1d8f1e4df82c5ced4479a5d scadakrug2k_pfx_v01.tar.xz
# create with wine_x_tkg_10-0_i586 (universal user: xuser)
# winetricks wsh57 mdac28 vcrun2022 dotnet40 dotnet48 d3dcompiler_47 vcrun6 msls31 riched20 andale arial comicsans courier georgia impact times trebuchet verdana webdings corefonts vcrun2008

View File

@ -11,12 +11,24 @@ print_error () { printf "\E[31m%s Ошибка: $@ %s\e[0m\n" ;}
print_warning () { printf "\E[33m%s Предупреждение: $@ %s\e[0m\n" ;}
print_info () { printf "\E[36m%s Информация: \"$@\" %s\e[0m\n" ;}
print_ok () { printf "\E[35m%s Успех: $@ %s\e[0m\n" ;}
print_var () { for vp in $@ ; do print_info "${vp}=${!vp}" ; done ;}
print_var () { for vp in $@ ; do echo "${vp}=${!vp}" ; done ;}
fatal () { print_error "$@" ; exit 1 ;}
##### CHECK VARIABLES #####
check_variables () { [[ -z ${!1} ]] && export $1="$2" ;}
##### CHECK DEBUG #####
if [[ "$1" == "--debug" ]] ; then
export DEBUG="full"
export LOG_FILE="$HOME/winehelper.log"
shift
print_warning "Включен режим подробного логирования работы WINE."
print_warning "Лог будет сохранен по пути: $LOG_FILE"
sleep 3
else
check_variables DEBUG "0"
fi
##### DEFAULT VARIABLES #####
SCRIPT_NAME="$(basename "$0")"
if [[ "$(realpath "$0")" == "/usr/bin/$SCRIPT_NAME" ]] ; then
@ -53,8 +65,6 @@ check_variables WINE_DO_NOT_CREATE_DXGI_DEVICE_MANAGER "0"
check_variables WINE_HEAP_DELAY_FREE "0"
check_variables WINE_ALLOW_XIM "0"
check_variables DEBUG 0
check_variables WH_WINDOWS_VER "10"
# check_variables WH_USE_GSTREAMER "1"
# check_variables WH_USE_D3D_EXTRAS "1"
@ -64,16 +74,14 @@ check_variables WH_DLL_INSTALL ""
check_variables WINE_WIN_START "start /wait /high /unix"
check_variables WINE_CPU_TOPOLOGY "4"
check_variables WINE_CPU_TOPOLOGY "8"
check_variables USE_OPENGL "1"
check_variables USE_RENDERER "opengl" # opengl, damavand, proton
check_variables DXVK_STABLE_VER "1.10.3-28"
check_variables DXVK_GIT_VER "2.2-164"
check_variables DXVK_VER "1.10.3-28"
# check_variables DXVK_CONFIG_FILE "path/to/dxvk.conf"
check_variables VKD3D_STABLE_VER "1.1-2602"
check_variables VKD3D_GIT_VER "1.1-3556"
check_variables VKD3D_VER "1.1-2602"
# check_variables VKD3D_LIMIT_TESS_FACTORS 64
# check_variables VKD3D_FEATURE_LEVEL "12_0"
@ -361,8 +369,24 @@ create_desktop () {
if [[ -z "$name_desktop" ]] || [[ -z "$exe_file" ]] ; then
fatal "Used: $SCRIPT_NAME --desktop \"desktop_name\" \"path_to_exe\" \"name_png_from_image\""
elif [[ ! -f "$exe_file" ]] ; then
print_warning "Для создания ярлыка не найден исполняемый файл: $exe_file"
BASENAME_EXE="$(basename "$exe_file")"
print_info "Запускаем поиск $BASENAME_EXE"
if [[ -z "$DRIVE_C" ]] || [[ ! -d "$DRIVE_C" ]]
then FIND_PATH="$WH_PREFIXES_DIR"
else FIND_PATH="$DRIVE_C"
fi
exe_file="$(find "$FIND_PATH" -type f -not -type l \
-not -path "*/windows/*" -not -path "*/dosdevices/*" \
-iname "$BASENAME_EXE")"
if [[ -z "$exe_file" ]] || [[ ! -f "$exe_file" ]]
then fatal "Для создания ярлыка не найден исполняемый файл: $BASENAME_EXE"
else print_ok "Исполняемый файл $BASENAME_EXE найден по пути $(dirname "$exe_file")/"
fi
fi
[[ ! -f "$exe_file" ]] && fatal "Для создания ярлыка не найден исполняемый файл: $exe_file"
[[ ! -f "$icon_file" ]] && icon_file=wine
{
@ -423,8 +447,6 @@ check_installed_programs () {
elif [[ "$EXE_PATH" =~ ${2}$ ]] ; then
export EXE_PATH
return 0
else
fatal "Не найден файл запуска для $2"
fi
;;
*)
@ -436,6 +458,7 @@ check_installed_programs () {
;;
esac
done
[[ -n $2 ]] && fatal "Не найден файл запуска для $2"
}
run_installed_programs () {
@ -446,14 +469,17 @@ run_installed_programs () {
}
##### USED WINED3D LIBRARY #####
init_opengl () {
if [[ "$USE_OPENGL" == 1 ]] ; then
WINED3D_FILES="d3d8 d3d9 d3d10_1 d3d10 d3d10core d3d11 dxgi d3d12" # d3d12core
init_wined3d () {
if [[ "$USE_RENDERER" != "proton" ]] ; then
WINED3D_FILES="d3d8 d3d9 d3d10_1 d3d10 d3d10core d3d11 dxgi d3d12 d3d12core"
for wined3dfiles in $WINED3D_FILES ; do
try_copy_wine_dll_to_pfx_64 "$wined3dfiles.dll"
try_copy_wine_dll_to_pfx_32 "$wined3dfiles.dll"
done
# check_variables WINE_D3D_CONFIG "renderer="
if [[ "$USE_RENDERER" == "damavand" ]]
then export WINE_D3D_CONFIG="renderer=vulkan"
else export WINE_D3D_CONFIG="renderer=gl"
fi
return 0
else
return 1
@ -478,7 +504,7 @@ init_dxvk () {
for DXVK_VAR_VER in "$USE_DXVK_VER" $@ ; do
if [[ ! -d "${WH_VULKAN_LIBDIR}/dxvk-$DXVK_VAR_VER" ]] ; then
get_dxvk "$CLOUD_URL/dxvk-${DXVK_VAR_VER}.tar.gz"
get_dxvk "$CLOUD_URL/dxvk-${DXVK_VAR_VER}.tar.xz"
fi
done
@ -603,10 +629,9 @@ init_wine_ver () {
check_variables VKBASALT_LOG_LEVEL "none"
check_variables DXVK_NVAPI_LOG_LEVEL "none"
if [[ $DEBUG == 0 ]] ; then
if [[ $DEBUG == "0" ]] ; then
check_variables WINEDEBUG "-all"
export WH_WDBG='2>/dev/null'
elif [[ $DEBUG == full ]] ; then
elif [[ $DEBUG == "full" ]] ; then
check_variables WINEDEBUG "+loaddll,+seh"
export DXVK_LOG_LEVEL="error"
export VKD3D_DEBUG "error"
@ -614,10 +639,8 @@ init_wine_ver () {
export VK_LOADER_DEBUG "error"
export VKBASALT_LOG_LEVEL "error"
export DXVK_NVAPI_LOG_LEVEL "error"
export WH_WDBG=""
else
check_variables WINEDEBUG "err+all"
export WH_WDBG=""
fi
print_info "Используется версия wine: $WH_WINE_USE"
@ -705,6 +728,22 @@ init_wineprefix () {
try_remove_file "$DRIVE_C/windows/system32/winemenubuilder.exe"
}
##### KILL AUTOSTART AFTER INSTALLING #####
kill_autostart () {
[[ -z "${1}" ]] && fatal "Нет аргумента для функции kill_autostart."
[[ -z "${2}" ]] && SWAIT=3 || SWAIT="${2}"
sleep 5
while ps aux | grep -m 1 -i "$WINESERVER" | grep -v grep &>/dev/null ; do
if [[ -z "$(ps aux | grep -m 1 -i "$1" | grep -v grep | awk '{print $2}')" ]] ; then
print_info "PID для $1 не найден. Ожидаем окончания установки..."
sleep "${SWAIT}"
else
print_ok "PID для $1 найден. Завершаем работу автозапуска приложения."
"$WINESERVER" -k
break
fi
done
}
update_winetricks () {
W_TRX_URL="https://raw.githubusercontent.com/Winetricks/winetricks/master/src/winetricks"
@ -819,27 +858,32 @@ prepair_wine () {
init_wineprefix
use_winetricks
unset MANGOHUD_RUN
if init_opengl ; then
[[ "$MANGOHUD" == 1 ]] && MANGOHUD_RUN="mangohud --dlsym"
if init_wined3d ; then
:
else
init_dxvk "$DXVK_STABLE_VER"
init_vkd3d "$VKD3D_STABLE_VER"
[[ "$MANGOHUD" == 1 ]] && MANGOHUD_RUN="mangohud"
init_dxvk "$DXVK_VER"
init_vkd3d "$VKD3D_VER"
fi
[[ "$MANGOHUD" == 1 ]] && MANGOHUD_RUN="mangohud"
}
wine_run () {
print_var WINEPREFIX WINEDLLOVERRIDES WH_WINDOWS_VER
WIN_FILE_PATH="$(dirname "$WIN_FILE_EXEC")"
[[ -d "$WIN_FILE_PATH" ]] && cd "$WIN_FILE_PATH"
$MANGOHUD_RUN "$WINELOADER" "$@" $LAUNCH_PARAMETERS
if [[ $DEBUG == "0" ]] ; then
$MANGOHUD_RUN "$WINELOADER" "$@" $LAUNCH_PARAMETERS
else
print_var WH_WINE_USE WINEARCH WINEPREFIX WINEDLLOVERRIDES WH_WINDOWS_VER | tee "$LOG_FILE"
$MANGOHUD_RUN "$WINELOADER" "$@" $LAUNCH_PARAMETERS 2>&1 | tee -a "$LOG_FILE"
fi
wait_wineserver
}
wine_run_install () {
print_info "Запускаем установку приложения $PROG_NAME."
print_warning "Рекомендуется не менять пути для установки приложения!"
[[ ! -f "$1" ]] && fatal "Нет файла для установки: $1"
case "${1,,}" in
*.exe) wine_run $WINE_WIN_START "$@" ;;
@ -869,7 +913,7 @@ run_autoinstall () {
echo
elif [[ -f "$WH_AUTOINSTALL_DIR/$AI_SCRIPT" ]] ; then
export USE_AI_SCRIPTS="1"
source "$WH_AUTOINSTALL_DIR/$AI_SCRIPT"
source "$WH_AUTOINSTALL_DIR/$AI_SCRIPT" "$@"
print_info "Завершена установка $AI_SCRIPT"
else
fatal "Скрипт автоматической установки для $AI_SCRIPT не найден!"
@ -890,6 +934,7 @@ wh_info () {
Параметры:
--help показать эту справку и выйти
--version показать информацию о пакете и его версии
--debug [команда] включить режим логирования работы WINE
"
}