diff options
| -rw-r--r-- | meta/classes/license.bbclass | 48 |
1 files changed, 48 insertions, 0 deletions
diff --git a/meta/classes/license.bbclass b/meta/classes/license.bbclass index c05e6e0ecc..ff97098e2f 100644 --- a/meta/classes/license.bbclass +++ b/meta/classes/license.bbclass | |||
| @@ -141,6 +141,54 @@ def write_license_files(d, license_manifest, pkg_dic): | |||
| 141 | os.link(pkg_license, pkg_rootfs_license) | 141 | os.link(pkg_license, pkg_rootfs_license) |
| 142 | 142 | ||
| 143 | 143 | ||
| 144 | def get_deployed_dependencies(d): | ||
| 145 | """ | ||
| 146 | Get all the deployed dependencies of an image | ||
| 147 | """ | ||
| 148 | |||
| 149 | deploy = {} | ||
| 150 | # Get all the dependencies for the current task (rootfs). | ||
| 151 | # Also get EXTRA_IMAGEDEPENDS because the bootloader is | ||
| 152 | # usually in this var and not listed in rootfs. | ||
| 153 | # At last, get the dependencies from boot classes because | ||
| 154 | # it might contain the bootloader. | ||
| 155 | taskdata = d.getVar("BB_TASKDEPDATA", True) | ||
| 156 | depends = list(set([dep[0] for dep | ||
| 157 | in taskdata.itervalues() | ||
| 158 | if not dep[0].endswith("-native")])) | ||
| 159 | extra_depends = d.getVar("EXTRA_IMAGEDEPENDS", True) | ||
| 160 | boot_depends = get_boot_dependencies(d) | ||
| 161 | depends.extend(extra_depends.split()) | ||
| 162 | depends.extend(boot_depends) | ||
| 163 | depends = list(set(depends)) | ||
| 164 | |||
| 165 | # To verify what was deployed it checks the rootfs dependencies against | ||
| 166 | # the SSTATE_MANIFESTS for "deploy" task. | ||
| 167 | # The manifest file name contains the arch. Because we are not running | ||
| 168 | # in the recipe context it is necessary to check every arch used. | ||
| 169 | sstate_manifest_dir = d.getVar("SSTATE_MANIFESTS", True) | ||
| 170 | sstate_archs = d.getVar("SSTATE_ARCHS", True) | ||
| 171 | extra_archs = d.getVar("PACKAGE_EXTRA_ARCHS", True) | ||
| 172 | archs = list(set(("%s %s" % (sstate_archs, extra_archs)).split())) | ||
| 173 | for dep in depends: | ||
| 174 | # Some recipes have an arch on their own, so we try that first. | ||
| 175 | special_arch = d.getVar("PACKAGE_ARCH_pn-%s" % dep, True) | ||
| 176 | if special_arch: | ||
| 177 | sstate_manifest_file = os.path.join(sstate_manifest_dir, | ||
| 178 | "manifest-%s-%s.deploy" % (special_arch, dep)) | ||
| 179 | if os.path.exists(sstate_manifest_file): | ||
| 180 | deploy[dep] = sstate_manifest_file | ||
| 181 | continue | ||
| 182 | |||
| 183 | for arch in archs: | ||
| 184 | sstate_manifest_file = os.path.join(sstate_manifest_dir, | ||
| 185 | "manifest-%s-%s.deploy" % (arch, dep)) | ||
| 186 | if os.path.exists(sstate_manifest_file): | ||
| 187 | deploy[dep] = sstate_manifest_file | ||
| 188 | break | ||
| 189 | |||
| 190 | return deploy | ||
| 191 | |||
| 144 | def get_boot_dependencies(d): | 192 | def get_boot_dependencies(d): |
| 145 | """ | 193 | """ |
| 146 | Return the dependencies from boot tasks | 194 | Return the dependencies from boot tasks |
