diff options
| author | Brian Dolbec <dolsen@gentoo.org> | 2012-12-30 12:24:19 -0800 |
|---|---|---|
| committer | Brian Dolbec <dolsen@gentoo.org> | 2012-12-30 12:24:19 -0800 |
| commit | 9dc72ec11c464f1fad4ddca0608a0593be23b9b5 (patch) | |
| tree | a5bd5eb3041d6b8eddc23e9316e9f5512f769282 | |
| parent | a582ad8a270af9861d5c1e0bb269012d2bd5b3f5 (diff) | |
| download | gentoolkit-9dc72ec11c464f1fad4ddca0608a0593be23b9b5.tar.gz | |
fix bug 449300, duped use flags due to non defaulted use flags added from eclasses not matching against IUSE defaults during set() duplicate elimination.
| -rw-r--r-- | pym/gentoolkit/flag.py | 6 |
1 files changed, 4 insertions, 2 deletions
diff --git a/pym/gentoolkit/flag.py b/pym/gentoolkit/flag.py index 9983ba7..d92d904 100644 --- a/pym/gentoolkit/flag.py +++ b/pym/gentoolkit/flag.py @@ -36,7 +36,10 @@ def get_iuse(cpv): """ try: # aux_get might return dupes, so run them through set() to remove them - return list(set(portage.db[portage.root]["porttree"].dbapi.aux_get(cpv, ["IUSE"])[0].split())) + iuse = set(portage.db[portage.root]["porttree"].dbapi.aux_get(cpv, ["IUSE"])[0].split()) + # there could still be dupes due to IUSE defaults + iuse = [x for x in iuse if '+'+x not in iuse and '-'+x not in iuse] + return list(iuse) except: return [] @@ -173,7 +176,6 @@ def get_flags(cpv, final_setting=False): """ final_use, use_expand_hidden, usemasked, useforced = get_all_cpv_use(cpv) iuse_flags = filter_flags(get_iuse(cpv), use_expand_hidden, usemasked, useforced) - #flags = filter_flags(use_flags, use_expand_hidden, usemasked, useforced) if final_setting: final_flags = filter_flags(final_use, use_expand_hidden, usemasked, useforced) return iuse_flags, final_flags |
