Лицензии на пакетные группы и изображения на Yocto

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

У меня были плохие сюрпризы, у групп уже есть флаг ЛИЦЕНЗИИ. Я заметил, что делает:

bitbake -e -n -v core-image-minimal | grep "LICENSE"

ВозвращаетсяЛИЦЕНЗИЯ = MIT так как это определено в файле bb.

Но у меня нет информации обо всех включенных пакетах. Этот MIT был помещен вручную в core-image-minimal.bb, но меня будут интересовать все зависимости. У меня та же проблема для моего файла .bb.

Подход 1

Решением было бы поставить каждую лицензию как INCOMPATIBLE_LICENSE, а затем

bitbake -k -n -e -v <recipe> | grep "incompatible with license"

затем проверьте, какой из них выскакивает, добавьте их в LICENSE_FLAGS_WHITELIST и удалите их из INCOMPATIBLE_LICENSE и выполните итерацию. Проблема в том, что каждый раз, когда это делается, он снова анализирует все рабочее пространство, и это занимает много времени.

Есть ли где-нибудь сценарий, чтобы легко это проверить? Питон, такой как Йокто всегда делает.

Подход 2 Я отредактировал meta / classes / license.bbclass и добавил

bb.warn('%s license is %s' %(pn, licenses))

в цикле for функции check_license_format. Теперь он печатает лицензию для каждого пакета, но я хотел бы подвести итог

Хороший способ сделать это

Итак, я не смог скомпилировать весь свой рецепт, так как функция «управление пакетами» в настоящее время не работает с пакетами deb (читайтеВот). Пожалуйста, адаптируйте свой рецепт изображения и используйте там метод @Roman Khimov. Это чистый способ сделать это.

Ответы на вопрос(1)

Ваш ответ на вопрос