summaryrefslogtreecommitdiffstats
path: root/qemu/roms/seabios/scripts/buildversion.py
diff options
context:
space:
mode:
authorRajithaY <rajithax.yerrumsetty@intel.com>2017-04-25 03:31:15 -0700
committerRajitha Yerrumchetty <rajithax.yerrumsetty@intel.com>2017-05-22 06:48:08 +0000
commitbb756eebdac6fd24e8919e2c43f7d2c8c4091f59 (patch)
treeca11e03542edf2d8f631efeca5e1626d211107e3 /qemu/roms/seabios/scripts/buildversion.py
parenta14b48d18a9ed03ec191cf16b162206998a895ce (diff)
Adding qemu as a submodule of KVMFORNFV
This Patch includes the changes to add qemu as a submodule to kvmfornfv repo and make use of the updated latest qemu for the execution of all testcase Change-Id: I1280af507a857675c7f81d30c95255635667bdd7 Signed-off-by:RajithaY<rajithax.yerrumsetty@intel.com>
Diffstat (limited to 'qemu/roms/seabios/scripts/buildversion.py')
-rwxr-xr-xqemu/roms/seabios/scripts/buildversion.py134
1 files changed, 0 insertions, 134 deletions
diff --git a/qemu/roms/seabios/scripts/buildversion.py b/qemu/roms/seabios/scripts/buildversion.py
deleted file mode 100755
index 46928984e..000000000
--- a/qemu/roms/seabios/scripts/buildversion.py
+++ /dev/null
@@ -1,134 +0,0 @@
-#!/usr/bin/env python
-# Generate version information for a program
-#
-# Copyright (C) 2015 Kevin O'Connor <kevin@koconnor.net>
-#
-# This file may be distributed under the terms of the GNU GPLv3 license.
-import sys, os, subprocess, shlex, time, socket, optparse, logging, traceback
-
-VERSION_FORMAT = """
-/* DO NOT EDIT! This is an autogenerated file. See scripts/buildversion.py. */
-#define BUILD_VERSION "%s"
-#define BUILD_TOOLS "%s"
-"""
-
-# Run program and return the specified output
-def check_output(prog):
- logging.debug("Running %s" % (repr(prog),))
- try:
- process = subprocess.Popen(shlex.split(prog), stdout=subprocess.PIPE)
- output = process.communicate()[0]
- retcode = process.poll()
- except OSError:
- logging.debug("Exception on run: %s" % (traceback.format_exc(),))
- return ""
- logging.debug("Got (code=%s): %s" % (retcode, repr(output)))
- if retcode:
- return ""
- try:
- return output.decode()
- except UnicodeError:
- logging.debug("Exception on decode: %s" % (traceback.format_exc(),))
- return ""
-
-# Obtain version info from "git" program
-def git_version():
- if not os.path.exists('.git'):
- logging.debug("No '.git' file/directory found")
- return ""
- ver = check_output("git describe --tags --long --dirty").strip()
- logging.debug("Got git version: %s" % (repr(ver),))
- return ver
-
-# Look for version in a ".version" file. Official release tarballs
-# have this file (see scripts/tarball.sh).
-def file_version():
- if not os.path.isfile('.version'):
- logging.debug("No '.version' file found")
- return ""
- try:
- f = open('.version', 'r')
- ver = f.readline().strip()
- f.close()
- except OSError:
- logging.debug("Exception on read: %s" % (traceback.format_exc(),))
- return ""
- logging.debug("Got .version: %s" % (repr(ver),))
- return ver
-
-# Generate an output file with the version information
-def write_version(outfile, version, toolstr):
- logging.debug("Write file %s and %s" % (repr(version), repr(toolstr)))
- sys.stdout.write("Version: %s\n" % (version,))
- f = open(outfile, 'w')
- f.write(VERSION_FORMAT % (version, toolstr))
- f.close()
-
-# Run "tool --version" for each specified tool and extract versions
-def tool_versions(tools):
- tools = [t.strip() for t in tools.split(';')]
- versions = ['', '']
- success = 0
- for tool in tools:
- # Extract first line from "tool --version" output
- verstr = check_output("%s --version" % (tool,)).split('\n')[0]
- # Check if this tool looks like a binutils program
- isbinutils = 0
- if verstr.startswith('GNU '):
- isbinutils = 1
- verstr = verstr[4:]
- # Extract version information and exclude program name
- if ' ' not in verstr:
- continue
- prog, ver = verstr.split(' ', 1)
- if not prog or not ver:
- continue
- # Check for any version conflicts
- if versions[isbinutils] and versions[isbinutils] != ver:
- logging.debug("Mixed version %s vs %s" % (
- repr(versions[isbinutils]), repr(ver)))
- versions[isbinutils] = "mixed"
- continue
- versions[isbinutils] = ver
- success += 1
- cleanbuild = versions[0] and versions[1] and success == len(tools)
- return cleanbuild, "gcc: %s binutils: %s" % (versions[0], versions[1])
-
-def main():
- usage = "%prog [options] <outputheader.h>"
- opts = optparse.OptionParser(usage)
- opts.add_option("-e", "--extra", dest="extra", default="",
- help="extra version string to append to version")
- opts.add_option("-t", "--tools", dest="tools", default="",
- help="list of build programs to extract version from")
- opts.add_option("-v", action="store_true", dest="verbose",
- help="enable debug messages")
-
- options, args = opts.parse_args()
- if len(args) != 1:
- opts.error("Incorrect arguments")
- outfile = args[0]
- if options.verbose:
- logging.basicConfig(level=logging.DEBUG)
-
- cleanbuild, toolstr = tool_versions(options.tools)
-
- ver = git_version()
- 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:
- btime = time.strftime("%Y%m%d_%H%M%S")
- hostname = socket.gethostname()
- ver = "%s-%s-%s" % (ver, btime, hostname)
- write_version(outfile, ver + options.extra, toolstr)
-
-if __name__ == '__main__':
- main()