diff --git a/docs/browser-builds.md b/docs/browser-builds.md index 7a4091e..d1cd6fb 100644 --- a/docs/browser-builds.md +++ b/docs/browser-builds.md @@ -52,15 +52,29 @@ Run the first desktop configure probe: AMPB_DESKTOP_BUILD_PROBE_MODE=configure sh tools/browser-desktop-build-probe.sh ``` +Run the first desktop source build: + +```sh +AMPB_DESKTOP_BUILD_PROBE_MODE=build sh tools/browser-desktop-build-probe.sh +``` + +The default `source` flavor is the verified desktop path. Use +`AMPB_DESKTOP_BUILD_FLAVOR=artifact` only as a faster optional probe; it depends on +Mozilla artifact availability for the selected checkout. + The probe writes: -- `/tmp/ampb-browser-build/mozconfigs/desktop-debug.mozconfig` -- `/tmp/ampb-browser-build/obj/gecko-desktop-debug` -- `/tmp/ampb-browser-build/logs/gecko-desktop-mach-help.log` -- `/tmp/ampb-browser-build/logs/gecko-desktop-mach-configure.log` +- `/tmp/ampb-browser-build/mozconfigs/desktop-source.mozconfig` +- `/tmp/ampb-browser-build/obj/gecko-desktop-source` +- `/tmp/ampb-browser-build/logs/gecko-desktop-source-mach-help.log` +- `/tmp/ampb-browser-build/logs/gecko-desktop-source-mach-configure.log` +- `/tmp/ampb-browser-build/logs/gecko-desktop-source-mach-build.log` -Configure mode may install Mozilla build Python helpers such as `zstandard` into mach -virtualenvs under `/tmp/ampb-browser-build/cache/mozbuild`. +A successful source build produces a bundled app at +`/tmp/ampb-browser-build/obj/gecko-desktop-source/dist/Nightly.app`. + +Configure and build modes may install Mozilla build Python helpers such as `zstandard` +into mach virtualenvs under `/tmp/ampb-browser-build/cache/mozbuild`. ## Source Plan diff --git a/docs/desktop-vertical.md b/docs/desktop-vertical.md index 8bdaa61..9bfc287 100644 --- a/docs/desktop-vertical.md +++ b/docs/desktop-vertical.md @@ -14,12 +14,16 @@ Use the external build workspace: ```sh sh tools/browser-build-workspace.sh sh tools/browser-source-sync.sh -AMPB_DESKTOP_BUILD_PROBE_MODE=configure sh tools/browser-desktop-build-probe.sh +AMPB_DESKTOP_BUILD_PROBE_MODE=build sh tools/browser-desktop-build-probe.sh ``` The desktop probe keeps Gecko source, object files, downloaded toolchains, Python virtualenvs, pip cache, and logs under `/tmp/ampb-browser-build`. +The default build flavor is the verified source build. Use +`AMPB_DESKTOP_BUILD_FLAVOR=artifact` only as a faster optional probe when upstream +artifacts are available for the selected checkout. + ## Transport Path The first transport target is Tor through an AMPB-owned Arti/Tor runtime. The desktop diff --git a/tools/browser-desktop-build-probe.sh b/tools/browser-desktop-build-probe.sh index b859f2b..5a9e43f 100644 --- a/tools/browser-desktop-build-probe.sh +++ b/tools/browser-desktop-build-probe.sh @@ -4,9 +4,10 @@ set -eu root="${AMPB_BROWSER_BUILD_ROOT:-/tmp/ampb-browser-build}" gecko_dir="$root/src/gecko-dev" mode="${AMPB_DESKTOP_BUILD_PROBE_MODE:-help}" -log="$root/logs/gecko-desktop-mach-${mode}.log" -mozconfig="$root/mozconfigs/desktop-debug.mozconfig" -objdir="$root/obj/gecko-desktop-debug" +flavor="${AMPB_DESKTOP_BUILD_FLAVOR:-source}" +log="$root/logs/gecko-desktop-${flavor}-mach-${mode}.log" +mozconfig="$root/mozconfigs/desktop-${flavor}.mozconfig" +objdir="$root/obj/gecko-desktop-${flavor}" if [ ! -d "$gecko_dir" ]; then printf 'missing gecko checkout: %s\n' "$gecko_dir" >&2 @@ -26,9 +27,17 @@ mk_add_options MOZ_OBJDIR=$objdir ac_add_options --enable-application=browser ac_add_options --disable-crashreporter ac_add_options --disable-debug -ac_add_options --enable-optimize EOF +if [ "$flavor" = "artifact" ]; then + printf '%s\n' 'ac_add_options --enable-artifact-builds' >>"$mozconfig" +elif [ "$flavor" != "source" ]; then + printf 'unsupported AMPB_DESKTOP_BUILD_FLAVOR: %s\n' "$flavor" >&2 + exit 2 +else + printf '%s\n' 'ac_add_options --enable-optimize' >>"$mozconfig" +fi + cd "$gecko_dir" mach_env() { @@ -59,10 +68,15 @@ case "$mode" in ensure_zstandard mach_env ./mach configure >"$log" 2>&1 ;; + build) + mach_env ./mach build --help >/dev/null 2>&1 + ensure_zstandard + mach_env ./mach build >"$log" 2>&1 + ;; *) printf 'unsupported AMPB_DESKTOP_BUILD_PROBE_MODE: %s\n' "$mode" >&2 exit 2 ;; esac -printf 'AMPB_DESKTOP_BUILD_PROBE status=ok mode=%s mozconfig=%s objdir=%s log=%s\n' "$mode" "$mozconfig" "$objdir" "$log" +printf 'AMPB_DESKTOP_BUILD_PROBE status=ok mode=%s flavor=%s mozconfig=%s objdir=%s log=%s\n' "$mode" "$flavor" "$mozconfig" "$objdir" "$log" diff --git a/tools/browser-source-plan.sh b/tools/browser-source-plan.sh index 7891e3b..abb0cd6 100644 --- a/tools/browser-source-plan.sh +++ b/tools/browser-source-plan.sh @@ -16,5 +16,5 @@ printf 'AMPB_TOR_BROWSER_BUILD_REPO=%s\n' "$tor_build_repo" printf 'AMPB_TOR_BROWSER_BUILD_DIR=%s\n' "$root/src/tor-browser-build" printf 'AMPB_GRADLE_USER_HOME=%s\n' "$root/cache/gradle" printf 'AMPB_MOZBUILD_STATE_PATH=%s\n' "$root/cache/mozbuild" -printf 'AMPB_DESKTOP_BUILD_LOG=%s\n' "$root/logs/gecko-desktop-mach-help.log" +printf 'AMPB_DESKTOP_BUILD_LOG=%s\n' "$root/logs/gecko-desktop-source-mach-build.log" printf 'AMPB_ANDROID_BUILD_LOG=%s\n' "$root/logs/gecko-android-mach-probe.log"