Files
f7_talk/BUILD-f7.md
T

3.5 KiB
Raw Permalink Blame History

Сборка форка 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/nshttps://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 — только маркер версии, обкатка конвейера.