Session log and plan: builds for all OS uploaded to the router (build 506)

This commit is contained in:
4aiman 2026-10-19 23:16:33 +03:00
commit 10ff635192
2 changed files with 48 additions and 1 deletions

View file

@ -0,0 +1,26 @@
# БалДав: выкатка сборок под все ОС на роутер (по образцу nlve/build.sh) - выполнено
## Контекст
`./build.sh android -u` выкладывал только APK. Нужно: Android + ПК (Linux, Windows, macOS Intel и
Apple Silicon) в любой комбинации целей и флагов, под одним новым номером за запуск, с выкладкой
собранного на роутер `keenetic:/opt/share/www/baldav/`.
## Решения
1. Глобальная память (`~/.claude/CLAUDE.md`, раздел «macOS Cross Toolchain»): osxcross в
`/mnt/02F6E7F6F6E7E7BD/osxcross/`, SDK в `/home/chaiman/fpcupdeluxe/cross/lib/all-darwin/`.
2. osxcross достроен: SDK 12.3 упакован в `tarballs/`, сборка
`CC="clang --gcc-install-dir=/usr/lib/gcc/x86_64-linux-gnu/13" CXX="clang++ --gcc-install-dir=..." UNATTENDED=1 ./build.sh`
(у clang выбирается GCC 14 без libstdc++-14-dev). `rustup target add x86_64-apple-darwin aarch64-apple-darwin`.
3. `build.sh`:
- `update_version` раз за запуск; цели `android`, `linux|desktop`, `windows`, `macos`, `pc`, `all`,
`upload` (= `-u all`) в любой комбинации; флаги `-d` (debug всё), `-da` (debug только APK), `-i`, `-u`.
- Windows: `--target x86_64-pc-windows-gnu --config '{"bundle":{"targets":["nsis"]}}'`
(`--bundles` на Linux принимает только deb/rpm/appimage); нужен `icons/icon.ico`.
- macOS: `--no-bundle` + `.app` собирается скриптом (бандлер Tauri на Linux пропускает `app`), zip.
- Выкладка: файлы под фиксированными именами + `<файл>.build`; `BUILD_NUMBER` только вместе с APK
(OTA телефона); APK ещё и на VPS; упавшие цели не блокируют остальные.
4. Документация: README, PROJECT_MAP, лог сессии.
## Проверка
`./build.sh -da upload` -> сборка 506, 7 файлов на роутере, HTTP 200, номера сходятся.
Запуск на Windows/macOS не проверялся.

View file

@ -18,9 +18,30 @@
- AppImage, которого не было после сборки 0.1.499, при повторной упаковке собрался; причина
прошлого отсутствия не выяснена.
- Сборка osxcross с clang заработала с `--gcc-install-dir=/usr/lib/gcc/x86_64-linux-gnu/13`
(с gcc падает cctools-port: «must compile with clang»).
- Tauri CLI на Linux не принимает `--bundles nsis/app` -> Windows через `--config '{"bundle":{"targets":["nsis"]}}'`;
macOS-бандл бандлер на Linux пропускает -> `--no-bundle` + `.app` собирается скриптом (Info.plist,
`Resources/data/products_seed.db`, `icon.icns` из `icon.png` записью ic07, NSBluetoothAlwaysUsageDescription).
- Для Windows нужен `src-tauri/icons/icon.ico` - сделан ImageMagick из `icon.png`.
- По запросу пользователя: любая комбинация целей и флагов за один запуск, номер растёт раз;
`-da` - debug только APK (на телефоне и на роутере debug-подписанный APK);
`BUILD_NUMBER` на роутере только вместе с APK (OTA телефона читает его, `MainActivity.kt:801-806`),
у каждого файла `<файл>.build`; что собралось - выкладывается, упавшее в итоге.
## Результат
См. раздел «Проверка» ниже (дополняется по ходу).
`./build.sh -da upload`: сборка 506, выложено на роутер и APK на VPS:
baldav.apk 181.5 МБ, baldav-linux-amd64.deb 9.9, baldav-linux-x86_64.rpm 9.9,
baldav-linux-x86_64.AppImage 82.2, baldav-windows-x64-setup.exe 9.7, baldav-macos-x64.zip 9.3,
baldav-macos-arm64.zip 9.1.
## Проверка
- Роутер: все 7 файлов отдаются по HTTP (200), BUILD_NUMBER = 506, все `.build` = 506.
- `file`: PE (NSIS) с baldav.exe + WebView2Loader.dll + data/products_seed.db внутри;
Mach-O x86_64 (min 10.13) и arm64 (min 11.0, есть LC_CODE_SIGNATURE ad-hoc).
- Запуск на Windows и macOS не проверялся: машин с этими ОС здесь нет.
## Следующие шаги
- Проверить установщик на Windows и .app на macOS (Intel и Apple M). Сборки не подписаны:
на macOS первый запуск через ПКМ -> «Открыть».
- `build.sh` в `.gitignore` - в репозиторий не попадает.