Documentation
¶
Overview ¶
Команда notices собирает THIRD_PARTY_NOTICES.txt — лицензии всего, что слинковано в tt.
go run ./scripts/notices -dest build/out [-goos windows] [-goarch amd64]
Список берётся из того, что реально попадает в бинарь для заданной платформы, с учётом replace в go.mod:
go list -deps -json ./cmd/tt (GOOS, GOARCH, CGO_ENABLED=0)
`go list -m all` для этого не годится: в нём и тестовые зависимости, и модули, из которых в бинарь ничего не попало. Сам Go (рантайм и стандартная библиотека) в этот список не входит — его LICENSE и PATENTS берутся из GOROOT и идут первыми.
У каждого модуля из корня его каталога берутся файлы LICENSE*, COPYING*, PATENTS* и NOTICE* и кладутся целиком. Вид лицензии определяется по тексту основного файла. Команда останавливается, если у модуля нет файла лицензии (и модуль не описан в noLicenseFile) или вид лицензии не распознан: новая зависимость должна пройти через человека, а не тихо уехать в релиз.
wintun.dll сюда не входит: её лицензия лежит в архиве отдельным файлом wintun-LICENSE.txt (scripts/fetch-wintun.ps1), в уведомлениях — ссылка на него.
Файл пишется в UTF-8 без BOM; для Windows — с переводами строк CRLF. В репозиторий не коммитится, генерируется на каждую сборку.