From 12c0de503d8571fbe7e24e09c2e3392239d4d72c Mon Sep 17 00:00:00 2001 From: evgeny Date: Sun, 11 Oct 2026 00:26:53 +0200 Subject: [PATCH] Document installer builds and register packaging checks --- tools/chatgui/CMakeLists.txt | 8 ++++ tools/chatgui/installer/README.txt | 70 ++++++++++++++++++++++++++++++ 2 files changed, 78 insertions(+) create mode 100644 tools/chatgui/installer/README.txt diff --git a/tools/chatgui/CMakeLists.txt b/tools/chatgui/CMakeLists.txt index b6b61ab5..926e581b 100644 --- a/tools/chatgui/CMakeLists.txt +++ b/tools/chatgui/CMakeLists.txt @@ -2,6 +2,14 @@ cmake_minimum_required(VERSION 3.16) project(vibechat VERSION 0.1.0 LANGUAGES C CXX) file(WRITE "${CMAKE_CURRENT_BINARY_DIR}/chatgui_version.txt" "${PROJECT_VERSION}\n") +# Проверка Windows-упаковки с подставленными инструментами выполняется на Unix. +if(UNIX) + find_package(Python3 QUIET COMPONENTS Interpreter) + if(Python3_Interpreter_FOUND) + add_test(NAME test_windows_installer COMMAND "${Python3_EXECUTABLE}" "${CMAKE_CURRENT_SOURCE_DIR}/tests/test_windows_installer.py") + endif() +endif() + set(CMAKE_CXX_STANDARD 20) set(CMAKE_CXX_STANDARD_REQUIRED ON) set(CMAKE_AUTOMOC ON) diff --git a/tools/chatgui/installer/README.txt b/tools/chatgui/installer/README.txt new file mode 100644 index 00000000..10912acc --- /dev/null +++ b/tools/chatgui/installer/README.txt @@ -0,0 +1,70 @@ +Windows-инсталлятор VibeChat +=========================== + +Требования к компьютеру сборки +----------------------------- +Обычные зависимости ChatGUI в MSYS2 UCRT64 (Qt, CMake/Ninja, OpenSSL и т.д.) +и Inno Setup 6.3 или новее: https://jrsoftware.org/isdl.php +Inno Setup нужен только для сборки, пользователю приложения он не требуется. + +ISCC.exe ищется в PATH и стандартных каталогах Program Files. +Для нестандартной установки задайте в CMD перед сборкой: + set "ISCC=D:\Tools\Inno Setup 6\ISCC.exe" + +Создание инсталлятора +-------------------- +Из корня репозитория: + tools\chatgui\build.bat только ChatGUI и его инсталлятор + build.bat ядро, тесты, ChatGUI и его инсталлятор + build_full.bat полная сборка и инсталлятор + +BAT-скрипты автоматически включают --installer. Отсутствие Inno Setup или +ошибка упаковки завершают сборку с ненулевым кодом, даже при выводе через tee. +Корневые BAT собирают ChatGUI и при отсутствии предыдущего CMakeCache.txt. + +Из UCRT64 shell можно запускать вручную: + cd tools/chatgui + bash build.sh --installer -j4 + +Или повторно упаковать уже готовый Windows-комплект: + cd tools/chatgui + bash package_win.sh + +Результат: + tools\chatgui\build\installer\VibeChat-<версия>-win64-setup.exe + +Версия берётся из project(vibechat VERSION ...) в CMakeLists.txt. +--installer задаёт Release; без этого флага поведение shell-сборки прежнее. +Логи: tools\chatgui\build_win.log, а для корневых BAT также build_win.log +или build_full.log в корне. Итоговый путь печатается после успеха компилятора. + +Состав и поведение +------------------ +Комплект включает EXE, фактически импортируемые DLL, Qt-плагины Windows/JPEG/WebP +с их зависимостями и лицензии. Проверяются x64 PE-формат и полнота зависимостей. +Конфиги, ключи, базы, медиа, логи, lock-файлы, тесты и старые DLL из build +не включаются. Ошибка компилятора не считается успехом из-за старого setup.exe. + +Установка: Windows 10/11 с поддержкой x64, Program Files\VibeChat, +права администратора для установки и настройки firewall. Создаются ярлык +в меню Пуск и необязательный ярлык на рабочем столе; после установки приложение +запускается от исходного пользователя. Входящие подключения разрешаются +правилом "VibeChat (installer)" только для установленного EXE. + +При обновлении установщик предлагает закрыть приложение, использующее EXE/DLL. +Обновление и удаление сохраняют конфиг, ключи, историю и медиа пользователя. +Деинсталлятор удаляет своё правило firewall и установленные файлы программы. +Журналы установки/удаления и вывод netsh сохраняются средствами Inno Setup; +для явного пути журнала используйте /LOG="C:\path\setup.log". + +Проверки +-------- +На Linux/Unix: python3 tools/chatgui/tests/test_windows_installer.py +Тест запускает настоящие скрипты с подставленными objdump/pacman/ISCC: +проверяет комплект, ошибки, повторную упаковку и GUI-флаг --installer. +Корневой флаг проверяет python3 tests/test_build_script.py build.sh. +Это не заменяет проверку настоящего Inno-компилятора и установщика на Windows. + +На чистой Windows без MSYS2/Qt: установка, запуск обычным пользователем, +сообщения/звуки/медиа, обновление с сохранением идентичности, удаление, +повторная установка. Проверить пути с пробелами и имя пользователя с кириллицей.