added support wine-cpcsp_proxy

This commit is contained in:
Mikhail Tergoev
2025-05-28 22:15:32 +03:00
parent b29e586137
commit 8cc9cb17bb
3 changed files with 61 additions and 6 deletions

View File

@ -67,6 +67,9 @@ check_variables WINEFSYNC "0"
check_variables WINEARCH "win64" # or "win32"
check_variables WH_WINE_USE "wine_x_tkg_10-0_amd64" # or system
check_variables WH_USE_CPCSP_PROXY "0"
check_variables CPCSP_PROXY_VER "0.6.1-alt1"
check_variables STAGING_SHARED_MEMORY "1"
check_variables WINE_LARGE_ADDRESS_AWARE "1"
check_variables WINE_FULLSCREEN_FSR "1"
@ -668,7 +671,14 @@ init_wine_ver () {
export GST_PLUGIN_SYSTEM_PATH_1_0="${WINEDIR}/lib/gstreamer-1.0"
fi
if [[ "${WINEARCH}" == "win64" ]] ; then
[[ ! -f "${WINEDIR}/version" ]] && echo "${WH_WINE_USE}" > "${WINEDIR}/version"
if [[ ! -d "${WINEDIR}/lib64/wine" ]] && [[ -d "${WINEDIR}/lib/wine/x86_64-unix" ]] ; then
create_new_dir "${WINEDIR}/lib64/"
try_force_link_dir "${WINEDIR}/lib/wine/" "${WINEDIR}/lib64/"
fi
if [[ -d "${WINEDIR}/lib64" ]] ; then
export LD_LIBRARY_PATH+=":${WINEDIR}/lib64"
export WINEDLLPATH+=":${WINEDIR}/lib64/wine"
if [[ -d "${WINEDIR}/lib64/gstreamer-1.0" ]] ; then
@ -676,12 +686,28 @@ init_wine_ver () {
fi
fi
[[ ! -f "${WINEDIR}/version" ]] && echo "${WH_WINE_USE}" > "${WINEDIR}/version"
if [[ $WH_USE_CPCSP_PROXY == "1" ]] \
&& ! grep -q "$CPCSP_PROXY_VER" "${WINEDIR}/cpcsp_proxy.ver"
then
CPCSP_PROXY_NAME="wine-cpcsp_proxy-$CPCSP_PROXY_VER"
CPCSP_PROXY_URL="$CLOUD_URL/$CPCSP_PROXY_NAME.tar.xz"
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/"
mv -f "${WINEDIR}/lib/wine/x86_64-windows" "${WINEDIR}/lib64/wine/"
if [[ ! -f "$WH_TMP_DIR/$CPCSP_PROXY_NAME" ]] ; then
print_info "Загрузка $CPCSP_PROXY_NAME.tar.xz"
if try_download "$CPCSP_PROXY_URL" "$WH_TMP_DIR/$CPCSP_PROXY_NAME.tar.xz" check256sum
then unpack "$WH_TMP_DIR/$CPCSP_PROXY_NAME.tar.xz" "$WH_TMP_DIR"
else try_remove_file "$WH_TMP_DIR/$CPCSP_PROXY_NAME.tar.xz"
fi
else
unpack "$WH_TMP_DIR/$CPCSP_PROXY_NAME.tar.xz" "$WH_TMP_DIR"
fi
cp -fr "$WH_TMP_DIR/$CPCSP_PROXY_NAME/"i386-* "${WINEDIR}/lib/wine/"
if [[ -d "${WINEDIR}/lib64" ]] ; then
cp -fr "$WH_TMP_DIR/$CPCSP_PROXY_NAME/"x86_64-* "${WINEDIR}/lib64/wine/"
fi
try_remove_dir "$WH_TMP_DIR/$CPCSP_PROXY_NAME"
echo "$CPCSP_PROXY_VER" > "${WINEDIR}/cpcsp_proxy.ver"
fi
else
# use system WINE
@ -989,6 +1015,29 @@ init_wineprefix () {
try_remove_file "$WRAPPER"
fi
# настраиваем префикс для работы с cpcsp_proxy
if [[ $WH_USE_CPCSP_PROXY == "1" ]] ; then
for cpcsp_proxy_file in "cpcsp_proxy.dll" "cpcsp_proxy_setup.exe" ; do
try_copy_wine_dll_to_pfx_64 "$cpcsp_proxy_file"
try_copy_wine_dll_to_pfx_32 "$cpcsp_proxy_file"
done
if ! grep -q "cpcsp_proxy.dll" "$WINEPREFIX/system.reg" ; then
if [[ "$WINEARCH" == "win32" ]]
then cpcsp_proxy_cmd=("$WINELOADER" "cpcsp_proxy_setup.exe")
else cpcsp_proxy_cmd=("${WINELOADER}64" "cpcsp_proxy_setup.exe")
fi
print_info "Запускаем настройку cpcsp_proxy:"
echo "${cpcsp_proxy_cmd[*]}"
if "${cpcsp_proxy_cmd[@]}"
then print_info "Настройка cpcsp_proxy успешно завершена."
else fatal "Ошибка во время настройки cpcsp_proxy."
fi
wait_wineserver
fi
fi
echo "# переменные последнего использования префикса:" > "$WINEPREFIX/last.conf"
for var in WH_WINE_USE BASE_PFX WINEARCH WH_WINDOWS_VER WINEESYNC WINEFSYNC \
STAGING_SHARED_MEMORY WINE_LARGE_ADDRESS_AWARE WH_USE_SHADER_CACHE WH_USE_WINE_DXGI \