ebuild(1): fix ebuild modification check
authorZac Medico <zmedico@gentoo.org>
Wed, 2 Mar 2011 00:53:25 +0000 (16:53 -0800)
committerZac Medico <zmedico@gentoo.org>
Wed, 2 Mar 2011 00:55:50 +0000 (16:55 -0800)
This has been broken since the setcpv call (triggering metadata
generation) was added before it in commit
0b39d24bb8270e5c89eaddfd1f5a4181cf9e31d3.

bin/ebuild

index 9d20a41546f31a7c289474768568868a7245bbe5..58ab46f138509bf80fcd10d4eabb0184f633bf67 100755 (executable)
@@ -215,6 +215,19 @@ def discard_digests(myebuild, mysettings, mydbapi):
                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 @@ except KeyError:
        # 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 \