diff options
author | bors-servo <lbergstrom+bors@mozilla.com> | 2018-12-08 10:29:15 -0500 |
---|---|---|
committer | GitHub <noreply@github.com> | 2018-12-08 10:29:15 -0500 |
commit | 8fb1b567fa87a66d3a962060716e3be794ea66b2 (patch) | |
tree | 7e6d95f6bce7ebd4276c16efe9af81a461995d4f /python/servo/bootstrap.py | |
parent | 5346f74215b30d677a3d8f790b8a609da1214099 (diff) | |
parent | 7ceabcee0cfc50af2187bfc5ccca32815a9fadd0 (diff) | |
download | servo-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.py | 46 |
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.') |