Quoting Mitch from [1752835](https://bugzilla.mozilla.org/show_bug.cgi?id=1752835#c5) for context. (In reply to Mitchell Hentges [:mhentges] 🦀 from comment #5) > I don't necessarily disagree, but (conveniently) the build team had a discussion about our options here last night. > The use cases we need to support: > * Developers building on `central`: use bootstrapping > * Developers building a specific release (you are here 😉): use bootstrapping > * Firefox CI doing releases: use "bootstrapping" (implemented as "fetches" in CI, but it's the same idea) > * Downstream packagers of Firefox: use system tools > * Developers building a specific release _to release as part of their distro_ (rare, but does happen): use system tools > > Options: > * [glandium] Assume "should bootstrap" if a VCS is involved - this is pretty implicit and a weak connection though, IMO > * [glandium] Assume "should bootstrap" if `./mach` is used instead of `./configure && make` - however, this restricts our ability to move to different "build backends" > * [mitch] Assume "should use bootstrapped tools" if `~/.mozbuild` is populated (so, if someone had manually run `./mach bootstrap`) > * [glandium] this forces the developer doing distro release builds to specify `--disable-bootstrap` > * [mitch] I think that's an OK tradeoff? > * [glandium] Make `./mach bootstrap` automatically create/update `mozconfig` to add `--enable-bootstrap`, [remove bootstrap inference]? > * [mitch] This is blocked on `mozconfig` becoming declarative rather than an interpreted shell script, which isn't happening anytime soon Ultimately, there is no silver bullet solution that can support all use cases. Somebody either has to opt-in (`--enable-bootstrap`) or opt-out (`--disable-bootstrap`), so changing the default behavior here to support this use case just shifts the burden of manually writing a `mozconfig` elsewhere, which doesn't really solve anything. The default of if `--enable-bootstrap` is set or not is controlled by [this code](https://searchfox.org/mozilla-central/source/build/moz.configure/bootstrap.configure#22-34). To briefly summarize the current behavior: If you're on `mozilla-central` (aka nightly) and using a VCS (hg or git), `--enable-bootstrap` will be set by default. If you are in any other context (on `mozilla-release`, in `CI`, not using a `VCS`, etc.) `--enable-bootstrap` is not set and the build will attempt to use the system tools by default. If you are in one of the other contexts and do not want the build to attempt the system tools, you must add `ac_add_options --enable-bootstrap` to your `mozconfig`.
Bug 1744197 Comment 18 Edit History
Note: The actual edited comment in the bug view page will always show the original commenter’s name and original timestamp.
Quoting Mitch from [1752835](https://bugzilla.mozilla.org/show_bug.cgi?id=1752835#c5) for context. (In reply to Mitchell Hentges [:mhentges] 🦀 from comment #5) > I don't necessarily disagree, but (conveniently) the build team had a discussion about our options here last night. > The use cases we need to support: > * Developers building on `central`: use bootstrapping > * Developers building a specific release (you are here 😉): use bootstrapping > * Firefox CI doing releases: use "bootstrapping" (implemented as "fetches" in CI, but it's the same idea) > * Downstream packagers of Firefox: use system tools > * Developers building a specific release _to release as part of their distro_ (rare, but does happen): use system tools > > Options: > * [glandium] Assume "should bootstrap" if a VCS is involved - this is pretty implicit and a weak connection though, IMO > * [glandium] Assume "should bootstrap" if `./mach` is used instead of `./configure && make` - however, this restricts our ability to move to different "build backends" > * [mitch] Assume "should use bootstrapped tools" if `~/.mozbuild` is populated (so, if someone had manually run `./mach bootstrap`) > * [glandium] this forces the developer doing distro release builds to specify `--disable-bootstrap` > * [mitch] I think that's an OK tradeoff? > * [glandium] Make `./mach bootstrap` automatically create/update `mozconfig` to add `--enable-bootstrap`, [remove bootstrap inference]? > * [mitch] This is blocked on `mozconfig` becoming declarative rather than an interpreted shell script, which isn't happening anytime soon Ultimately, there is no silver bullet solution that can support all use cases. Somebody either has to opt-in (`--enable-bootstrap`) or opt-out (`--disable-bootstrap`), so changing the default behavior here to support this use case just shifts the burden of manually writing a `mozconfig` elsewhere, which doesn't really solve anything. The default of if `--enable-bootstrap` is set or not is controlled by [this code](https://searchfox.org/mozilla-central/source/build/moz.configure/bootstrap.configure#22-34). To briefly summarize the current behavior: If you're on `mozilla-central` (aka nightly) and using a VCS (hg or git), `--enable-bootstrap` will be set by default. If you are in any other context (on `mozilla-release`, in `CI`, not using a `VCS`, etc.) `--enable-bootstrap` is not set and the build will attempt to use the system tools by default. ### Workaround Add the following to your `mozconfig` file: ` ` ` ac_add_options --enable-bootstrap ` ` `
Quoting Mitch from [1752835](https://bugzilla.mozilla.org/show_bug.cgi?id=1752835#c5) for context. (In reply to Mitchell Hentges [:mhentges] 🦀 from comment #5) > I don't necessarily disagree, but (conveniently) the build team had a discussion about our options here last night. > The use cases we need to support: > * Developers building on `central`: use bootstrapping > * Developers building a specific release (you are here 😉): use bootstrapping > * Firefox CI doing releases: use "bootstrapping" (implemented as "fetches" in CI, but it's the same idea) > * Downstream packagers of Firefox: use system tools > * Developers building a specific release _to release as part of their distro_ (rare, but does happen): use system tools > > Options: > * [glandium] Assume "should bootstrap" if a VCS is involved - this is pretty implicit and a weak connection though, IMO > * [glandium] Assume "should bootstrap" if `./mach` is used instead of `./configure && make` - however, this restricts our ability to move to different "build backends" > * [mitch] Assume "should use bootstrapped tools" if `~/.mozbuild` is populated (so, if someone had manually run `./mach bootstrap`) > * [glandium] this forces the developer doing distro release builds to specify `--disable-bootstrap` > * [mitch] I think that's an OK tradeoff? > * [glandium] Make `./mach bootstrap` automatically create/update `mozconfig` to add `--enable-bootstrap`, [remove bootstrap inference]? > * [mitch] This is blocked on `mozconfig` becoming declarative rather than an interpreted shell script, which isn't happening anytime soon Ultimately, there is no silver bullet solution that can support all use cases. Somebody either has to opt-in (`--enable-bootstrap`) or opt-out (`--disable-bootstrap`), so changing the default behavior here to support this use case just shifts the burden of manually writing a `mozconfig` elsewhere, which doesn't really solve anything. The default of if `--enable-bootstrap` is set or not is controlled by [this code](https://searchfox.org/mozilla-central/source/build/moz.configure/bootstrap.configure#22-34). To briefly summarize the current behavior: If you're on `mozilla-central` (aka nightly) and using a VCS (hg or git), `--enable-bootstrap` will be set by default. If you are in any other context (on `mozilla-release`, in `CI`, not using a `VCS`, etc.) `--enable-bootstrap` is not set and the build will attempt to use the system tools by default. ----- ### Workaround Add the following to your `mozconfig` file: ` ` ` ac_add_options --enable-bootstrap ` ` `