From a0be9e7ce1cc91f9a3e318500ddf2173e83606b1 Mon Sep 17 00:00:00 2001 From: Mikhail Tergoev Date: Mon, 14 Jul 2025 17:12:51 +0300 Subject: [PATCH] try_download: always display a license agreement --- winehelper | 58 +++++++++++++++++++++++++++++++++++++----------------- 1 file changed, 40 insertions(+), 18 deletions(-) diff --git a/winehelper b/winehelper index 9b1e717..f4c5308 100755 --- a/winehelper +++ b/winehelper @@ -144,6 +144,11 @@ check_variables VKD3D_VER "1.1-2602" export CLOUD_URL="https://cloud.linux-gaming.ru/portproton" +if env | grep license_agreement_file +then fatal "Обнаружена подмена переменной license_agreement_file!" +else readonly license_agreement_file="$(mktemp -d)/$((RANDOM % RANDOM))" +fi + ##### CHECK NOEXEC FOR /HOME ##### if mount -l | grep -E "[[:space:]]/home[[:space:]]" | grep -q "noexec" ; then fatal "/home примонтирован в /etc/fstab с аргументом noexec.\nЗапуск портативной версии wine не возможен из домашнего каталога." @@ -328,7 +333,42 @@ check_file_sum () { fi } +print_license_agreement () { + if [[ -f "$license_agreement_file" ]] \ + && [[ "$(stat -c %a "$license_agreement_file" 2>/dev/null)" == "600" ]] + then return 0 + fi + + echo + print_warning "Лицензионные соглашения использования сторонних компонентов: + +Некоторые компоненты, установленные в префикс и необходимые для запуска приложений, могут +быть защищены авторским правом или лицензионными соглашениями. Вы обязаны самостоятельно +убедиться в законности использования этих компонентов в вашей юрисдикции. + +Мы не несём ответственности за нарушение лицензионных соглашений, связанное с использованием +подготовленного префикса, а так же за программное обеспечение поставляемого из сторонних источников. + +Подтверждая продолжение установки, вы соглашаетесь что ознакомились с данным отказом от +ответственности и принимаете все риски, связанные с использованием программного обеспечения. +" + + if print_confirmation "Подтвердите продолжение установки" ; then + touch "$license_agreement_file" + chmod 600 "$license_agreement_file" + cleanup_laf () { + local cleanup_laf_dir="$(dirname "$license_agreement_file")" + rm -r "$cleanup_laf_dir" || echo "Не удалось удалить каталог $cleanup_laf_dir" + } + trap "cleanup_laf" EXIT + return 0 + else + exit 1 + fi +} + try_download () { + print_license_agreement local download_file_url output_file output_file_name download_file_url="${1// /%20}" output_file="$2" @@ -1203,24 +1243,6 @@ init_database () { } prepair_wine () { - if [[ -n "$INSTALL_SCRIPT_NAME" ]] ; then - print_warning "Лицензионные соглашения использования сторонних компонентов: - -Некоторые компоненты, установленные в префикс и необходимые для запуска приложений, могут -быть защищены авторским правом или лицензионными соглашениями. Вы обязаны самостоятельно -убедиться в законности использования этих компонентов в вашей юрисдикции. - -Мы не несём ответственности за нарушение лицензионных соглашений, связанное с использованием -подготовленного префикса, а так же за программное обеспечение поставляемого из сторонних источников. - -Подтверждая продолжение установки, вы соглашаетесь что ознакомились с данным отказом от -ответственности и принимаете все риски, связанные с его использованием. -" - if ! print_confirmation "Подтвердите продолжение установки" - then exit 1 - fi - fi - var_winedlloverride_update "winemenubuilder.exe=d" if [[ -n "$INSTALL_SCRIPT_NAME" ]]