зеркало из https://github.com/mozilla/gecko-dev.git
Bug 1527016, Don't install nasm on Linux if it is already installed locally, r=ted
This commit is contained in:
Родитель
057415dcb4
Коммит
e4e3b2d287
|
@ -153,6 +153,9 @@ MODERN_PYTHON_VERSION = LooseVersion('2.7.3')
|
|||
# Upgrade rust older than this.
|
||||
MODERN_RUST_VERSION = LooseVersion('1.32.0')
|
||||
|
||||
# Upgrade nasm older than this.
|
||||
MODERN_NASM_VERSION = LooseVersion('2.14')
|
||||
|
||||
|
||||
class BaseBootstrapper(object):
|
||||
"""Base class for system bootstrappers."""
|
||||
|
@ -453,7 +456,7 @@ class BaseBootstrapper(object):
|
|||
This should be defined in child classes.
|
||||
"""
|
||||
|
||||
def _parse_version(self, path, name=None, env=None):
|
||||
def _parse_version_impl(self, path, name, env, version_param):
|
||||
'''Execute the given path, returning the version.
|
||||
|
||||
Invokes the path argument with the --version switch
|
||||
|
@ -473,7 +476,7 @@ class BaseBootstrapper(object):
|
|||
if name.endswith('.exe'):
|
||||
name = name[:-4]
|
||||
|
||||
info = self.check_output([path, '--version'],
|
||||
info = self.check_output([path, version_param],
|
||||
env=env,
|
||||
stderr=subprocess.STDOUT)
|
||||
match = re.search(name + ' ([a-z0-9\.]+)', info)
|
||||
|
@ -483,6 +486,12 @@ class BaseBootstrapper(object):
|
|||
|
||||
return LooseVersion(match.group(1))
|
||||
|
||||
def _parse_version(self, path, name=None, env=None):
|
||||
return self._parse_version_impl(path, name, env, "--version")
|
||||
|
||||
def _parse_version_short(self, path, name=None, env=None):
|
||||
return self._parse_version_impl(path, name, env, "-v")
|
||||
|
||||
def _hg_cleanenv(self, load_hgrc=False):
|
||||
""" Returns a copy of the current environment updated with the HGPLAIN
|
||||
and HGRCPATH environment variables.
|
||||
|
@ -593,6 +602,17 @@ class BaseBootstrapper(object):
|
|||
"""
|
||||
print(PYTHON_UNABLE_UPGRADE % (current, MODERN_PYTHON_VERSION))
|
||||
|
||||
def is_nasm_modern(self):
|
||||
nasm = self.which('nasm')
|
||||
if not nasm:
|
||||
return False
|
||||
|
||||
our = self._parse_version_short(nasm, 'version')
|
||||
if not our:
|
||||
return False
|
||||
|
||||
return our >= MODERN_NASM_VERSION
|
||||
|
||||
def is_rust_modern(self, cargo_bin):
|
||||
rustc = self.which('rustc', cargo_bin)
|
||||
if not rustc:
|
||||
|
|
|
@ -66,7 +66,6 @@ class DebianBootstrapper(NodeInstall, StyloInstall, ClangStaticAnalysisInstall,
|
|||
'libpulse-dev',
|
||||
'libx11-xcb-dev',
|
||||
'libxt-dev',
|
||||
'nasm',
|
||||
'python-dbus',
|
||||
'xvfb',
|
||||
'yasm',
|
||||
|
@ -132,6 +131,9 @@ class DebianBootstrapper(NodeInstall, StyloInstall, ClangStaticAnalysisInstall,
|
|||
def ensure_browser_packages(self, artifact_mode=False):
|
||||
# TODO: Figure out what not to install for artifact mode
|
||||
self.apt_install(*self.browser_packages)
|
||||
modern = self.is_nasm_modern()
|
||||
if not modern:
|
||||
self.apt_install('nasm')
|
||||
|
||||
def ensure_mobile_android_packages(self, artifact_mode=False):
|
||||
# Multi-part process:
|
||||
|
|
Загрузка…
Ссылка в новой задаче