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): |