aboutsummaryrefslogtreecommitdiffstats
path: root/python
diff options
context:
space:
mode:
authorManish Goregaokar <manishsmail@gmail.com>2018-09-03 15:05:21 +0530
committerManish Goregaokar <manishsmail@gmail.com>2018-09-11 19:34:38 +0530
commite72e08ea9c7ed2f19ec7539984a3740db056fdba (patch)
treecb8640fc41f0a711fa4745e54ef50e95e67193d0 /python
parent6b75aa47cb6c34c6e34051ecd126e0982fc669e7 (diff)
downloadservo-e72e08ea9c7ed2f19ec7539984a3740db056fdba.tar.gz
servo-e72e08ea9c7ed2f19ec7539984a3740db056fdba.zip
Allow bootstrap to be run before anything else is installed
Diffstat (limited to 'python')
-rw-r--r--python/mach_bootstrap.py18
-rw-r--r--python/servo/bootstrap.py16
-rw-r--r--python/servo/util.py2
3 files changed, 32 insertions, 4 deletions
diff --git a/python/mach_bootstrap.py b/python/mach_bootstrap.py
index 2db4bf01c30..3435b39f06a 100644
--- a/python/mach_bootstrap.py
+++ b/python/mach_bootstrap.py
@@ -224,11 +224,29 @@ def _is_windows():
return sys.platform == 'win32'
+class DummyContext(object):
+ pass
+
+
+def bootstrap_command_only(topdir):
+ from servo.bootstrap import bootstrap
+
+ context = DummyContext()
+ context.topdir = topdir
+ force = False
+ if len(sys.argv) == 3 and sys.argv[2] == "-f":
+ force = True
+ bootstrap(context, force)
+ return 0
+
+
def bootstrap(topdir):
_ensure_case_insensitive_if_windows()
topdir = os.path.abspath(topdir)
+ len(sys.argv) > 1 and sys.argv[1] == "bootstrap"
+
# We don't support paths with Unicode characters for now
# https://github.com/servo/servo/issues/10002
try:
diff --git a/python/servo/bootstrap.py b/python/servo/bootstrap.py
index c2c046d2609..2bbc3836012 100644
--- a/python/servo/bootstrap.py
+++ b/python/servo/bootstrap.py
@@ -49,11 +49,16 @@ def install_linux_deps(context, pkgs_ubuntu, pkgs_fedora, force):
command.append('-y')
print("Installing missing dependencies...")
run_as_root(command + pkgs)
+ return True
+ return False
+
def install_salt_dependencies(context, force):
pkgs_apt = ['build-essential', 'libssl-dev', 'libffi-dev', 'python-dev']
pkgs_dnf = ['gcc', 'libffi-devel', 'python-devel', 'openssl-devel']
- install_linux_deps(context, pkgs_apt, pkgs_dnf, force)
+ if not install_linux_deps(context, pkgs_apt, pkgs_dnf, force):
+ print("Dependencies are already installed")
+
def gstreamer(context, force=False):
cur = os.curdir
@@ -62,6 +67,9 @@ def gstreamer(context, force=False):
os.chdir(gstdir)
subprocess.call(["bash", "gstreamer.sh"])
os.chdir(cur)
+ return True
+ return False
+
def linux(context, force=False):
# Please keep these in sync with the packages in README.md
@@ -98,11 +106,13 @@ def linux(context, force=False):
else:
pkgs_apt += ["libssl1.0-dev"]
- install_linux_deps(context, pkgs_apt, pkgs_dnf, force)
+ installed_something = install_linux_deps(context, pkgs_apt, pkgs_dnf, force)
if not check_gstreamer_lib():
- gstreamer(context, force)
+ installed_something |= gstreamer(context, force)
+ if not installed_something:
+ print("Dependencies were already installed!")
def salt(context, force=False):
diff --git a/python/servo/util.py b/python/servo/util.py
index d71cffe27da..c093978e631 100644
--- a/python/servo/util.py
+++ b/python/servo/util.py
@@ -20,7 +20,6 @@ import StringIO
import sys
import zipfile
import urllib2
-import certifi
try:
@@ -30,6 +29,7 @@ except ImportError:
# The cafile parameter was added in 2.7.9
if HAS_SNI and sys.version_info >= (2, 7, 9):
+ import certifi
STATIC_RUST_LANG_ORG_DIST = "https://static.rust-lang.org/dist"
URLOPEN_KWARGS = {"cafile": certifi.where()}
else: