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 -->
This commit is contained in:
bors-servo 2018-12-08 10:29:15 -05:00 committed by GitHub
commit 8fb1b567fa
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23

View file

@ -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.')