ebuild(1): fix ebuild modification check
This has been broken since the setcpv call (triggering metadata
generation) was added before it in commit
0b39d24bb8270e5c89eaddfd1f5a4181cf9e31d3.
diff --git a/bin/ebuild b/bin/ebuild
index 9d20a41..58ab46f 100755
--- a/bin/ebuild
+++ b/bin/ebuild
@@ -215,6 +215,19 @@
portage._doebuild_manifest_exempt_depend -= 1
portage.settings.validate() # generate warning messages if necessary
+
+build_dir_phases = set(["setup", "unpack", "prepare", "configure", "compile",
+ "test", "install", "package", "rpm", "merge", "qmerge"])
+
+# If the current metadata is invalid then force the ebuild to be
+# sourced again even if $T/environment already exists.
+ebuild_changed = False
+if mytree == "porttree" and build_dir_phases.intersection(pargs):
+ metadata, st, emtime = \
+ portage.portdb._pull_valid_cache(cpv, ebuild, ebuild_portdir)
+ if metadata is None:
+ ebuild_changed = True
+
tmpsettings = portage.config(clone=portage.settings)
tmpsettings["PORTAGE_VERBOSE"] = "1"
tmpsettings.backup_changes("PORTAGE_VERBOSE")
@@ -249,18 +262,6 @@
# aux_get failure, message should have been shown on stderr.
sys.exit(1)
-build_dir_phases = set(["setup", "unpack", "prepare", "configure", "compile",
- "test", "install", "package", "rpm", "merge", "qmerge"])
-
-# If the current metadata is invalid then force the ebuild to be
-# sourced again even if $T/environment already exists.
-ebuild_changed = False
-if mytree == "porttree" and build_dir_phases.intersection(pargs):
- metadata, st, emtime = \
- portage.portdb._pull_valid_cache(cpv, ebuild, ebuild_portdir)
- if metadata is None:
- ebuild_changed = True
-
def stale_env_warning():
if "clean" not in pargs and \
"noauto" not in tmpsettings.features and \