diff options
Diffstat (limited to 'python/mozboot/mozboot/linux_common.py')
-rw-r--r-- | python/mozboot/mozboot/linux_common.py | 93 |
1 files changed, 93 insertions, 0 deletions
diff --git a/python/mozboot/mozboot/linux_common.py b/python/mozboot/mozboot/linux_common.py new file mode 100644 index 0000000000..c6751d333b --- /dev/null +++ b/python/mozboot/mozboot/linux_common.py @@ -0,0 +1,93 @@ +# This Source Code Form is subject to the terms of the Mozilla Public +# License, v. 2.0. If a copy of the MPL was not distributed with this +# file, You can obtain one at http://mozilla.org/MPL/2.0/. + +# An easy way for distribution-specific bootstrappers to share the code +# needed to install Stylo and Node dependencies. This class must come before +# BaseBootstrapper in the inheritance list. + +import platform + + +def is_non_x86_64(): + return platform.machine() != "x86_64" + + +class MobileAndroidBootstrapper(object): + def __init__(self, **kwargs): + pass + + def install_mobile_android_packages(self, mozconfig_builder, artifact_mode=False): + from mozboot import android + + os_arch = platform.machine() + android.ensure_android( + "linux", + os_arch, + artifact_mode=artifact_mode, + no_interactive=self.no_interactive, + ) + android.ensure_android( + "linux", + os_arch, + artifact_mode=artifact_mode, + no_interactive=self.no_interactive, + system_images_only=True, + avd_manifest_path=android.AVD_MANIFEST_X86_64, + ) + android.ensure_android( + "linux", + os_arch, + artifact_mode=artifact_mode, + no_interactive=self.no_interactive, + system_images_only=True, + avd_manifest_path=android.AVD_MANIFEST_ARM, + ) + + def install_mobile_android_artifact_mode_packages(self, mozconfig_builder): + self.install_mobile_android_packages(mozconfig_builder, artifact_mode=True) + + def ensure_mobile_android_packages(self): + from mozboot import android + + android.ensure_java("linux", platform.machine()) + self.install_toolchain_artifact(android.LINUX_X86_64_ANDROID_AVD) + self.install_toolchain_artifact(android.LINUX_ARM_ANDROID_AVD) + + def generate_mobile_android_mozconfig(self, artifact_mode=False): + from mozboot import android + + return android.generate_mozconfig("linux", artifact_mode=artifact_mode) + + def generate_mobile_android_artifact_mode_mozconfig(self): + return self.generate_mobile_android_mozconfig(artifact_mode=True) + + +class LinuxBootstrapper(MobileAndroidBootstrapper): + def __init__(self, **kwargs): + pass + + def ensure_sccache_packages(self): + pass + + def install_system_packages(self): + self.install_packages( + [ + "bash", + "findutils", # contains xargs + "gzip", + "libxml2", # used by bootstrapped clang + "m4", + "make", + "perl", + "tar", + "unzip", + "watchman", + ] + ) + + def install_browser_packages(self, mozconfig_builder, artifact_mode=False): + pass + + def install_browser_artifact_mode_packages(self, mozconfig_builder): + pass |