зеркало из https://github.com/mozilla/gecko-dev.git
Bug 964744 - Refactor mozboot packages into the constructor, r=gps
This commit is contained in:
Родитель
d9443a7dfa
Коммит
a9430995cc
|
@ -136,6 +136,17 @@ class BaseBootstrapper(object):
|
|||
|
||||
self.run_as_root(command)
|
||||
|
||||
def apt_update(self):
|
||||
command = ['apt-get', 'update']
|
||||
|
||||
self.run_as_root(command)
|
||||
|
||||
def apt_add_architecture(self, arch):
|
||||
command = ['dpkg', '--add-architecture']
|
||||
command.extemd(arch)
|
||||
|
||||
self.run_as_root(command)
|
||||
|
||||
def check_output(self, *args, **kwargs):
|
||||
"""Run subprocess.check_output even if Python doesn't provide it."""
|
||||
fn = getattr(subprocess, 'check_output', BaseBootstrapper._check_output)
|
||||
|
|
|
@ -33,7 +33,9 @@ Or, if you prefer Git:
|
|||
class Bootstrapper(object):
|
||||
"""Main class that performs system bootstrap."""
|
||||
|
||||
def bootstrap(self):
|
||||
def __init__(self, finished=FINISHED):
|
||||
self.instance = None
|
||||
self.finished = finished
|
||||
cls = None
|
||||
args = {}
|
||||
|
||||
|
@ -85,9 +87,12 @@ class Bootstrapper(object):
|
|||
raise NotImplementedError('Bootstrap support is not yet available '
|
||||
'for your OS.')
|
||||
|
||||
instance = cls(**args)
|
||||
instance.install_system_packages()
|
||||
instance.ensure_mercurial_modern()
|
||||
instance.ensure_python_modern()
|
||||
self.instance = cls(**args)
|
||||
|
||||
print(FINISHED)
|
||||
|
||||
def bootstrap(self):
|
||||
self.instance.install_system_packages()
|
||||
self.instance.ensure_mercurial_modern()
|
||||
self.instance.ensure_python_modern()
|
||||
|
||||
print(self.finished)
|
||||
|
|
|
@ -14,14 +14,13 @@ class CentOSBootstrapper(BaseBootstrapper):
|
|||
self.version = version
|
||||
self.dist_id = dist_id
|
||||
|
||||
def install_system_packages(self):
|
||||
kern = platform.uname()
|
||||
|
||||
self.yum_groupinstall(
|
||||
self.group_packages = [
|
||||
'Development Tools',
|
||||
'Development Libraries',
|
||||
'GNOME Software Development')
|
||||
self.yum_install(
|
||||
'GNOME Software Development',
|
||||
]
|
||||
|
||||
self.packages = [
|
||||
'alsa-lib-devel',
|
||||
'autoconf213',
|
||||
'curl-devel',
|
||||
|
@ -36,7 +35,14 @@ class CentOSBootstrapper(BaseBootstrapper):
|
|||
'mesa-libGL-devel',
|
||||
'pulseaudio-libs-devel',
|
||||
'wireless-tools-devel',
|
||||
'yasm')
|
||||
'yasm',
|
||||
]
|
||||
|
||||
def install_system_packages(self):
|
||||
kern = platform.uname()
|
||||
|
||||
self.yum_groupinstall(*self.group_packages)
|
||||
self.yum_install(*self.packages)
|
||||
|
||||
yasm = 'http://pkgs.repoforge.org/yasm/yasm-1.1.0-1.el6.rf.i686.rpm'
|
||||
if 'x86_64' in kern[2]:
|
||||
|
|
|
@ -42,9 +42,10 @@ class DebianBootstrapper(BaseBootstrapper):
|
|||
self.version = version
|
||||
self.dist_id = dist_id
|
||||
|
||||
self.packages = self.COMMON_PACKAGES + self.DISTRO_PACKAGES
|
||||
|
||||
def install_system_packages(self):
|
||||
packages = self.COMMON_PACKAGES + self.DISTRO_PACKAGES
|
||||
self.apt_install(*packages)
|
||||
self.apt_install(*self.packages)
|
||||
|
||||
def _update_package_manager(self):
|
||||
self.run_as_root(['apt-get', 'update'])
|
||||
|
|
|
@ -13,13 +13,13 @@ class FedoraBootstrapper(BaseBootstrapper):
|
|||
self.version = version
|
||||
self.dist_id = dist_id
|
||||
|
||||
def install_system_packages(self):
|
||||
self.yum_groupinstall(
|
||||
self.group_packages = [
|
||||
'Development Tools',
|
||||
'Development Libraries',
|
||||
'GNOME Software Development')
|
||||
'GNOME Software Development',
|
||||
]
|
||||
|
||||
self.yum_install(
|
||||
self.packages = [
|
||||
'alsa-lib-devel',
|
||||
'autoconf213',
|
||||
'gcc-c++',
|
||||
|
@ -32,7 +32,12 @@ class FedoraBootstrapper(BaseBootstrapper):
|
|||
'mesa-libGL-devel',
|
||||
'pulseaudio-libs-devel',
|
||||
'wireless-tools-devel',
|
||||
'yasm')
|
||||
'yasm',
|
||||
]
|
||||
|
||||
def install_system_packages(self):
|
||||
self.yum_groupinstall(*self.group_packages)
|
||||
self.yum_install(*self.packages)
|
||||
|
||||
def upgrade_mercurial(self, current):
|
||||
self.yum_update('mercurial')
|
||||
|
|
|
@ -15,22 +15,7 @@ class FreeBSDBootstrapper(BaseBootstrapper):
|
|||
BaseBootstrapper.__init__(self)
|
||||
self.version = int(version.split('.')[0])
|
||||
|
||||
def pkg_install(self, *packages):
|
||||
if self.which('pkg'):
|
||||
command = ['pkg', 'install', '-x']
|
||||
command.extend([i[0] for i in packages])
|
||||
else:
|
||||
command = ['pkg_add', '-Fr']
|
||||
command.extend([i[-1] for i in packages])
|
||||
|
||||
self.run_as_root(command)
|
||||
|
||||
def install_system_packages(self):
|
||||
# using clang since 9.0
|
||||
if self.version < 9:
|
||||
self.pkg_install(('gcc',))
|
||||
|
||||
self.pkg_install(
|
||||
self.packages = [
|
||||
('autoconf-2.13', 'autoconf213'),
|
||||
('dbus-glib',),
|
||||
('gmake',),
|
||||
|
@ -42,7 +27,26 @@ class FreeBSDBootstrapper(BaseBootstrapper):
|
|||
('mercurial',),
|
||||
('pulseaudio',),
|
||||
('yasm',),
|
||||
('zip',))
|
||||
('zip',),
|
||||
]
|
||||
|
||||
# using clang since 9.0
|
||||
if self.version < 9:
|
||||
self.packages.append(('gcc',))
|
||||
|
||||
|
||||
def pkg_install(self, *packages):
|
||||
if self.which('pkg'):
|
||||
command = ['pkg', 'install', '-x']
|
||||
command.extend([i[0] for i in packages])
|
||||
else:
|
||||
command = ['pkg_add', '-Fr']
|
||||
command.extend([i[-1] for i in packages])
|
||||
|
||||
self.run_as_root(command)
|
||||
|
||||
def install_system_packages(self):
|
||||
self.pkg_install(*self.packages)
|
||||
|
||||
def upgrade_mercurial(self, current):
|
||||
self.pkg_install('mercurial')
|
||||
|
|
|
@ -10,9 +10,7 @@ class OpenBSDBootstrapper(BaseBootstrapper):
|
|||
def __init__(self, version):
|
||||
BaseBootstrapper.__init__(self)
|
||||
|
||||
def install_system_packages(self):
|
||||
# we use -z because there's no other way to say "any autoconf-2.13"
|
||||
self.run_as_root(['pkg_add', '-z',
|
||||
self.packages = [
|
||||
'mercurial',
|
||||
'llvm',
|
||||
'autoconf-2.13',
|
||||
|
@ -26,4 +24,9 @@ class OpenBSDBootstrapper(BaseBootstrapper):
|
|||
'gtar',
|
||||
'wget',
|
||||
'unzip',
|
||||
'zip'])
|
||||
'zip',
|
||||
]
|
||||
|
||||
def install_system_packages(self):
|
||||
# we use -z because there's no other way to say "any autoconf-2.13"
|
||||
self.run_as_root(['pkg_add', '-z'] + self.packages)
|
||||
|
|
Загрузка…
Ссылка в новой задаче