diff options
author | Manish Goregaokar <manishsmail@gmail.com> | 2018-09-03 16:46:58 +0530 |
---|---|---|
committer | Manish Goregaokar <manishsmail@gmail.com> | 2018-09-11 19:34:38 +0530 |
commit | 6de148a7e5b03436da238ae8c38d67b9b0221821 (patch) | |
tree | 88f000e3186a9ae48b3bb840bd681e8b5cf7abef /python/servo/bootstrap.py | |
parent | 10970be612abadc953dd26e2b5d375cd714fa99f (diff) | |
download | servo-6de148a7e5b03436da238ae8c38d67b9b0221821.tar.gz servo-6de148a7e5b03436da238ae8c38d67b9b0221821.zip |
Have bootstrap script install trusty g++/clang deps
Diffstat (limited to 'python/servo/bootstrap.py')
-rw-r--r-- | python/servo/bootstrap.py | 35 |
1 files changed, 34 insertions, 1 deletions
diff --git a/python/servo/bootstrap.py b/python/servo/bootstrap.py index 2bbc3836012..46b2f0f76aa 100644 --- a/python/servo/bootstrap.py +++ b/python/servo/bootstrap.py @@ -17,13 +17,43 @@ import servo.packages as packages from servo.util import extract, download_file, host_triple +def install_trusty_deps(force): + version = str(subprocess.check_output(['gcc', '-dumpversion'])).split('.') + gcc = True + if int(version[0]) > 4: + gcc = False + elif int(version[0]) == 4 and int(version[1]) >= 9: + gcc = False + + version = str(subprocess.check_output(['clang', '-dumpversion'])).split('.') + clang = int(version[0]) < 4 + + if gcc: + run_as_root(["add-apt-repository", "ppa:ubuntu-toolchain-r/test"], force) + run_as_root(["apt-get", "update"]) + run_as_root(["apt-get", "install", "gcc-4.9", "g++-4.9"], force) + run_as_root(['update-alternatives', '--install', '/usr/bin/gcc', 'gcc', + '/usr/bin/gcc-4.9', '60', '--slave', '/usr/bin/g++', 'g++', + '/usr/bin/g++-4.9']) + if clang: + run_as_root(["bash", "-c", 'wget -O - https://apt.llvm.org/llvm-snapshot.gpg.key | sudo apt-key add -']) + run_as_root(["apt-add-repository" "deb http://apt.llvm.org/trusty/ llvm-toolchain-xenial-4.0 main"], force) + run_as_root(["apt-get", "update"]) + run_as_root(["apt-get", "install", "clang-4.0"], force) + + return gcc or clang + + def check_gstreamer_lib(): return subprocess.call(["pkg-config", "gstreamer-1.0 >= 1.12"], stdout=PIPE, stderr=PIPE) == 0 -def run_as_root(command): + +def run_as_root(command, force=False): if os.geteuid() != 0: command.insert(0, 'sudo') + if force: + command += "-y" return subprocess.call(command) @@ -111,6 +141,9 @@ def linux(context, force=False): if not check_gstreamer_lib(): installed_something |= gstreamer(context, force) + if context.distro == "Ubuntu" and context.distro_version == "14.04": + installed_something |= install_trusty_deps(force) + if not installed_something: print("Dependencies were already installed!") |