Как читать авторский курс и нормативные материалы
Это учебные материалы, а не заключение о соответствии конкретного продукта. Организационные модели курса отделяйте от терминов стандарта: ППК в опубликованном проекте — машиночитаемый перечень, а живой реестр его версий является практикой сопровождения. Термин OSA в разных материалах имеет разный охват. Статус и обязательность нормативного документа проверяются отдельно; проект КАПО опубликован как проект первой редакции.
Политика лицензионной чистоты
Назначение
Политика задаёт классы допустимых, условно-допустимых и запрещённых лицензий open source компонентов и правила их использования в продуктах Организации. Она отвечает на вопрос «можно ли поставить эту библиотеку с такой лицензией в продукт и на каких условиях».
Когда применяется
- При вводе нового компонента в controlled repository.
- При обнаружении изменения лицензии между версиями компонента.
- При формировании юридической части evidence перед релизом или поставкой заказчику.
Классы лицензий и решения
Классификация выполняется по нормализованному SPDX-выражению из license scan. Двойные/множественные лицензии (OR) трактуются по наиболее благоприятному совместимому варианту, AND — по самому строгому.
| Класс | Примеры (SPDX) | Решение по умолчанию |
|---|---|---|
| Разрешённые (permissive) | MIT, BSD-2/3-Clause, Apache-2.0, ISC, Zlib | Разрешено без доп. условий |
| Условные слабые copyleft | LGPL-2.1, LGPL-3.0, MPL-2.0, EPL-2.0 | Разрешено при динамической линковке и сохранении уведомлений |
| Сильные copyleft | GPL-2.0, GPL-3.0, AGPL-3.0 | По умолчанию запрещено в проприетарной поставке; только через исключение |
| Запрещённые / несовместимые | SSPL, BUSL, CC-BY-NC-*, "proprietary, no redistribution" | Блокировано, замена обязательна |
| Неизвестная / не распознана | NOASSERTION, пустое поле |
Не релизить до отработки Порядок работы с неизвестной лицензией |
Запрет на AGPL в сетевом сервисе AGPL-3.0 в компоненте, обслуживающем внешние запросы, переводит весь сервис под обязательство раскрытия исходного кода. Допускается только с юридическим заключением и одобренным исключением.
Обязательства, которые всегда соблюдаются
- Сохранять тексты лицензий и copyright-уведомления (NOTICE) в дистрибутиве.
- Для слабого copyleft — обеспечивать возможность замены библиотеки пользователем (динамическая линковка).
- Не смешивать GPL-код со статически линкуемой проприетарной частью без юридической проверки.
- Для C/C++ legacy фиксировать тип линковки (см. П23. Статическая линковка как слепая зона) — он меняет лицензионные последствия.
Контроль и evidence
- Полнота: показатель license coverage в SBOM, доля
NOASSERTIONв worklist. - Каждое отклонение от класса по умолчанию = запись в Реестр исключений + юр.заключение.
- Эталон проверки — матрица соответствия.
Связь с курсом
- Модуль: М07. Лицензионная чистота и юридический workflow
- Практики: П11. ScanCode для лицензий · П12. ORT и license policy · П26. Лицензионная классификация · П27. Юридическое заключение и реестр лицензий
- Нормативка: OpenChain ISO IEC 5230 · ГОСТ Р 56939-2024 · SPDX ISO IEC 5962
- Связанные шаблоны: Порядок исключения лицензии · Порядок работы с неизвестной лицензией · Шаблон юридического заключения по лицензии