38 lines
3.5 KiB
Markdown
38 lines
3.5 KiB
Markdown
# Сборка форка f7_talk (Nextcloud Talk / spreed)
|
||
|
||
Форк ветки nextcloud/spreed. Базовый апстрим — **v22.0.12** (тег `v22.0.12-upstream`),
|
||
совместим с NC 32.0.5 (glb, forbion). Обновления с официальной ветки НЕ берём (решение владельца
|
||
2026-07-06) — источник версии Talk теперь этот репозиторий.
|
||
|
||
## Сборочная среда (проверено на nd3, 2026-07-06)
|
||
- Node **22.17.0** + npm **10.9.2** (package.json engines: node ^22, npm ^10.5). На nd3 ставится
|
||
в userspace: `/home/foradmin/f7-build/node-v22.17.0-linux-x64` (не системный).
|
||
- Зависимости фронтенда: `npm ci` по `package-lock.json` (воспроизводимо).
|
||
- Сборка: `NODE_OPTIONS=--max-old-space-size=8192 npm run build` (rspack, production) → каталог `js/`.
|
||
На 16 vCPU / 20 ГБ занимает ~20 с; 4 warning'а (olm.wasm __dirname/__filename) — безвредны.
|
||
|
||
## Воспроизводимость (подтверждена)
|
||
Наша сборка из исходников v22.0.12 сверена с ОФИЦИАЛЬНЫМ релизным артефактом
|
||
`nextcloud-releases/spreed v22.0.12`:
|
||
- **55 из 65** `.js`-бандлов — байт-в-байт идентичны.
|
||
- Расхождения: 10 файлов = `.map` (source maps, не грузятся клиентом) + `talk-collections.js`,
|
||
где отличается ТОЛЬКО порядок двух minifier-переменных (`p`/`d`) — недетерминизм минификатора,
|
||
функционально эквивалентно. Вывод: собранный нами Talk = официальному 22.0.12.
|
||
|
||
## Что на боевом glb отличается от стока (правки downstream, НЕ наши в форке)
|
||
Установленный на glb spreed = сток 22.0.12 + преобразования f7-брендинга (владелец — dev-f7,
|
||
их generalize/theme-конвейер), а НЕ ручной патч ядра:
|
||
- `l10n/*` (110 файлов): строки Nextcloud→F7cloud, ссылки docs;
|
||
- `img/*` (27): фавиконки/иконки бренда; `css/talk-main.css`: одна @media-правка;
|
||
- `js/*` (7 бандлов): namespace `http://nextcloud.com/ns`→`https://f7cloud.ru/ns` + бренд-строки;
|
||
- **единственный функциональный патч PHP**: `lib/Notification/Listener.php` — форс языка `ru`
|
||
для push-уведомлений больших звонков (упрощение: fallbackLang='ru', userLanguages=[]).
|
||
|
||
Вывод для форка: брендинг остаётся ПОСТ-сборочным шагом dev-f7 (их зона), либо переносится в форк
|
||
отдельным коммитом по согласованию. Патч Listener.php логично инкорпорировать в форк как наш.
|
||
|
||
## Релизы форка
|
||
Версии `22.0.12-f7.N`. Пайплайн: изменение → `npm ci && npm run build` → смок-чеклист на стенде →
|
||
деплой glb → золотой шаблон (dev-f7). app id `spreed`, схема БД, OCS API v4/bot v1/HMAC — НЕ трогаем
|
||
(транскрипция R5, HPB, мобильные клиенты). Первый релиз f7.1 — только маркер версии, обкатка конвейера.
|