On Thursday 19 November 2015 14:25:16 [email protected] wrote: > From: Mariano Lopez <[email protected]> > > This function gets the dependencies from the classes that > create a boot image, this is required because sometimes > the bootloader dependecy is in these classes. The current > classes covered are bootimg and bootdirectdisk because > these are the only clases that add dependencies. > > [YOCTO #6772] > > Signed-off-by: Mariano Lopez <[email protected]> > --- > meta/classes/license.bbclass | 36 ++++++++++++++++++++++++++++++++++++ > 1 file changed, 36 insertions(+) > > diff --git a/meta/classes/license.bbclass b/meta/classes/license.bbclass > index 62222f2..afcc708 100644 > --- a/meta/classes/license.bbclass > +++ b/meta/classes/license.bbclass > @@ -141,6 +141,42 @@ def write_license_files(d, license_manifest, pkg_dic): > os.link(pkg_license, pkg_rootfs_license) > > > +def get_boot_dependencies(d): > + """ > + Return the dependencies from boot tasks > + """ > + > + depends = "" > + boot_depends_string = "" > + taskdepdata = d.getVar("BB_TASKDEPDATA", True) > + # Only bootimg and bootdirectdisk include the depends flag > + boot_tasks = ["do_bootimg", "do_bootdirectdisk",] > + > + for task in boot_tasks: > + boot_depends_string = "%s %s" % (boot_depends_string, > + d.getVarFlag(task, "depends", True) or "") > + boot_depends = [dep.split(":")[0] for dep > + in boot_depends_string.split() > + if not dep.split(":")[0].endswith("-native")] > + for dep in boot_depends: > + info_file = os.path.join(d.getVar("LICENSE_DIRECTORY", True), > + dep, "recipeinfo") > + # If the recipe and dependency name is the same > + if os.path.exists(info_file): > + depends = "%s %s" % (depends, dep) > + # We need to search for the provider of the dependency > + else: > + for taskdep in taskdepdata.itervalues(): > + # The fifth field contains what the task provides > + if dep in taskdep[4]: > + info_file = os.path.join( > + d.getVar("LICENSE_DIRECTORY", True), > + taskdep[0], "recipeinfo") > + if os.path.exists(info_file): > + depends = "%s %s" % (depends, taskdep[0]) > + break > + return depends
Where a function returns a list of items it should return an actual list rather than a space-separated string; this gives the caller a little more flexibility on how it processes the returned list. (Obviously here the list is going to be written out immediately as a space-separated string, but that's as easy as ' '.join(listname) in the calling function.) Cheers, Paul -- Paul Eggleton Intel Open Source Technology Centre -- _______________________________________________ Openembedded-core mailing list [email protected] http://lists.openembedded.org/mailman/listinfo/openembedded-core
