Как извлечь лицензионную информацию из рецепта битбейка
Я буду держать это коротким. Мне передали хранилище yocto и попросили проверить его на наличие лицензий, используемых при сборке. Моя конечная цель:
- Перечислите все лицензии, используемые дистрибутивом (т.е. лицензии, используемые всеми инструментами и утилитами, созданными с дистрибутивом)
- Получить копию файла лицензии
- Получить URL-адрес в Интернете, где этот текст лицензии можно найти. (если кто-то хочет сравнить это с тем, что я им предоставил)
Будучи ленивым "инженером-программистом", я хочу избежать этой задачи и просто проанализировать все файлы.bb, чтобы извлечь всю эту информацию. Я видел несколько рецептов, которые включают заголовки, которые в свою очередь содержат информацию о лицензии. Было бы хорошо иметь возможность следовать по следу.
Этот проект на GitHub выглядит многообещающе. Но может не получить мне именно то, что мне нужно.
У меня также есть весь исходный код и текст файла лицензии, распространяемый вместе с исходным кодом. Я должен быть в состоянии написать простой сценарий для достижения этой цели, но текст в некоторых лицензиях не содержит сам тип лицензии.
Любые указатели будут с благодарностью.
2 ответа
Прежде всего, вы, вероятно, хотите, чтобы в вашем образе использовались лицензии, а не дистрибутив, поскольку вы можете создавать любые рецепты в любом дистрибутиве, поэтому важно только то, что вы отправляете, а именно ваше изображение. Способ поиска лицензий, используемых программным обеспечением в образе, уже описан здесь, но ваш вопрос немного отличается тем, что вам также нужны полные тексты лицензий. Это также легко, все это есть в отдельных каталогах build/tmp/deploy/licenses
,
Что касается вашего третьего подвопроса, это не так просто, потому что даже что-то стандартное, такое как GPLv2, имеет небольшие различия от проекта к проекту, у некоторых есть исключения, у некоторых написано "(c) $YEARS" по-другому, так что система сборки Openembedded дает вам на самом деле более надежный, поскольку он извлечен из источника. Что возможно, так это предоставить сам исходный код (через archiver
класс), наряду с информацией о лицензии, любой действительно любопытный может перепроверить источники и лицензии таким образом.
Вы должны быть в состоянии обратиться к 1) и 2) через https://www.yoctoproject.org/docs/1.8/dev-manual/dev-manual.html.