It’s just an example, but you’re right, I’ll change to a better one. Thanks!
-- Christopher Larson [email protected], [email protected], [email protected] Principal Software Engineer, Embedded Linux Solutions, Siemens Digital Industries Software On Apr 13, 2022, 10:44 AM -0700, Richard Purdie <[email protected]>, wrote: > On Wed, 2022-04-13 at 16:00 +0000, Christopher Larson wrote: > > This function returns True if any of the specified packages are skipped due > > to > > incompatible license. > > > > License exceptions are obeyed. The user may specify the package's license > > for > > cross-recipe checks. > > > > This allows for additions to packagegroups only for non-incompatible > > builds. For > > example: > > > > RDEPENDS_${PN} += "${@'dbench' if not any_incompatible(d, 'dbench', > > 'GPL-3.0-only') else ''}" > > > > Signed-off-by: Christopher Larson <[email protected]> > > --- > > meta/classes/license.bbclass | 38 +++++++++++++++++++ > > .../packagegroups/packagegroup-base.bb | 2 + > > 2 files changed, 40 insertions(+) > > > > v2 changes: fixed string packages logic, corrected reference to > > apply_pkg_license_exception, and avoided use of ${@} in the function > > docstring > > to avoid bitbake expanding it and recursing. > > > > diff --git a/meta/classes/license.bbclass b/meta/classes/license.bbclass > > index 0c637e966e..41993b7227 100644 > > --- a/meta/classes/license.bbclass > > +++ b/meta/classes/license.bbclass > > @@ -320,6 +320,44 @@ def incompatible_license(d, dont_want_licenses, > > package=None): > > > > return incompatible_pkg_license(d, dont_want_licenses, license) > > > > +def any_incompatible(d, packages, licensestring=None): > > + """Return True if any of the packages are skipped due to incompatible > > license. > > + > > + License exceptions are obeyed. The user may specify the package's license > > + for cross-recipe checks. > > + > > + This allows for additions to packagegroups only for non-incompatible > > builds. > > + > > + For example: 'dbench' if not any_incompatible(d, 'dbench', > > 'GPL-3.0-only') else '' > > + """ > > + import oe.license > > + > > + if isinstance(packages, str): > > + packages = packages.split() > > + > > + bad_licenses = (d.getVar("INCOMPATIBLE_LICENSE") or "").split() > > + if not bad_licenses: > > + return False > > + bad_licenses = expand_wildcard_licenses(d, bad_licenses) > > + > > + if licensestring is None: > > + licensestring = d.getVar("LICENSE:%s" % package) if package else None > > + if not licensestring: > > + licensestring = d.getVar("LICENSE") > > + > > + exceptions = (d.getVar("INCOMPATIBLE_LICENSE_EXCEPTIONS") or "").split() > > + for pkg in packages: > > + remaining_bad_licenses = oe.license.apply_pkg_license_exception( > > + pkg, bad_licenses, exceptions > > + ) > > + > > + incompatible_lic = incompatible_pkg_license( > > + d, remaining_bad_licenses, licensestring > > + ) > > + if incompatible_lic: > > + return True > > + return False > > + > > def check_license_flags(d): > > """ > > This function checks if a recipe has any LICENSE_FLAGS that > > diff --git a/meta/recipes-core/packagegroups/packagegroup-base.bb > > b/meta/recipes-core/packagegroups/packagegroup-base.bb > > index 7489ef61b0..1c97d03c21 100644 > > --- a/meta/recipes-core/packagegroups/packagegroup-base.bb > > +++ b/meta/recipes-core/packagegroups/packagegroup-base.bb > > @@ -14,6 +14,8 @@ PACKAGES = ' \ > > packagegroup-distro-base \ > > packagegroup-machine-base \ > > \ > > + ${@"dbench" if not any_incompatible(d, "dbench", "GPL-3.0-only") else ""} > > \ > > + \ > > ${@bb.utils.contains("MACHINE_FEATURES", "acpi", "packagegroup-base-acpi", > > "",d)} \ > > ${@bb.utils.contains("MACHINE_FEATURES", "alsa", "packagegroup-base-alsa", > > "", d)} \ > > ${@bb.utils.contains("MACHINE_FEATURES", "apm", "packagegroup-base-apm", > > "", d)} \ > > I suspect you didn't mean to include this piece since dbench isn't in core? > > Cheers, > > Richard >
-=-=-=-=-=-=-=-=-=-=-=- Links: You receive all messages sent to this group. View/Reply Online (#164356): https://lists.openembedded.org/g/openembedded-core/message/164356 Mute This Topic: https://lists.openembedded.org/mt/90443891/21656 Group Owner: [email protected] Unsubscribe: https://lists.openembedded.org/g/openembedded-core/unsub [[email protected]] -=-=-=-=-=-=-=-=-=-=-=-
