Лицензии на пакетные группы и изображения на 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. Это чистый способ сделать это.