plate-config-app/BUILD_EXE.md
Danil Iarosh 3a4491f0c4 feat: add ZIP package updates
- Сборки Windows и Linux теперь дополнительно формируют ZIP-архивы с бинарником и ресурсами.

- OTA-проверка выбирает ZIP-артефакт текущей платформы вместо отдельного исполняемого файла.

- Добавлена безопасная проверка архивов, защита от traversal, ссылок, повреждений и превышения лимитов.

- Обновление транзакционно заменяет все верхнеуровневые файлы и каталоги пакета с резервным копированием и откатом.

- Пользовательские файлы, отсутствующие в ZIP, включая settings.json, сохраняются.

- Версия приложения повышена до 2.0.1, документация и кроссплатформенные тесты обновлены.
2026-09-16 14:07:01 +03:00

4.1 KiB
Raw Permalink Blame History

Сборка EXE

Linux (Debian 13 x86_64)

Для Linux используется нативная сборка: Windows-версия PyInstaller не может создать рабочий Linux-бинарник. В Debian 13 установите Python и средства сборки, затем запустите скрипт из корня проекта:

sudo apt-get update
sudo apt-get install -y python3 python3-venv python3-pip libglib2.0-0t64 libgl1 libegl1 libfontconfig1 libxkbcommon0 libfreetype6 libxcb-cursor0 libxcb-icccm4 libxcb-image0 libxcb-keysyms1 libxcb-render-util0 libxcb-shape0 libxcb-xkb1 libxcb-util1 libxkbcommon-x11-0
chmod +x build_linux.sh
./build_linux.sh

Результат: бинарник dist-linux/plate_config_app-linux-x86_64, папки конфигураций рядом с ним и архив dist-linux/plate_config_app-linux-x86_64.zip. Для автообновления публикуется ZIP-архив. Для работы с USB-COM пользователь Debian должен состоять в группе dialout.

Предварительные требования

  • Python ≥ 3.11 (виртуальное окружение .venv)
  • Зависимости из requirements-build.txt

Быстрый старт

# Установка зависимостей + чистая сборка (одна команда)
.\build_exe.ps1 -InstallBuildDeps

Готовые файлы: dist\plate_config_app-windows-x86_64.exe и dist\plate_config_app-windows-x86_64.zip. Для автообновления публикуется ZIP-архив.

Команды по отдельности

1. Установить зависимости для сборки

.\.venv\Scripts\Activate.ps1
python -m pip install -r requirements-build.txt

2. Собрать EXE

.\build_exe.ps1

Скрипт автоматически:

  • очищает build/, dist/, __pycache__/
  • запускает PyInstaller по plate_config_app.spec
  • переименовывает бинарник в plate_config_app-windows-x86_64.exe
  • копирует папки light_modes/, input_mappings/, commands/ в dist/
  • создаёт plate_config_app-windows-x86_64.zip с бинарником и ресурсами
  • выводит пути и размеры готовых EXE и ZIP

3. Только очистка (без сборки)

.\build_exe.ps1 -CleanOnly

или отдельным скриптом:

.\clean.ps1

Через .bat (двойной клик)

Файл Действие
build_exe.bat Очистка + сборка EXE
clean.bat Только очистка артефактов сборки

Что включается в EXE

Настроено в plate_config_app.spec:

Ресурс Описание
qtawesome/ Шрифты и charmap иконок

Hidden imports: qtawesome, Crypto.Cipher._raw_aes, Crypto.Util._raw_api

Ресурсы рядом с EXE

Скрипт build_exe.ps1 после сборки копирует папки в dist/:

Папка Описание
light_modes/ Файлы режимов подсветки (.lm)
input_mappings/ Маппинги входов (.mapping)
commands/ Наборы команд (.csv)

Эти файлы можно редактировать без пересборки — достаточно изменить их рядом с EXE и перезапустить приложение. При установке OTA-обновления каталоги, которые входят в новый ZIP-пакет, полностью заменяются их новыми версиями.