diff options
Diffstat (limited to 'meta/classes/image.bbclass')
-rw-r--r-- | meta/classes/image.bbclass | 39 |
1 files changed, 27 insertions, 12 deletions
diff --git a/meta/classes/image.bbclass b/meta/classes/image.bbclass index 116bd226ea..909702ac23 100644 --- a/meta/classes/image.bbclass +++ b/meta/classes/image.bbclass @@ -11,8 +11,8 @@ inherit gzipnative LICENSE = "MIT" PACKAGES = "" DEPENDS += "${MLPREFIX}qemuwrapper-cross ${MLPREFIX}depmodwrapper-cross" -RDEPENDS += "${IMAGE_INSTALL} ${LINGUAS_INSTALL} ${NORMAL_FEATURE_INSTALL} ${ROOTFS_BOOTSTRAP_INSTALL}" -RRECOMMENDS += "${NORMAL_FEATURE_INSTALL_OPTIONAL}" +RDEPENDS += "${PACKAGE_INSTALL} ${LINGUAS_INSTALL}" +RRECOMMENDS += "${PACKAGE_INSTALL_ATTEMPTONLY}" INHIBIT_DEFAULT_DEPS = "1" @@ -28,16 +28,6 @@ ROOTFS_BOOTSTRAP_INSTALL = "${@base_contains("IMAGE_FEATURES", "package-manageme FEATURE_INSTALL = "${@' '.join(oe.packagegroup.required_packages(oe.data.typed_value('IMAGE_FEATURES', d), d))}" FEATURE_INSTALL_OPTIONAL = "${@' '.join(oe.packagegroup.optional_packages(oe.data.typed_value('IMAGE_FEATURES', d), d))}" -# packages to install from features, excluding dev/dbg/doc/ptest -NORMAL_FEATURE_INSTALL = "${@' '.join(oe.packagegroup.required_packages(normal_groups(d), d))}" -NORMAL_FEATURE_INSTALL_OPTIONAL = "${@' '.join(oe.packagegroup.optional_packages(normal_groups(d), d))}" - -def normal_groups(d): - """Return all the IMAGE_FEATURES, with the exception of our special package groups""" - extras = set(d.getVarFlags('COMPLEMENTARY_GLOB').keys()) - features = set(oe.data.typed_value('IMAGE_FEATURES', d)) - return features.difference(extras) - # Define some very basic feature package groups SPLASH ?= "psplash" PACKAGE_GROUP_splash = "${SPLASH}" @@ -277,6 +267,31 @@ read_only_rootfs_hook () { fi } +PACKAGE_EXCLUDE ??= "" +PACKAGE_EXCLUDE[type] = "list" + +python rootfs_process_ignore() { + excl_pkgs = d.getVar("PACKAGE_EXCLUDE", True).split() + inst_pkgs = d.getVar("PACKAGE_INSTALL", True).split() + inst_attempt_pkgs = d.getVar("PACKAGE_INSTALL_ATTEMPTONLY", True).split() + + d.setVar('PACKAGE_INSTALL_ORIG', ' '.join(inst_pkgs)) + d.setVar('PACKAGE_INSTALL_ATTEMPTONLY', ' '.join(inst_attempt_pkgs)) + + for pkg in excl_pkgs: + if pkg in inst_pkgs: + bb.warn("Package %s, set to be excluded, is in %s PACKAGE_INSTALL (%s). It will be removed from the list." % (pkg, d.getVar('PN', True), inst_pkgs)) + inst_pkgs.remove(pkg) + + if pkg in inst_attempt_pkgs: + bb.warn("Package %s, set to be excluded, is in %s PACKAGE_INSTALL_ATTEMPTONLY (%s). It will be removed from the list." % (pkg, d.getVar('PN', True), inst_pkgs)) + inst_attempt_pkgs.remove(pkg) + + d.setVar("PACKAGE_INSTALL", ' '.join(inst_pkgs)) + d.setVar("PACKAGE_INSTALL_ATTEMPTONLY", ' '.join(inst_attempt_pkgs)) +} +do_rootfs[prefuncs] += "rootfs_process_ignore" + # We have to delay the runtime_mapping_rename until just before rootfs runs # otherwise, the multilib renaming could step in and squash any fixups that # may have occurred. |