Bug 1767204 - NetBSD Bootstrapper r=firefox-build-system-reviewers,glandium,ahochheiden

Differential Revision: https://phabricator.services.mozilla.com/D145186
This commit is contained in:
Nicklas Boman 2022-05-26 20:49:45 +00:00
parent d32f90fe46
commit 0832272ff8
4 changed files with 21 additions and 9 deletions

View File

@ -211,7 +211,7 @@ class Bootstrapper(object):
cls = OpenBSDBootstrapper
args["version"] = platform.uname()[2]
elif sys.platform.startswith("dragonfly") or sys.platform.startswith("freebsd"):
elif sys.platform.startswith(("dragonfly", "freebsd", "netbsd")):
cls = FreeBSDBootstrapper
args["version"] = platform.release()
args["flavor"] = platform.system()
@ -221,7 +221,6 @@ class Bootstrapper(object):
cls = MozillaBuildBootstrapper
else:
cls = WindowsBootstrapper
if cls is None:
raise NotImplementedError(
"Bootstrap support is not yet available " "for your OS."

View File

@ -18,8 +18,9 @@ class FreeBSDBootstrapper(BaseBootstrapper):
self.packages = [
"gmake",
"gtar",
"m4",
"pkgconf",
"py%s%s-sqlite3" % sys.version_info[0:2],
"py%d%d-sqlite3" % sys.version_info[0:2],
"rust",
"watchman",
"zip",
@ -27,12 +28,9 @@ class FreeBSDBootstrapper(BaseBootstrapper):
self.browser_packages = [
"dbus-glib",
"gtk3",
"libXt",
"mesa-dri", # depends on llvm*
"nasm",
"pulseaudio",
"v4l_compat",
]
if not which("as"):
@ -42,7 +40,10 @@ class FreeBSDBootstrapper(BaseBootstrapper):
self.packages.append("unzip")
def pkg_install(self, *packages):
command = ["pkg", "install"]
if sys.platform.startswith("netbsd"):
command = ["pkgin", "install"]
else:
command = ["pkg", "install"]
if self.no_interactive:
command.append("-y")
@ -54,7 +55,12 @@ class FreeBSDBootstrapper(BaseBootstrapper):
def install_browser_packages(self, mozconfig_builder, artifact_mode=False):
# TODO: Figure out what not to install for artifact mode
self.pkg_install(*self.browser_packages)
packages = self.browser_packages.copy()
if sys.platform.startswith("netbsd"):
packages.extend(["brotli", "gtk3+", "libv4l"])
else:
packages.extend(["gtk3", "mesa-dri", "v4l_compat"])
self.pkg_install(*packages)
def install_browser_artifact_mode_packages(self, mozconfig_builder):
self.install_browser_packages(mozconfig_builder, artifact_mode=True)
@ -65,7 +71,10 @@ class FreeBSDBootstrapper(BaseBootstrapper):
def ensure_stylo_packages(self):
# Clang / llvm already installed as browser package
self.pkg_install("rust-cbindgen")
if sys.platform.startswith("netbsd"):
self.pkg_install("cbindgen")
else:
self.pkg_install("rust-cbindgen")
def ensure_nasm_packages(self):
# installed via install_browser_packages

View File

@ -26,6 +26,7 @@ RUSTUP_HASHES = {
"x86_64-apple-darwin": "39101feb178a7e3e4443b09b36338e794a9e00385e5f44a2f7789aefb91354a9",
"x86_64-unknown-linux-gnu": "ed7773edaf1d289656bdec2aacad12413b38ad0193fff54b2231f5140a4b07c5",
"x86_64-pc-windows-msvc": "a586cf9de3e4aa791fd5796b6a5f99ca05591ccef8bb94e53af5b69f0261fb03",
"x86_64-unknown-netbsd": "8b29918e765f2cec3b81a911652b164471c42f8f31241f7401bb89582d6a3ed5",
}
NO_PLATFORM = """
@ -64,6 +65,8 @@ def platform():
return "x86_64-unknown-linux-gnu"
elif sys.platform.startswith("freebsd"):
return "x86_64-unknown-freebsd"
elif sys.platform.startswith("netbsd"):
return "x86_64-unknown-netbsd"
return None

View File

@ -71,6 +71,7 @@ def install_moz_phab(command_context, force=False):
or sys.platform.startswith("openbsd")
or sys.platform.startswith("dragonfly")
or sys.platform.startswith("freebsd")
or sys.platform.startswith("netbsd")
):
# On all Linux and BSD distros we consider doing a user installation.
platform_prefers_user_install = True