Пиков / КАПО
Как читать авторский курс и нормативные материалы

Это учебные материалы, а не заключение о соответствии конкретного продукта. Организационные модели курса отделяйте от терминов стандарта: ППК в опубликованном проекте — машиночитаемый перечень, а живой реестр его версий является практикой сопровождения. Термин OSA в разных материалах имеет разный охват. Статус и обязательность нормативного документа проверяются отдельно; проект КАПО опубликован как проект первой редакции.

C C++ build scan make cmake qmake

О чём

Предмет проверки — механизм захвата состава C/C++ проектов на этапе сборки, когда пакетного менеджера (Conan) нет, а зависимости проявляются только в момент компиляции и линковки. ТЗ (п. 3.3) прямо требует анализ проектов C/C++ со средствами автоматизации сборки make, cmake, qmake, не использующих пакетный менеджер. Здесь рассматривается именно режим build scan агента (наблюдение за сборкой), а не разбор готовых артефактов — это смежная тема Ограничения готовых бинарников.

Что подтверждено

Почему build scan, а не manifest scan Для экосистем с пакетным менеджером состав читается из манифеста. В C/C++ без Conan манифеста нет, поэтому единственный надёжный путь — перехват фактической сборки. Это переносит требования на права агента: см. eBPF права агента и ограничения.

Что не подтверждено или ограничено

Риск для ТЗ qmake входит в обязательный список п. 3.3, но не подтверждён ни документацией, ни демо. Если в контуре Организации есть Qt-проекты на qmake, это потенциальный блокер соответствия — закрывается только демонстрацией на пилоте, не словами.

Что проверить на пилоте

Вопросы и приёмочные проверки - Поддерживается ли build scan для qmake out of the box, или требуется обёртка/ручная настройка? Просить демонстрацию на Qt-проекте. - Выполнить build scan на реальном C/C++ проекте Организации без Conan: отдельно на make, отдельно на cmake, отдельно на qmake — и сравнить полноту графа. - Что попадает в состав при build scan: только то, что реально слинковалось, или и заголовочные зависимости? Где границы? - Как build scan различает прямые и транзитивные C/C++ зависимости и строит ли граф трассировки? - Что делать с компонентами, которые сборка тянет, но агент не смог сопоставить с известным пакетом+версией (переход к Статическая линковка и форки)? - Зафиксировать минимальные требования к среде сборки, чтобы захват сработал (см. права агента).

Связь