aboutsummaryrefslogtreecommitdiffstats
path: root/python/servo/bootstrap.py
diff options
context:
space:
mode:
authorbors-servo <lbergstrom+bors@mozilla.com>2018-12-08 10:29:15 -0500
committerGitHub <noreply@github.com>2018-12-08 10:29:15 -0500
commit8fb1b567fa87a66d3a962060716e3be794ea66b2 (patch)
tree7e6d95f6bce7ebd4276c16efe9af81a461995d4f /python/servo/bootstrap.py
parent5346f74215b30d677a3d8f790b8a609da1214099 (diff)
parent7ceabcee0cfc50af2187bfc5ccca32815a9fadd0 (diff)
downloadservo-8fb1b567fa87a66d3a962060716e3be794ea66b2.tar.gz
servo-8fb1b567fa87a66d3a962060716e3be794ea66b2.zip
Auto merge of #22386 - cdeler:fix-mach-bootstrap-LinuxMint, r=jdm
Use the base Ubuntu distro instead of LinuxMint in './mach bootstrap' I'm LinuxMint user. I couldn't install all dependencies via `./mach bootstrap` due to error, described in this ticket: https://github.com/servo/servo/issues/21732 As LinuxMint is based on the stable Ubuntu, I've made a little fix for the `bootstrap` procedure. --- - [X] `./mach build -d` does not report any errors - [X] `./mach test-tidy` does not report any errors - [X] These changes fix #21732 (github issue number if applicable). <!-- Either: --> - [ ] There are tests for these changes OR - [X] These changes do not require tests because I haven't found the tests for `./mach bootstrap` (please correct me if I'm wrong) <!-- Reviewable:start --> --- This change is [<img src="https://reviewable.io/review_button.svg" height="34" align="absmiddle" alt="Reviewable"/>](https://reviewable.io/reviews/servo/servo/22386) <!-- Reviewable:end -->
Diffstat (limited to 'python/servo/bootstrap.py')
-rw-r--r--python/servo/bootstrap.py46
1 files changed, 33 insertions, 13 deletions
diff --git a/python/servo/bootstrap.py b/python/servo/bootstrap.py
index 486147451fa..4f3f84ebcae 100644
--- a/python/servo/bootstrap.py
+++ b/python/servo/bootstrap.py
@@ -341,6 +341,34 @@ LINUX_SPECIFIC_BOOTSTRAPPERS = {
}
+def get_linux_distribution():
+ distro, version, _ = platform.linux_distribution()
+
+ if distro == 'LinuxMint':
+ major, minor = version.split('.')
+
+ if major == '19':
+ base_version = '18.04'
+ elif major == '18':
+ base_version = '16.04'
+ elif major == '17':
+ base_version = '14.04'
+ else:
+ raise Exception('unsupported version of %s: %s' % (distro, version))
+
+ distro, version = 'Ubuntu', base_version
+ elif distro.lower() not in [
+ 'centos',
+ 'centos linux',
+ 'debian',
+ 'fedora',
+ 'ubuntu',
+ ]:
+ raise Exception('mach bootstrap does not support %s, please file a bug' % distro)
+
+ return distro, version
+
+
def bootstrap(context, force=False, specific=None):
'''Dispatches to the right bootstrapping function for the OS.'''
@@ -348,19 +376,11 @@ def bootstrap(context, force=False, specific=None):
if "windows-msvc" in host_triple():
bootstrapper = windows_msvc
elif "linux-gnu" in host_triple():
- distro, version, _ = platform.linux_distribution()
- if distro.lower() in [
- 'centos',
- 'centos linux',
- 'debian',
- 'fedora',
- 'ubuntu',
- ]:
- context.distro = distro
- context.distro_version = version
- bootstrapper = LINUX_SPECIFIC_BOOTSTRAPPERS.get(specific, linux)
- else:
- raise Exception("mach bootstrap does not support %s, please file a bug" % distro)
+ distro, version = get_linux_distribution()
+
+ context.distro = distro
+ context.distro_version = version
+ bootstrapper = LINUX_SPECIFIC_BOOTSTRAPPERS.get(specific, linux)
if bootstrapper is None:
print('Bootstrap support is not yet available for your OS.')