diff options
-rwxr-xr-x | bin/ebuild.sh | 16 | ||||
-rw-r--r-- | pym/portage/__init__.py | 15 |
2 files changed, 19 insertions, 12 deletions
diff --git a/bin/ebuild.sh b/bin/ebuild.sh index 25638be66..e88f73442 100755 --- a/bin/ebuild.sh +++ b/bin/ebuild.sh @@ -138,15 +138,10 @@ useq() { fi # Make sure we have this USE flag in IUSE - if ! hasq "${u}" ${IUSE} ${E_IUSE} && \ - ! hasq "+${u}" ${IUSE} ${E_IUSE} && \ - ! hasq "-${u}" ${IUSE} ${E_IUSE} && \ - ! hasq "${u}" ${PORTAGE_ARCHLIST} selinux && \ - [[ ${u} != arch_* ]] && \ - [[ ${u} != elibc_* ]] && \ - [[ ${u} != kernel_* ]] && \ - [[ ${u} != userland_* ]] ; then - eqawarn "QA Notice: USE Flag '${u}' not in IUSE for ${CATEGORY}/${PF}" + if [[ ${EBUILD_PHASE} != depend ]] && [[ -n ${PORTAGE_IUSE} ]] ; then + echo "${u}" | egrep -q "${PORTAGE_IUSE}" || \ + eqawarn "QA Notice: USE Flag '${u}' not" \ + "in IUSE for ${CATEGORY}/${PF}" fi if hasq ${u} ${USE} ; then @@ -1367,7 +1362,8 @@ READONLY_EBUILD_METADATA="DEPEND DESCRIPTION READONLY_PORTAGE_VARS="D EBUILD EBUILD_PHASE \ EBUILD_SH_ARGS EMERGE_FROM FILESDIR PORTAGE_BINPKG_FILE \ - PORTAGE_BIN_PATH PORTAGE_PYM_PATH PORTAGE_MUTABLE_FILTERED_VARS \ + PORTAGE_BIN_PATH PORTAGE_IUSE \ + PORTAGE_PYM_PATH PORTAGE_MUTABLE_FILTERED_VARS \ PORTAGE_SAVED_READONLY_VARS PORTAGE_TMPDIR T WORKDIR" PORTAGE_SAVED_READONLY_VARS="A CATEGORY P PF PN PR PV PVR" diff --git a/pym/portage/__init__.py b/pym/portage/__init__.py index 9e2f424ce..1cdbda2c8 100644 --- a/pym/portage/__init__.py +++ b/pym/portage/__init__.py @@ -881,6 +881,7 @@ class config(object): "PORTAGE_BUILDDIR", "PORTAGE_COLORMAP", "PORTAGE_CONFIGROOT", "PORTAGE_DEBUG", "PORTAGE_DEPCACHEDIR", "PORTAGE_GID", "PORTAGE_INST_GID", "PORTAGE_INST_UID", + "PORTAGE_IUSE", "PORTAGE_LOG_FILE", "PORTAGE_MASTER_PID", "PORTAGE_PYM_PATH", "PORTAGE_REPO_NAME", "PORTAGE_RESTRICT", "PORTAGE_TMPDIR", "PORTAGE_WORKDIR_MODE", @@ -2396,12 +2397,12 @@ class config(object): iuse_implicit = set(iuse) # Flags derived from ARCH. - if arch: - iuse_implicit.add(arch) + iuse_implicit.update(self.get("PORTAGE_ARCHLIST", "").split()) # Flags derived from USE_EXPAND_HIDDEN variables # such as ELIBC, KERNEL, and USERLAND. use_expand_hidden = self.get("USE_EXPAND_HIDDEN", "").split() + use_expand_hidden_raw = use_expand_hidden if use_expand_hidden: use_expand_hidden = re.compile("^(%s)_.*" % \ ("|".join(x.lower() for x in use_expand_hidden))) @@ -2413,6 +2414,16 @@ class config(object): iuse_implicit.update(x for x in self.useforce \ if x not in self.usemask) + iuse_grep = iuse_implicit.copy() + if use_expand_hidden_raw: + for x in use_expand_hidden_raw: + iuse_grep.add(x.lower() + "_.*") + if iuse_grep: + iuse_grep = "^(%s)$" % "|".join(sorted(iuse_grep)) + else: + iuse_grep = "" + self.configdict["pkg"]["PORTAGE_IUSE"] = iuse_grep + usesplit = [x for x in usesplit if \ x in iuse_implicit and \ x not in self.usemask] |