Bug 1372697 - Establish per repo mozconfigs for Fennec; r?glandium
Currently, uplift day activities rewrite "nightly" mozconfig files.
This is a sub-optimal practice for a few reasons. First, it
conflates the term "nightly." Second, it prevents us from performing
a representative beta/release configuration on a mozilla-central
changeset. Third, it modifies code as part of branching, which feels
wrong. Fourth, it is different from what we do for Firefox (where we
have per repo mozconfigs).
For the reasons above, this commit establishes mozconfig variations
for beta and release builds and l10n packaging for mobile/android.
The existing "nightly" mozconfigs were copied to a common file and
the repo-specific bits were extracts out.
central_to_beta.py and beta_to_release.py no longer modify mozconfigs
as part of uplift day activities. Repo overrides to define the
mozconfigs have been added to branch_specifics.py.
There is still a lot of improvement that can be made. For example, lots
of the logic from mozharness configs can be moved into taskgraph. We
can also parameterize the build configuration via environment variables,
also via taskgraph. This commit gets mobile/android on parity with
browser/ and sets us up for future refactoring.
MozReview-Commit-ID: 3IbgWLCnWEm
new file mode 100644
--- /dev/null
+++ b/mobile/android/config/mozconfigs/android-aarch64/beta
@@ -0,0 +1,3 @@
+ac_add_options --with-branding=mobile/android/branding/beta
+
+. "$topsrcdir/mobile/android/config/mozconfigs/android-aarch64/common"
new file mode 100644
--- /dev/null
+++ b/mobile/android/config/mozconfigs/android-aarch64/beta-l10n
@@ -0,0 +1,4 @@
+ac_add_options --with-l10n-base=../../mozilla-beta
+ac_add_options --with-branding=mobile/android/branding/beta
+
+. "$topsrcdir/mobile/android/config/mozconfigs/android-aarch64/l10n.common"
copy from mobile/android/config/mozconfigs/android-aarch64/nightly
copy to mobile/android/config/mozconfigs/android-aarch64/common
--- a/mobile/android/config/mozconfigs/android-aarch64/nightly
+++ b/mobile/android/config/mozconfigs/android-aarch64/common
@@ -1,18 +1,14 @@
. "$topsrcdir/mobile/android/config/mozconfigs/common"
-ac_add_options --enable-profiling
-
# Android
ac_add_options --with-android-min-sdk=21
ac_add_options --target=aarch64-linux-android
-ac_add_options --with-branding=mobile/android/branding/nightly
-
# This will overwrite the default of stripping everything and keep the symbol table.
# This is useful for profiling with eideticker. See bug 788680
STRIP_FLAGS="--strip-debug"
export MOZILLA_OFFICIAL=1
export MOZ_TELEMETRY_REPORTING=1
. "$topsrcdir/mobile/android/config/mozconfigs/common.override"
copy from mobile/android/config/mozconfigs/android-aarch64/nightly-l10n
copy to mobile/android/config/mozconfigs/android-aarch64/l10n.common
--- a/mobile/android/config/mozconfigs/android-aarch64/nightly-l10n
+++ b/mobile/android/config/mozconfigs/android-aarch64/l10n.common
@@ -1,28 +1,23 @@
. "$topsrcdir/mobile/android/config/mozconfigs/common"
-# L10n
-ac_add_options --with-l10n-base=../../l10n-central
-
# Global options
ac_add_options --disable-tests
# Android
ac_add_options --with-android-min-sdk=21
ac_add_options --target=aarch64-linux-android
ac_add_options --with-system-zlib
ac_add_options --enable-updater
ac_add_options --enable-update-channel=${MOZ_UPDATE_CHANNEL}
export MOZILLA_OFFICIAL=1
-ac_add_options --with-branding=mobile/android/branding/nightly
-
ac_add_options --disable-stdcxx-compat
# Don't autoclobber l10n, as this can lead to missing binaries and broken builds
# Bug 1283438
mk_add_options AUTOCLOBBER=
# Disable Keyfile Loading (and checks) since l10n doesn't need these keys
# This overrides the settings in the common android mozconfig
--- a/mobile/android/config/mozconfigs/android-aarch64/nightly
+++ b/mobile/android/config/mozconfigs/android-aarch64/nightly
@@ -1,18 +1,4 @@
-. "$topsrcdir/mobile/android/config/mozconfigs/common"
-
+ac_add_options --with-branding=mobile/android/branding/nightly
ac_add_options --enable-profiling
-# Android
-ac_add_options --with-android-min-sdk=21
-ac_add_options --target=aarch64-linux-android
-
-ac_add_options --with-branding=mobile/android/branding/nightly
-
-# This will overwrite the default of stripping everything and keep the symbol table.
-# This is useful for profiling with eideticker. See bug 788680
-STRIP_FLAGS="--strip-debug"
-
-export MOZILLA_OFFICIAL=1
-export MOZ_TELEMETRY_REPORTING=1
-
-. "$topsrcdir/mobile/android/config/mozconfigs/common.override"
+. "$topsrcdir/mobile/android/config/mozconfigs/android-aarch64/common"
--- a/mobile/android/config/mozconfigs/android-aarch64/nightly-l10n
+++ b/mobile/android/config/mozconfigs/android-aarch64/nightly-l10n
@@ -1,35 +1,4 @@
-. "$topsrcdir/mobile/android/config/mozconfigs/common"
-
-# L10n
ac_add_options --with-l10n-base=../../l10n-central
-
-# Global options
-ac_add_options --disable-tests
-
-# Android
-ac_add_options --with-android-min-sdk=21
-ac_add_options --target=aarch64-linux-android
-
-ac_add_options --with-system-zlib
-ac_add_options --enable-updater
-ac_add_options --enable-update-channel=${MOZ_UPDATE_CHANNEL}
-
-export MOZILLA_OFFICIAL=1
-
ac_add_options --with-branding=mobile/android/branding/nightly
-ac_add_options --disable-stdcxx-compat
-
-# Don't autoclobber l10n, as this can lead to missing binaries and broken builds
-# Bug 1283438
-mk_add_options AUTOCLOBBER=
-
-# Disable Keyfile Loading (and checks) since l10n doesn't need these keys
-# This overrides the settings in the common android mozconfig
-ac_add_options --without-mozilla-api-keyfile
-ac_add_options --without-adjust-sdk-keyfile
-ac_add_options --without-leanplum-sdk-keyfile
-# Similarly explicitly disable install tracking for l10n, we'll inherit from en-US
-export MOZ_INSTALL_TRACKING=
-
-. "$topsrcdir/mobile/android/config/mozconfigs/common.override"
+. "$topsrcdir/mobile/android/config/mozconfigs/android-aarch64/l10n.common"
new file mode 100644
--- /dev/null
+++ b/mobile/android/config/mozconfigs/android-aarch64/release
@@ -0,0 +1,3 @@
+ac_add_options --with-branding=mobile/android/branding/official
+
+. "$topsrcdir/mobile/android/config/mozconfigs/android-aarch64/common"
new file mode 100644
--- /dev/null
+++ b/mobile/android/config/mozconfigs/android-aarch64/release-l10n
@@ -0,0 +1,4 @@
+ac_add_options --with-l10n-base=../../mozilla-release
+ac_add_options --with-branding=mobile/android/branding/official
+
+. "$topsrcdir/mobile/android/config/mozconfigs/android-aarch64/l10n.common"
new file mode 100644
--- /dev/null
+++ b/mobile/android/config/mozconfigs/android-api-15/beta
@@ -0,0 +1,3 @@
+ac_add_options --with-branding=mobile/android/branding/beta
+
+. "$topsrcdir/mobile/android/config/mozconfigs/android-api-15/common"
new file mode 100644
--- /dev/null
+++ b/mobile/android/config/mozconfigs/android-api-15/beta-l10n
@@ -0,0 +1,4 @@
+ac_add_options --with-l10n-base=../../mozilla-beta
+ac_add_options --with-branding=mobile/android/branding/beta
+
+. "$topsrcdir/mobile/android/config/mozconfigs/android-api-15/l10n.common"
copy from mobile/android/config/mozconfigs/android-api-15/nightly
copy to mobile/android/config/mozconfigs/android-api-15/common
--- a/mobile/android/config/mozconfigs/android-api-15/nightly
+++ b/mobile/android/config/mozconfigs/android-api-15/common
@@ -1,18 +1,14 @@
. "$topsrcdir/mobile/android/config/mozconfigs/common"
-ac_add_options --enable-profiling
-
# Android
ac_add_options --with-android-min-sdk=15
ac_add_options --target=arm-linux-androideabi
-ac_add_options --with-branding=mobile/android/branding/nightly
-
# This will overwrite the default of stripping everything and keep the symbol table.
# This is useful for profiling with eideticker. See bug 788680
STRIP_FLAGS="--strip-debug"
export MOZILLA_OFFICIAL=1
export MOZ_TELEMETRY_REPORTING=1
export MOZ_ANDROID_MMA=1
copy from mobile/android/config/mozconfigs/android-api-15/nightly-l10n
copy to mobile/android/config/mozconfigs/android-api-15/l10n.common
--- a/mobile/android/config/mozconfigs/android-api-15/nightly-l10n
+++ b/mobile/android/config/mozconfigs/android-api-15/l10n.common
@@ -1,28 +1,23 @@
. "$topsrcdir/mobile/android/config/mozconfigs/common"
-# L10n
-ac_add_options --with-l10n-base=../../l10n-central
-
# Global options
ac_add_options --disable-tests
# Android
ac_add_options --with-android-min-sdk=15
ac_add_options --target=arm-linux-androideabi
ac_add_options --with-system-zlib
ac_add_options --enable-updater
ac_add_options --enable-update-channel=${MOZ_UPDATE_CHANNEL}
export MOZILLA_OFFICIAL=1
-ac_add_options --with-branding=mobile/android/branding/nightly
-
ac_add_options --disable-stdcxx-compat
# Don't autoclobber l10n, as this can lead to missing binaries and broken builds
# Bug 1283438
mk_add_options AUTOCLOBBER=
# Disable Keyfile Loading (and checks) since l10n doesn't need these keys
# This overrides the settings in the common android mozconfig
--- a/mobile/android/config/mozconfigs/android-api-15/nightly
+++ b/mobile/android/config/mozconfigs/android-api-15/nightly
@@ -1,19 +1,4 @@
-. "$topsrcdir/mobile/android/config/mozconfigs/common"
-
+ac_add_options --with-branding=mobile/android/branding/nightly
ac_add_options --enable-profiling
-# Android
-ac_add_options --with-android-min-sdk=15
-ac_add_options --target=arm-linux-androideabi
-
-ac_add_options --with-branding=mobile/android/branding/nightly
-
-# This will overwrite the default of stripping everything and keep the symbol table.
-# This is useful for profiling with eideticker. See bug 788680
-STRIP_FLAGS="--strip-debug"
-
-export MOZILLA_OFFICIAL=1
-export MOZ_TELEMETRY_REPORTING=1
-export MOZ_ANDROID_MMA=1
-
-. "$topsrcdir/mobile/android/config/mozconfigs/common.override"
+. "$topsrcdir/mobile/android/config/mozconfigs/android-api-15/common"
--- a/mobile/android/config/mozconfigs/android-api-15/nightly-l10n
+++ b/mobile/android/config/mozconfigs/android-api-15/nightly-l10n
@@ -1,35 +1,4 @@
-. "$topsrcdir/mobile/android/config/mozconfigs/common"
-
-# L10n
ac_add_options --with-l10n-base=../../l10n-central
-
-# Global options
-ac_add_options --disable-tests
-
-# Android
-ac_add_options --with-android-min-sdk=15
-ac_add_options --target=arm-linux-androideabi
-
-ac_add_options --with-system-zlib
-ac_add_options --enable-updater
-ac_add_options --enable-update-channel=${MOZ_UPDATE_CHANNEL}
-
-export MOZILLA_OFFICIAL=1
-
ac_add_options --with-branding=mobile/android/branding/nightly
-ac_add_options --disable-stdcxx-compat
-
-# Don't autoclobber l10n, as this can lead to missing binaries and broken builds
-# Bug 1283438
-mk_add_options AUTOCLOBBER=
-
-# Disable Keyfile Loading (and checks) since l10n doesn't need these keys
-# This overrides the settings in the common android mozconfig
-ac_add_options --without-mozilla-api-keyfile
-ac_add_options --without-adjust-sdk-keyfile
-ac_add_options --without-leanplum-sdk-keyfile
-# Similarly explicitly disable install tracking for l10n, we'll inherit from en-US
-export MOZ_INSTALL_TRACKING=
-
-. "$topsrcdir/mobile/android/config/mozconfigs/common.override"
+. "$topsrcdir/mobile/android/config/mozconfigs/android-api-15/l10n.common"
new file mode 100644
--- /dev/null
+++ b/mobile/android/config/mozconfigs/android-api-15/release
@@ -0,0 +1,3 @@
+ac_add_options --with-branding=mobile/android/branding/official
+
+. "$topsrcdir/mobile/android/config/mozconfigs/android-api-15/common"
new file mode 100644
--- /dev/null
+++ b/mobile/android/config/mozconfigs/android-api-15/release-l10n
@@ -0,0 +1,4 @@
+ac_add_options --with-l10n-base=../../mozilla-release
+ac_add_options --with-branding=mobile/android/branding/official
+
+. "$topsrcdir/mobile/android/config/mozconfigs/android-api-15/l10n.common"
new file mode 100644
--- /dev/null
+++ b/mobile/android/config/mozconfigs/android-x86/beta
@@ -0,0 +1,3 @@
+ac_add_options --with-branding=mobile/android/branding/official
+
+. "$topsrcdir/mobile/android/config/mozconfigs/android-x86/common"
copy from mobile/android/config/mozconfigs/android-x86/nightly
copy to mobile/android/config/mozconfigs/android-x86/common
--- a/mobile/android/config/mozconfigs/android-x86/nightly
+++ b/mobile/android/config/mozconfigs/android-x86/common
@@ -1,17 +1,13 @@
. "$topsrcdir/mobile/android/config/mozconfigs/common"
ac_add_options --target=i386-linux-android
ac_add_options --with-android-min-sdk=15
-ac_add_options --enable-profiling
-
-ac_add_options --with-branding=mobile/android/branding/nightly
-
# This will overwrite the default of stripping everything and keep the symbol table.
# This is useful for profiling with eideticker. See bug 788680
STRIP_FLAGS="--strip-debug"
export MOZILLA_OFFICIAL=1
export MOZ_TELEMETRY_REPORTING=1
. "$topsrcdir/mobile/android/config/mozconfigs/common.override"
--- a/mobile/android/config/mozconfigs/android-x86/nightly
+++ b/mobile/android/config/mozconfigs/android-x86/nightly
@@ -1,17 +1,4 @@
-. "$topsrcdir/mobile/android/config/mozconfigs/common"
-
-ac_add_options --target=i386-linux-android
-ac_add_options --with-android-min-sdk=15
-
+ac_add_options --with-branding=mobile/android/branding/nightly
ac_add_options --enable-profiling
-ac_add_options --with-branding=mobile/android/branding/nightly
-
-# This will overwrite the default of stripping everything and keep the symbol table.
-# This is useful for profiling with eideticker. See bug 788680
-STRIP_FLAGS="--strip-debug"
-
-export MOZILLA_OFFICIAL=1
-export MOZ_TELEMETRY_REPORTING=1
-
-. "$topsrcdir/mobile/android/config/mozconfigs/common.override"
+. "$topsrcdir/mobile/android/config/mozconfigs/android-x86/common"
new file mode 100644
--- /dev/null
+++ b/mobile/android/config/mozconfigs/android-x86/release
@@ -0,0 +1,3 @@
+ac_add_options --with-branding=mobile/android/branding/official
+
+. "$topsrcdir/mobile/android/config/mozconfigs/android-x86/common"
--- a/testing/mozharness/configs/builds/branch_specifics.py
+++ b/testing/mozharness/configs/builds/branch_specifics.py
@@ -116,16 +116,28 @@ config = {
'update_channel': 'default',
},
'win64-debug': {
'update_channel': 'default',
},
'win64-add-on-devel': {
'update_channel': 'default',
},
+ 'android-aarch64': {
+ 'src_mozconfig': 'mobile/android/config/mozconfigs/android-aarch64/release',
+ 'l10n_mozconfig': 'mobile/android/config/mozconfigs/android-aarch64/release-l10n',
+ },
+ 'android-api-15': {
+ 'src_mozconfig': 'mobile/android/config/mozconfigs/android-api-15/release',
+ 'l10n_mozconfig': 'mobile/android/config/mozconfigs/android-api-15/release-l10n',
+ },
+ 'android-x86': {
+ 'src_mozconfig': 'mobile/android/config/mozconfigs/android-x86/release',
+ 'l10n_mozconfig': 'mobile/android/config/mozconfigs/android-x86/release-l10n',
+ },
},
},
'mozilla-beta': {
'enable_release_promotion': 1,
'repo_path': 'releases/mozilla-beta',
'update_channel': 'beta',
'branch_uses_per_checkin_strategy': True,
'stage_server': 'upload.ffxbld.productdelivery.prod.mozaws.net',
@@ -210,16 +222,28 @@ config = {
'update_channel': 'default',
},
'win64-debug': {
'update_channel': 'default',
},
'win64-add-on-devel': {
'update_channel': 'default',
},
+ 'android-aarch64': {
+ 'src_mozconfig': 'mobile/android/config/mozconfigs/android-aarch64/beta',
+ 'l10n_mozconfig': 'mobile/android/config/mozconfigs/android-aarch64/beta-l10n',
+ },
+ 'android-api-15': {
+ 'src_mozconfig': 'mobile/android/config/mozconfigs/android-api-15/beta',
+ 'l10n_mozconfig': 'mobile/android/config/mozconfigs/android-api-15/beta-l10n',
+ },
+ 'android-x86': {
+ 'src_mozconfig': 'mobile/android/config/mozconfigs/android-x86/beta',
+ 'l10n_mozconfig': 'mobile/android/config/mozconfigs/android-x86/beta-l10n',
+ },
},
},
'mozilla-aurora': {
'repo_path': 'releases/mozilla-aurora',
'update_channel': 'aurora',
'branch_uses_per_checkin_strategy': True,
'stage_server': 'upload.ffxbld.productdelivery.prod.mozaws.net',
},
--- a/testing/mozharness/configs/merge_day/beta_to_release.py
+++ b/testing/mozharness/configs/merge_day/beta_to_release.py
@@ -7,32 +7,16 @@ config = {
"copy_files": [
{
"src": "browser/config/version.txt",
"dst": "browser/config/version_display.txt",
},
],
"replacements": [
# File, from, to
- ("{}{}".format(d, f),
- "ac_add_options --with-branding=mobile/android/branding/beta",
- "ac_add_options --with-branding=mobile/android/branding/official")
- for d in ["mobile/android/config/mozconfigs/android-api-15/",
- "mobile/android/config/mozconfigs/android-x86/",
- "mobile/android/config/mozconfigs/android-aarch64/"]
- for f in ["nightly", "nightly-l10n"]
- ] + [
- # File, from, to
- (f, "ac_add_options --with-l10n-base=../../mozilla-beta",
- "ac_add_options --with-l10n-base=../../mozilla-release")
- for f in ["mobile/android/config/mozconfigs/android-api-15/nightly-l10n",
- "mobile/android/config/mozconfigs/android-x86/nightly-l10n",
- "mobile/android/config/mozconfigs/android-aarch64/nightly-l10n"]
- ] + [
- # File, from, to
("browser/confvars.sh",
"ACCEPTED_MAR_CHANNEL_IDS=firefox-mozilla-beta,firefox-mozilla-release",
"ACCEPTED_MAR_CHANNEL_IDS=firefox-mozilla-release"),
("browser/confvars.sh",
"MAR_CHANNEL_ID=firefox-mozilla-beta",
"MAR_CHANNEL_ID=firefox-mozilla-release"),
],
--- a/testing/mozharness/configs/merge_day/central_to_beta.py
+++ b/testing/mozharness/configs/merge_day/central_to_beta.py
@@ -6,38 +6,16 @@ config = {
"log_name": "central_to_beta",
"version_files": [
{"file": "browser/config/version.txt", "suffix": ""},
{"file": "browser/config/version_display.txt", "suffix": "b1"},
{"file": "config/milestone.txt", "suffix": ""},
],
"replacements": [
# File, from, to
- ("{}{}".format(d, f),
- "ac_add_options --with-branding=mobile/android/branding/nightly",
- "ac_add_options --with-branding=mobile/android/branding/beta")
- for d in ["mobile/android/config/mozconfigs/android-api-15/",
- "mobile/android/config/mozconfigs/android-x86/",
- "mobile/android/config/mozconfigs/android-aarch64/"]
- for f in ["nightly", "nightly-l10n"]
- ] + [
- # File, from, to
- (f, "ac_add_options --with-l10n-base=../../l10n-central",
- "ac_add_options --with-l10n-base=../../mozilla-beta")
- for f in ["mobile/android/config/mozconfigs/android-api-15/nightly-l10n",
- "mobile/android/config/mozconfigs/android-x86/nightly-l10n",
- "mobile/android/config/mozconfigs/android-aarch64/nightly-l10n"]
- ] + [
- # File, from, to
- (f, "ac_add_options --enable-profiling", "") for f in
- ["mobile/android/config/mozconfigs/android-api-15/nightly",
- "mobile/android/config/mozconfigs/android-x86/nightly",
- "mobile/android/config/mozconfigs/android-aarch64/nightly",]
- ] + [
- # File, from, to
("browser/confvars.sh",
"ACCEPTED_MAR_CHANNEL_IDS=firefox-mozilla-central",
"ACCEPTED_MAR_CHANNEL_IDS=firefox-mozilla-beta,firefox-mozilla-release"),
("browser/confvars.sh",
"MAR_CHANNEL_ID=firefox-mozilla-central",
"MAR_CHANNEL_ID=firefox-mozilla-beta"),
] + [
# File, from, to