Как читать авторский курс и нормативные материалы
Это учебные материалы, а не заключение о соответствии конкретного продукта. Организационные модели курса отделяйте от терминов стандарта: ППК в опубликованном проекте — машиночитаемый перечень, а живой реестр его версий является практикой сопровождения. Термин OSA в разных материалах имеет разный охват. Статус и обязательность нормативного документа проверяются отдельно; проект КАПО опубликован как проект первой редакции.
План занятия (90 минут)
Цели
- Различать четыре поведенческих класса лицензий (permissive / weak / strong / network copyleft) и понимать, какое обязательство срабатывает при распространении.
- Уметь читать и нормализовать SPDX-выражения, включая операторы
OR,AND,WITHи пары*-only/*-or-later. - Понимать, почему
NOASSERTIONи проприетарная лицензия — главный, а не побочный риск, и как через них проходит цепочка «evidence → нормализация → вердикт → заключение/риск». - Связать тему с SPDX ISO/IEC 5962 и OpenChain ISO/IEC 5230.
Материалы
- Конспект модуля и таблица классов лицензий из него.
- Тестовый SBOM в CycloneDX 1.6 с разнородными полями
licenses(минимум одинOR, одинWITH, один copyleft, одинNOASSERTION). - Доступ к публичной SPDX License List (spdx.org/licenses) для сверки идентификаторов.
- Шаблоны: Политика лицензионной чистоты, Шаблон юридического заключения по лицензии, Реестр исключений.
Тайминг
| Мин | Блок | Что происходит |
|---|---|---|
| 0–8 | Вводный кейс | Проприетарный продукт Организации с AGPL-зависимостью в транзитиве: почему это не чинится патчем и чем грозит при выводе в SaaS. |
| 8–28 | Лекция: SPDX и классы | SPDX License List vs Expression; операторы OR/AND/WITH; *-only vs *-or-later; таблица четырёх классов и их триггеров. |
| 28–43 | Лекция: совместимость и риски | Направленность совместимости (Apache-2.0 → GPL-3.0, но не наоборот); dual licensing; почему NOASSERTION блокирует вердикт. |
| 43–58 | Демо | Разбор тестового SBOM: показать evidence.licenses (сырьё) рядом с нормализованным expression; провести 3–4 строки через «evidence → нормализация → вердикт». |
| 58–83 | Практика в парах | Слушатели классифицируют выданный набор лицензий, заполняют таблицу обязательств и выносят вердикт по каждому компоненту (см. практическую работу). |
| 83–90 | Рефлексия | Что закрепить в политике: список allow/deny-лицензий, правило по NOASSERTION, роль выносящего вердикт. |
Ход занятия
Вводный кейс (0–8) Соисполнитель прислал SBOM библиотеки логирования. Прямые зависимости — все MIT/Apache-2.0, выглядит чисто. Но в транзитиве пятого уровня — компонент под AGPL-3.0. Продукт Организации сейчас распространяется как закрытый бинарник (AGPL «спит»), но через полгода планируется облачная версия. Вопрос аудитории: это нарушение сейчас? станет ли нарушением потом? кто должен это решать?
- Лекция (8–43). Сначала механика SPDX (идентификаторы и грамматика выражений), затем поведение классов и совместимость. Главный тезис: вердикт зависит от способа распространения, а не только от строки.
- Демо (43–58). На реальном фрагменте показать, как сервис аудита/вердиктов разделяет
evidence(исходная строка из заголовка файла) и нормализованное выражение, и как одно вытекает из другого. - Практика (58–83). Работа в парах с раздаткой; преподаватель ходит по группам, ловит типовую ошибку — трактовку
ORкак «обе лицензии действуют». - Рефлексия (83–90). Свести выводы в три строки будущей политики Организации.
Контрольная точка
Слушатель умеет: (1) нормализовать произвольную строку лицензии в SPDX-выражение или честно отправить её в очередь unknown; (2) назвать класс и ключевое обязательство; (3) объяснить, кто выносит вердикт и каким артефактом он фиксируется. Связь с контрольными вопросами.