Index: pym/portage.py =================================================================== --- pym/portage.py (revision 6771) +++ pym/portage.py (working copy) @@ -1693,6 +1693,7 @@ cp = dep_getkey(mycpv) cpv_slot = self.mycpv pkginternaluse = "" + iuse = "" if mydb: slot, iuse = mydb.aux_get(self.mycpv, ["SLOT", "IUSE"]) cpv_slot = "%s:%s" % (self.mycpv, slot) @@ -1753,6 +1754,7 @@ has_changed = True self.configdict["pkg"]["PKGUSE"] = self.puse[:] # For saving to PUSE file self.configdict["pkg"]["USE"] = self.puse[:] # this gets appended to USE + self.configdict["pkg"]["IUSE"] = iuse # CATEGORY is essential for doebuild calls self.configdict["pkg"]["CATEGORY"] = mycpv.split("/")[0] if has_changed: @@ -1974,6 +1976,19 @@ # exports them as empty. This is required for vars such as # LINGUAS, where unset and empty have different meanings. self[var] = " ".join(var_split) + else: + # if unset, we enable everything in IUSE that's not masked + iuse = self.configdict["pkg"].get("IUSE") + if iuse: + var_split = [] + for x in iuse.split(): + x = x.lstrip("+-") + if x.startswith(prefix) and x not in self.usemask: + var_split.append(x[prefix_len:]) + usesplit.append(x) + if var_split: + self[var] = " ".join(var_split) + usesplit.sort() # Pre-Pend ARCH variable to USE settings so '-*' in env doesn't kill arch. if self.configdict["defaults"].has_key("ARCH"):