diff options
Diffstat (limited to 'meta/lib/oe/packagegroup.py')
| -rw-r--r-- | meta/lib/oe/packagegroup.py | 25 |
1 files changed, 16 insertions, 9 deletions
diff --git a/meta/lib/oe/packagegroup.py b/meta/lib/oe/packagegroup.py index b04c45a1af..12eb4212ff 100644 --- a/meta/lib/oe/packagegroup.py +++ b/meta/lib/oe/packagegroup.py | |||
| @@ -1,19 +1,26 @@ | |||
| 1 | import itertools | 1 | import itertools |
| 2 | 2 | ||
| 3 | def is_optional(group, d): | 3 | def is_optional(feature, d): |
| 4 | return bool(d.getVarFlag("PACKAGE_GROUP_%s" % group, "optional")) | 4 | packages = d.getVar("FEATURE_PACKAGES_%s" % feature, True) |
| 5 | if packages: | ||
| 6 | return bool(d.getVarFlag("FEATURE_PACKAGES_%s" % feature, "optional")) | ||
| 7 | else: | ||
| 8 | return bool(d.getVarFlag("PACKAGE_GROUP_%s" % feature, "optional")) | ||
| 5 | 9 | ||
| 6 | def packages(groups, d): | 10 | def packages(features, d): |
| 7 | for group in groups: | 11 | for feature in features: |
| 8 | for pkg in (d.getVar("PACKAGE_GROUP_%s" % group, True) or "").split(): | 12 | packages = d.getVar("FEATURE_PACKAGES_%s" % feature, True) |
| 13 | if not packages: | ||
| 14 | packages = d.getVar("PACKAGE_GROUP_%s" % feature, True) | ||
| 15 | for pkg in (packages or "").split(): | ||
| 9 | yield pkg | 16 | yield pkg |
| 10 | 17 | ||
| 11 | def required_packages(groups, d): | 18 | def required_packages(features, d): |
| 12 | req = filter(lambda group: not is_optional(group, d), groups) | 19 | req = filter(lambda feature: not is_optional(feature, d), features) |
| 13 | return packages(req, d) | 20 | return packages(req, d) |
| 14 | 21 | ||
| 15 | def optional_packages(groups, d): | 22 | def optional_packages(features, d): |
| 16 | opt = filter(lambda group: is_optional(group, d), groups) | 23 | opt = filter(lambda feature: is_optional(feature, d), features) |
| 17 | return packages(opt, d) | 24 | return packages(opt, d) |
| 18 | 25 | ||
| 19 | def active_packages(features, d): | 26 | def active_packages(features, d): |
