build: Allow official tarball builds to be considered "clean"

If building from an official tarball and EXTRAVERSION info is
provided, then consider the build to be "clean" (don't include
hostname/build timestamp).  This is done on the expectation that
EXTRAVERSION will have enough information to allow developers to find
the builder and build environment should a defect be reported, and
therefore the hostname/timestamp is not necessary.

Signed-off-by: Kevin O'Connor <>
diff --git a/scripts/ b/scripts/
index bceae63..d61fc9e 100755
--- a/scripts/
+++ b/scripts/
@@ -23,7 +23,8 @@
         return ""
     return ver
-# Look for version in a ".version" file
+# Look for version in a ".version" file.  Official release tarballs
+# have this file (see scripts/
 def file_version():
     if not os.path.isfile('.version'):
         return ""
@@ -90,9 +91,14 @@
     cleanbuild, toolstr = tool_versions(
     ver = git_version()
-    cleanbuild = cleanbuild and ver and 'dirty' not in ver
+    cleanbuild = cleanbuild and 'dirty' not in ver
     if not ver:
         ver = file_version()
+        # We expect the "extra version" to contain information on the
+        # distributor and distribution package version (if
+        # applicable).  It is a "clean" build if this is a build from
+        # an official release tarball and the above info is present.
+        cleanbuild = cleanbuild and ver and options.extra != ""
         if not ver:
             ver = "?"
     if not cleanbuild: