Compare commits
1 Commits
Author | SHA1 | Date | |
---|---|---|---|
b44fcdb63e |
14
LICENSE_AGREEMENT
Normal file
14
LICENSE_AGREEMENT
Normal file
@ -0,0 +1,14 @@
|
|||||||
|
Лицензионные соглашения использования сторонних компонентов:
|
||||||
|
|
||||||
|
Некоторые компоненты, установленные в префикс и необходимые для запуска приложений,
|
||||||
|
могут быть защищены авторским правом или лицензионными соглашениями. Вы обязаны
|
||||||
|
самостоятельно убедиться в законности использования этих компонентов в вашей
|
||||||
|
юрисдикции.
|
||||||
|
|
||||||
|
Мы не несём ответственности за нарушение лицензионных соглашений, связанное с
|
||||||
|
использованием подготовленного префикса, а так же за программное обеспечение,
|
||||||
|
поставляемое из сторонних источников.
|
||||||
|
|
||||||
|
Подтверждая продолжение установки, вы соглашаетесь, что ознакомились с данным
|
||||||
|
отказом от ответственности и принимаете все риски, связанные с использованием
|
||||||
|
программного обеспечения.
|
24
winehelper
24
winehelper
@ -7,7 +7,7 @@ if [[ $(id -u) -eq 0 ]] ; then
|
|||||||
fi
|
fi
|
||||||
|
|
||||||
##### DEFAULT PATH #####
|
##### DEFAULT PATH #####
|
||||||
export SCRIPT_NAME USER_WORK_PATH RUN_SCRIPT DATA_PATH CHANGELOG_FILE WH_ICON_PATH LICENSE_FILE
|
export SCRIPT_NAME USER_WORK_PATH RUN_SCRIPT DATA_PATH CHANGELOG_FILE WH_ICON_PATH LICENSE_FILE AGREEMENT
|
||||||
|
|
||||||
SCRIPT_NAME="$(basename "$0")"
|
SCRIPT_NAME="$(basename "$0")"
|
||||||
if [[ "$(realpath "$0")" == "/usr/bin/$SCRIPT_NAME" ]] ; then
|
if [[ "$(realpath "$0")" == "/usr/bin/$SCRIPT_NAME" ]] ; then
|
||||||
@ -18,6 +18,7 @@ if [[ "$(realpath "$0")" == "/usr/bin/$SCRIPT_NAME" ]] ; then
|
|||||||
CHANGELOG_FILE="$(realpath "/usr/share/doc/winehelper"-*/CHANGELOG)"
|
CHANGELOG_FILE="$(realpath "/usr/share/doc/winehelper"-*/CHANGELOG)"
|
||||||
WH_ICON_PATH="$DATA_PATH/image/gui/winehelper.svg"
|
WH_ICON_PATH="$DATA_PATH/image/gui/winehelper.svg"
|
||||||
LICENSE_FILE="$(realpath "/usr/share/doc/winehelper"-*/LICENSE)"
|
LICENSE_FILE="$(realpath "/usr/share/doc/winehelper"-*/LICENSE)"
|
||||||
|
AGREEMENT="$(realpath "/usr/share/doc/winehelper"-*/LICENSE_AGREEMENT)"
|
||||||
else
|
else
|
||||||
# переменные для тестового запуска WineHelper из репозитория
|
# переменные для тестового запуска WineHelper из репозитория
|
||||||
USER_WORK_PATH="$HOME/test-$SCRIPT_NAME"
|
USER_WORK_PATH="$HOME/test-$SCRIPT_NAME"
|
||||||
@ -26,6 +27,7 @@ else
|
|||||||
CHANGELOG_FILE="$DATA_PATH/CHANGELOG"
|
CHANGELOG_FILE="$DATA_PATH/CHANGELOG"
|
||||||
WH_ICON_PATH="$DATA_PATH/image/gui/winehelper-devel.svg"
|
WH_ICON_PATH="$DATA_PATH/image/gui/winehelper-devel.svg"
|
||||||
LICENSE_FILE="$DATA_PATH/LICENSE"
|
LICENSE_FILE="$DATA_PATH/LICENSE"
|
||||||
|
AGREEMENT="$DATA_PATH/LICENSE_AGREEMENT"
|
||||||
|
|
||||||
# минимальная проверка синтаксиса скриптов
|
# минимальная проверка синтаксиса скриптов
|
||||||
for self_check_script in "$RUN_SCRIPT" \
|
for self_check_script in "$RUN_SCRIPT" \
|
||||||
@ -367,20 +369,14 @@ print_license_agreement () {
|
|||||||
then return 0
|
then return 0
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
if [[ -f "$AGREEMENT" ]]; then
|
||||||
|
echo
|
||||||
|
print_warning "$(cat "$AGREEMENT")"
|
||||||
|
else
|
||||||
|
fatal "Файл лицензионного соглашения не найден: $AGREEMENT"
|
||||||
|
fi
|
||||||
|
|
||||||
echo
|
echo
|
||||||
print_warning "Лицензионные соглашения использования сторонних компонентов:
|
|
||||||
|
|
||||||
Некоторые компоненты, установленные в префикс и необходимые для запуска приложений, могут
|
|
||||||
быть защищены авторским правом или лицензионными соглашениями. Вы обязаны самостоятельно
|
|
||||||
убедиться в законности использования этих компонентов в вашей юрисдикции.
|
|
||||||
|
|
||||||
Мы не несём ответственности за нарушение лицензионных соглашений, связанное с использованием
|
|
||||||
подготовленного префикса, а так же за программное обеспечение поставляемого из сторонних источников.
|
|
||||||
|
|
||||||
Подтверждая продолжение установки, вы соглашаетесь что ознакомились с данным отказом от
|
|
||||||
ответственности и принимаете все риски, связанные с использованием программного обеспечения.
|
|
||||||
"
|
|
||||||
|
|
||||||
if print_confirmation "Подтвердите продолжение установки" ; then
|
if print_confirmation "Подтвердите продолжение установки" ; then
|
||||||
touch "$license_agreement_file"
|
touch "$license_agreement_file"
|
||||||
chmod 600 "$license_agreement_file"
|
chmod 600 "$license_agreement_file"
|
||||||
|
@ -4,6 +4,7 @@ import subprocess
|
|||||||
import sys
|
import sys
|
||||||
import shlex
|
import shlex
|
||||||
import shutil
|
import shutil
|
||||||
|
import html
|
||||||
from PyQt5.QtWidgets import (QApplication, QMainWindow, QWidget, QVBoxLayout, QHBoxLayout,QPushButton, QLabel, QTabWidget,
|
from PyQt5.QtWidgets import (QApplication, QMainWindow, QWidget, QVBoxLayout, QHBoxLayout,QPushButton, QLabel, QTabWidget,
|
||||||
QTextEdit, QFileDialog, QMessageBox, QLineEdit, QCheckBox, QStackedWidget, QScrollArea,
|
QTextEdit, QFileDialog, QMessageBox, QLineEdit, QCheckBox, QStackedWidget, QScrollArea,
|
||||||
QGridLayout, QFrame, QDialog, QTextBrowser)
|
QGridLayout, QFrame, QDialog, QTextBrowser)
|
||||||
@ -20,6 +21,7 @@ class Var:
|
|||||||
CHANGELOG_FILE = os.environ.get("CHANGELOG_FILE")
|
CHANGELOG_FILE = os.environ.get("CHANGELOG_FILE")
|
||||||
WH_ICON_PATH = os.environ.get("WH_ICON_PATH")
|
WH_ICON_PATH = os.environ.get("WH_ICON_PATH")
|
||||||
LICENSE_FILE = os.environ.get("LICENSE_FILE")
|
LICENSE_FILE = os.environ.get("LICENSE_FILE")
|
||||||
|
LICENSE_AGREEMENT_FILE = os.environ.get("AGREEMENT")
|
||||||
|
|
||||||
class WineHelperGUI(QMainWindow):
|
class WineHelperGUI(QMainWindow):
|
||||||
def __init__(self):
|
def __init__(self):
|
||||||
@ -604,7 +606,6 @@ class WineHelperGUI(QMainWindow):
|
|||||||
# Подвкладка "Лицензия"
|
# Подвкладка "Лицензия"
|
||||||
license_tab = QWidget()
|
license_tab = QWidget()
|
||||||
license_layout = QVBoxLayout(license_tab)
|
license_layout = QVBoxLayout(license_tab)
|
||||||
import html
|
|
||||||
license_text = QTextBrowser()
|
license_text = QTextBrowser()
|
||||||
license_text.setOpenExternalLinks(True)
|
license_text.setOpenExternalLinks(True)
|
||||||
|
|
||||||
@ -1255,38 +1256,29 @@ class WineHelperGUI(QMainWindow):
|
|||||||
license_page = QWidget()
|
license_page = QWidget()
|
||||||
license_layout = QVBoxLayout(license_page)
|
license_layout = QVBoxLayout(license_page)
|
||||||
|
|
||||||
license_text = QTextEdit()
|
license_text = QTextBrowser()
|
||||||
license_text.setReadOnly(True)
|
|
||||||
|
|
||||||
# Получаем текст лицензии из скрипта winehelper
|
# Получаем текст лицензионного соглашения из файла
|
||||||
script_path = os.path.join(Var.DATA_PATH, "winehelper")
|
|
||||||
license_content = ""
|
|
||||||
try:
|
try:
|
||||||
with open(script_path, 'r', encoding='utf-8') as f:
|
license_file_path = Var.LICENSE_AGREEMENT_FILE
|
||||||
capturing = False
|
if not license_file_path or not os.path.exists(license_file_path):
|
||||||
for line in f:
|
raise FileNotFoundError
|
||||||
if 'print_warning "Лицензионные соглашения использования сторонних компонентов:' in line:
|
|
||||||
capturing = True
|
|
||||||
continue
|
|
||||||
|
|
||||||
if capturing:
|
with open(license_file_path, 'r', encoding='utf-8') as f:
|
||||||
if 'Подтверждая продолжение установки' in line:
|
license_content = f.read()
|
||||||
break
|
|
||||||
# Очищаем строку от лишних символов
|
escaped_license_content = html.escape(license_content)
|
||||||
clean_line = line.strip()
|
|
||||||
clean_line = clean_line.replace('print_warning "', '').replace('\\n', '\n')
|
|
||||||
clean_line = clean_line.rstrip('"')
|
|
||||||
license_content += clean_line + '\n'
|
|
||||||
|
|
||||||
license_text.setHtml(f"""
|
license_text.setHtml(f"""
|
||||||
<h3>Лицензионные соглашения использования сторонних компонентов:</h3>
|
<pre style="font-family: sans-serif; font-size: 10pt; white-space: pre-wrap; word-wrap: break-word;">{escaped_license_content}</pre>
|
||||||
<p>{license_content}</p>
|
|
||||||
""")
|
""")
|
||||||
|
except (FileNotFoundError, TypeError):
|
||||||
|
license_text.setHtml(f'<h3>Лицензионные соглашения</h3><p>Не удалось загрузить файл лицензионного соглашения по пути:<br>{Var.LICENSE_AGREEMENT_FILE}</p>')
|
||||||
except Exception as e:
|
except Exception as e:
|
||||||
print(f"Ошибка чтения файла для извлечения лицензии: {str(e)}")
|
print(f"Ошибка чтения файла лицензии: {str(e)}")
|
||||||
license_text.setHtml("""
|
license_text.setHtml(f"""
|
||||||
<h3>Лицензионные соглашения</h3>
|
<h3>Лицензионные соглашения</h3>
|
||||||
<p>Не удалось загрузить текст лицензионного соглашения.</p>
|
<p>Произошла ошибка при чтении файла лицензии:<br>{str(e)}</p>
|
||||||
""")
|
""")
|
||||||
|
|
||||||
license_layout.addWidget(license_text)
|
license_layout.addWidget(license_text)
|
||||||
@ -1385,7 +1377,7 @@ class WineHelperGUI(QMainWindow):
|
|||||||
self.install_process.start(winehelper_path, args)
|
self.install_process.start(winehelper_path, args)
|
||||||
if not self.install_process.waitForStarted(3000):
|
if not self.install_process.waitForStarted(3000):
|
||||||
raise RuntimeError("Не удалось запустить процесс установки")
|
raise RuntimeError("Не удалось запустить процесс установки")
|
||||||
self.append_log("Процесс установки успешно запущен...")
|
self.append_log("Процесс установки запущен...")
|
||||||
except Exception as e:
|
except Exception as e:
|
||||||
self.append_log(f"\n=== ОШИБКА: {str(e)} ===", is_error=True)
|
self.append_log(f"\n=== ОШИБКА: {str(e)} ===", is_error=True)
|
||||||
QMessageBox.critical(self.install_dialog, "Ошибка", f"Не удалось запустить установку:\n{str(e)}")
|
QMessageBox.critical(self.install_dialog, "Ошибка", f"Не удалось запустить установку:\n{str(e)}")
|
||||||
|
Reference in New Issue
Block a user