Как извлечь лицензионную информацию из рецепта битбейка

Я буду держать это коротким. Мне передали хранилище yocto и попросили проверить его на наличие лицензий, используемых при сборке. Моя конечная цель:

  1. Перечислите все лицензии, используемые дистрибутивом (т.е. лицензии, используемые всеми инструментами и утилитами, созданными с дистрибутивом)
  2. Получить копию файла лицензии
  3. Получить 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.

Другие вопросы по тегам