Hi, I have written a bbclass that does license conflict checking before building images for distribution. I am wondering if that is something you as a project would be interested in integrating, e.g. into poky.
I am also looking for feedback to my approach and ideas on how to handle corner cases, such as the OpenSSL exception. To give you a short and rough overview and to avoid wasting your time with a code review before we discussed the general approach, here's the commit message for my local change implementing this: > Implement automatic license conflict checking as QA check. This check > adds a hook to the do_rootfs task, gathers a list of packages to be > installed into the root file system, their licenses and dependency > relations. It then walks this list and removes all licenses or part of > license expressions that are not satisfiable using licenses from a > configurable whitelist. For example, > (GPL-3.0 & LGPL-3.0+) | GPL-2.0 > with a whitelist of "GPL-2.0" will be transformed to > GPL-2.0 > before running license conflict checking. This ensures none of the > licenses you don't want to distribute in your image is required to > fulfill all license constraints. > > Afterwards, each package's license is checked against those of its > dependencies one by one. To detect conflicts, the two license > expressions are converted into conjunctive normal form, concatenated > with all relevant license conflicts read from a configuration file and > handed over to a SAT solver (currently minisat via the satispy python > library). If the solver indicates the expression is satisfiable, there > is no license conflict. If the expression cannot be solved, the > licenses conflict. What are your thoughts on the additional minisat dependency? I assume it would be possible to make it a requirement only if somebody is actually using the bbclass? Most distributions I checked do not currently ship satispy. Would bundling it with poky (or wherever the bbclass + tests would go) be a viable option? -- Clemens Lang • Development Specialist BMW Car IT GmbH • Lise-Meitner-Str. 14 • 89081 Ulm • http://bmw-carit.com ------------------------------------------------------------------------- BMW Car IT GmbH Geschäftsführer: Michael Würtenberger und Reinhard Stolle Sitz und Registergericht: München HRB 134810 ------------------------------------------------------------------------- -- _______________________________________________ yocto mailing list yocto@yoctoproject.org https://lists.yoctoproject.org/listinfo/yocto