Lizenzen für Paketgruppen und Bilder auf Yocto

Ich erstelle ein Bild mit Standardrezepten und meinen eigenen. Ich wollte die Lizenzen auflisten, die ich in allen enthaltenen Paketen verwende, und später prüfen, ob ich sie beispielsweise für kommerzielle Zwecke verwenden kann.

Ich hatte die böse Überraschung Packagegruppen haben bereits eine LIZENZ-Flagge. Mir ist aufgefallen, dass es dabei ist:

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

It gibt @ zurü LICENSE = MIT da es in der bb-Datei definiert ist.

Aber ich habe keine Informationen über alle enthaltenen Pakete. Dieses MIT wurde manuell in die Datei core-image-minimal.bb eingefügt, aber ich würde mich für alle Abhängigkeiten interessieren. Ich habe das gleiche Problem mit meiner .bb-Datei.

Ansatz 1

Eine Lösung wäre, jede Lizenz als INCOMPATIBLE_LICENSE und dann @ zu platziere

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

wenn Sie überprüfen, welche herausspringt, fügen Sie sie in LICENSE_FLAGS_WHITELIST hinzu und entfernen Sie sie aus INCOMPATIBLE_LICENSE und wiederholen Sie den Vorgang. Das Problem ist, dass jedes Mal, wenn es erledigt ist, der gesamte Arbeitsbereich erneut analysiert wird und es eine Ewigkeit dauer

Gibt es irgendwo ein Skript, mit dem man das leicht überprüfen kann? Ein Python wie Yocto immer.

Ansatz 2 Ich habe meta / classes / license.bbclass bearbeitet und @ hinzugefü

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

in der for-Schleife der check_license_format-Funktion. Jetzt druckt es die Lizenz für jedes Paket, aber ich hätte gerne eine Art Zusammenfassung

Guter Weg, es zu tun

So konnte ich mein gesamtes Rezept nicht kompilieren, da die "Paketverwaltung" derzeit nicht mit Deb-Paketen funktioniert (readHie). Bitte passen Sie Ihr Bildrezept an und wenden Sie dort unten die Methode von @Roman Khimov an. Es ist die saubere Art und Weise, es zu tun.

Antworten auf die Frage(2)

Ihre Antwort auf die Frage