diff options
author | Daniel Narvaez <dwnarvaez@gmail.com> | 2012-06-15 20:09:31 (GMT) |
---|---|---|
committer | Daniel Narvaez <dwnarvaez@gmail.com> | 2012-06-15 20:09:31 (GMT) |
commit | 6e3cdf1b4855fd0c82ae9abcfcf91400e7341c45 (patch) | |
tree | bacc14a9f72c5f9475bd630b36f0a5f9a4f1719a /scripts | |
parent | 725929e4b2dad321f42ed70c144811efb77b5fb3 (diff) |
Run the import checks under Xvfb
Otherwise we require to be running under X to build.
Diffstat (limited to 'scripts')
-rwxr-xr-x | scripts/check-system | 51 |
1 files changed, 34 insertions, 17 deletions
diff --git a/scripts/check-system b/scripts/check-system index 0801656..1469621 100755 --- a/scripts/check-system +++ b/scripts/check-system @@ -4,6 +4,9 @@ import os import subprocess import sys +xvfb_packages = { "fedora": "Xvfb", + "ubuntu": "xvfb" } + binaries = [{ "name": "git", "packages": { "fedora": "git", "ubuntu": "git" } }, @@ -123,15 +126,40 @@ elif os.path.exists("/etc/lsb-release"): devnull = open("/dev/null", "w") +def install_packages(packages): + args = ["sudo"] + + if "SUGAR_BUILDBOT" in os.environ: + print "Missing packages %s" % " ".join(packages) + sys.exit(1) + + if distro == "fedora": + args.extend(["yum", "install"]) + elif distro == "ubuntu": + args.extend(["apt-get", "install"]) + + args.extend(packages) + subprocess.call(args) + +def check_binary(name): + return subprocess.call(["which", name], + stdout=devnull, + stderr=subprocess.STDOUT) + +if check_binary("Xvfb"): + if distro in xvfb_packages: + install_packages([xvfb_packages[distro]]) + else: + print "Xvfb is required to check dependecies." + sys.exit(1) + missing_binaries = [] missing_libs = [] missing_imports = [] packages = [] for info in binaries: - if subprocess.call(["which", info["name"]], - stdout=devnull, - stderr=subprocess.STDOUT): + if check_binary(info["name"]): if distro in info["packages"]: packages.append(info["packages"][distro]) else: @@ -145,7 +173,8 @@ for info in libs: missing_libs.append(info) for info in imports: - if subprocess.call(["python", "-c", info["import"]], + if subprocess.call(["Xvfb", ":100", "-ac", + "python", "-c", info["import"]], stdout=devnull, stderr=subprocess.STDOUT) == 1: if distro in info["packages"]: packages.append(info["packages"][distro]) @@ -153,19 +182,7 @@ for info in imports: missing_libs.append(info) if packages: - args = ["sudo"] - - if "SUGAR_BUILDBOT" in os.environ: - print "Missing packages %s" % " ".join(packages) - sys.exit(1) - - if distro == "fedora": - args.extend(["yum", "install"]) - elif distro == "ubuntu": - args.extend(["apt-get", "install"]) - - args.extend(packages) - subprocess.call(args) + install_packages(packages) if missing_binaries: print "Missing binaries\n" |