Licenças para grupos de pacotes e imagens no Yocto

Estou criando uma imagem contendo receitas padrão e minhas próprias. Eu queria listar as licenças que uso em todos os pacotes incluídos e depois verificar se posso usá-las para aplicativos comerciais, por exemplo.

Eu tive a má surpresa dos grupos de pacotes já ter uma bandeira de LICENÇA. Eu notei isso fazendo:

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

RetornaLICENÇA = MIT uma vez que está definido no arquivo bb.

Mas não tenho informações sobre todos os pacotes incluídos. Esse MIT foi colocado manualmente no core-image-minimal.bb, mas eu estaria interessado em todas as dependências. Eu tenho o mesmo problema para o meu arquivo .bb.

Abordagem 1

Uma solução seria colocar todas as licenças como INCOMPATIBLE_LICENSE e depois

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

depois verifique qual aparece, adicione-o em LICENSE_FLAGS_WHITELIST e remova-o de INCOMPATIBLE_LICENSE e itere. O problema é que, toda vez que é feito, ele analisa novamente todo o espaço de trabalho e leva séculos.

Existe um script em algum lugar para verificar isso facilmente? Um python como Yocto sempre faz.

Abordagem 2 Editei meta / classes / license.bbclass e adicionei

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

no loop for da função check_license_format. Agora ele imprime licença para cada pacote, mas eu gostaria de resumir

Boa maneira de fazer isso

Portanto, não pude compilar toda a minha receita, pois o recurso "gerenciamento de pacotes" atualmente não funciona com pacotes deb (leiaaqui) Adapte sua receita de imagem e use o método de @Roman Khimov lá em baixo. É a maneira limpa de fazer isso.

questionAnswers(1)

yourAnswerToTheQuestion