Bug 1237342 - Drop support for Android API 14 from Firefox builds. r?nalexander draft
authorRichard Newman <rnewman@mozilla.com>
Wed, 06 Jan 2016 10:15:04 -0800
changeset 319377 60e5387bade0b1eac01d13f7a26b80c15fb4da26
parent 319374 cc103b8b1009effb6e4cc576174b70c0153c0b23
child 319378 cb801ae82ccd86031723b03ce88bdfd958f197cf
push id9018
push userrnewman@mozilla.com
push dateWed, 06 Jan 2016 18:15:14 +0000
reviewersnalexander
bugs1237342
milestone46.0a1
Bug 1237342 - Drop support for Android API 14 from Firefox builds. r?nalexander
mobile/android/app/base/build.gradle
mobile/android/app/build.gradle
mobile/android/b2gdroid/config/mozconfigs/common
mobile/android/config/mozconfigs/android-api-11/debug
mobile/android/config/mozconfigs/android-api-11/l10n-nightly
mobile/android/config/mozconfigs/android-api-11/l10n-release
mobile/android/config/mozconfigs/android-api-11/nightly
mobile/android/config/mozconfigs/android-api-11/release
mobile/android/confvars.sh
mobile/android/thirdparty/build.gradle
python/mozbuild/mozbuild/android_version_code.py
python/mozbuild/mozbuild/test/backend/common.py
python/mozbuild/mozbuild/test/test_android_version_code.py
--- a/mobile/android/app/base/build.gradle
+++ b/mobile/android/app/base/build.gradle
@@ -3,17 +3,17 @@ buildDir "${topobjdir}/gradle/build/mobi
 apply plugin: 'com.android.library'
 
 android {
     compileSdkVersion 23
     buildToolsVersion "23.0.1"
 
     defaultConfig {
         targetSdkVersion 22
-        minSdkVersion 14
+        minSdkVersion 15
         // Used by Robolectric based tests; see TestRunner.
         buildConfigField 'String', 'BUILD_DIR', "\"${project.buildDir}\""
     }
 
     compileOptions {
         sourceCompatibility JavaVersion.VERSION_1_7
         targetCompatibility JavaVersion.VERSION_1_7
     }
--- a/mobile/android/app/build.gradle
+++ b/mobile/android/app/build.gradle
@@ -3,17 +3,17 @@ buildDir "${topobjdir}/gradle/build/mobi
 apply plugin: 'com.android.application'
 
 android {
     compileSdkVersion 23
     buildToolsVersion "23.0.1"
 
     defaultConfig {
         targetSdkVersion 22
-        minSdkVersion 14 
+        minSdkVersion 15 
         applicationId mozconfig.substs.ANDROID_PACKAGE_NAME
         testApplicationId 'org.mozilla.roboexample.test'
         testInstrumentationRunner 'org.mozilla.gecko.FennecInstrumentationTestRunner'
     }
 
     compileOptions {
         sourceCompatibility JavaVersion.VERSION_1_7
         targetCompatibility JavaVersion.VERSION_1_7
--- a/mobile/android/b2gdroid/config/mozconfigs/common
+++ b/mobile/android/b2gdroid/config/mozconfigs/common
@@ -29,23 +29,23 @@ MOZ_SZIP_FLAGS="-D auto -f auto"
 
 ac_add_options --enable-elf-hack
 
 ANDROID_NDK_VERSION="r10e"
 ANDROID_NDK_VERSION_32BIT="r10c"
 
 # Build B2GDroid
 ac_add_options --enable-application=mobile/android/b2gdroid
-ac_add_options --with-android-min-sdk=14
+ac_add_options --with-android-min-sdk=15
 
 ac_add_options --with-android-ndk="$topsrcdir/android-ndk-r10e"
 ac_add_options --with-android-sdk="$topsrcdir/android-sdk-linux"
 
 ac_add_options --with-android-gnu-compiler-version=4.9
-ac_add_options --with-android-version=14
+ac_add_options --with-android-version=15
 ac_add_options --with-system-zlib
 ac_add_options --enable-update-channel=${MOZ_UPDATE_CHANNEL}
 
 # Treat warnings as errors in directories with FAIL_ON_WARNINGS.
 ac_add_options --enable-warnings-as-errors
 
 ac_add_options --with-mozilla-api-keyfile=/builds/mozilla-fennec-geoloc-api.key
 export SOCORRO_SYMBOL_UPLOAD_TOKEN_FILE=/builds/crash-stats-api.token
--- a/mobile/android/config/mozconfigs/android-api-11/debug
+++ b/mobile/android/config/mozconfigs/android-api-11/debug
@@ -1,15 +1,15 @@
 . "$topsrcdir/mobile/android/config/mozconfigs/common"
 
 # Global options
 ac_add_options --enable-debug
 
 # Android
-ac_add_options --with-android-min-sdk=14
+ac_add_options --with-android-min-sdk=15
 ac_add_options --target=arm-linux-androideabi
 
 export MOZILLA_OFFICIAL=1
 export MOZ_TELEMETRY_REPORTING=1
 
 ac_add_options --with-branding=mobile/android/branding/nightly
 
 # Treat warnings as errors (modulo ALLOW_COMPILER_WARNINGS).
--- a/mobile/android/config/mozconfigs/android-api-11/l10n-nightly
+++ b/mobile/android/config/mozconfigs/android-api-11/l10n-nightly
@@ -2,17 +2,17 @@
 
 # L10n
 ac_add_options --with-l10n-base=../../l10n-central
 
 # Global options
 ac_add_options --disable-tests
 
 # Android
-ac_add_options --with-android-min-sdk=14
+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
 export MOZ_DISABLE_GECKOVIEW=1
--- a/mobile/android/config/mozconfigs/android-api-11/l10n-release
+++ b/mobile/android/config/mozconfigs/android-api-11/l10n-release
@@ -2,17 +2,17 @@
 
 # L10n
 ac_add_options --with-l10n-base=..
 
 # Global options
 ac_add_options --disable-tests
 
 # Android
-ac_add_options --with-android-min-sdk=14
+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
 export MOZ_DISABLE_GECKOVIEW=1
--- a/mobile/android/config/mozconfigs/android-api-11/nightly
+++ b/mobile/android/config/mozconfigs/android-api-11/nightly
@@ -1,14 +1,14 @@
 . "$topsrcdir/mobile/android/config/mozconfigs/common"
 
 ac_add_options --enable-profiling
 
 # Android
-ac_add_options --with-android-min-sdk=14
+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"
 
--- a/mobile/android/config/mozconfigs/android-api-11/release
+++ b/mobile/android/config/mozconfigs/android-api-11/release
@@ -1,12 +1,12 @@
 . "$topsrcdir/mobile/android/config/mozconfigs/common"
 
 # Android
-ac_add_options --with-android-min-sdk=14
+ac_add_options --with-android-min-sdk=15
 ac_add_options --target=arm-linux-androideabi
 
 ac_add_options --with-branding=mobile/android/branding/beta
 
 ac_add_options --enable-updater
 
 export MOZILLA_OFFICIAL=1
 export MOZ_TELEMETRY_REPORTING=1
--- a/mobile/android/confvars.sh
+++ b/mobile/android/confvars.sh
@@ -8,19 +8,19 @@ MOZ_APP_VENDOR=Mozilla
 MOZ_APP_VERSION=$FIREFOX_VERSION
 MOZ_APP_VERSION_DISPLAY=$FIREFOX_VERSION_DISPLAY
 MOZ_APP_UA_NAME=Firefox
 
 MOZ_BRANDING_DIRECTORY=mobile/android/branding/unofficial
 MOZ_OFFICIAL_BRANDING_DIRECTORY=mobile/android/branding/official
 # MOZ_APP_DISPLAYNAME is set by branding/configure.sh
 
-# We support Android SDK version 14 and up by default.
+# We support Android SDK version 15 and up by default.
 # See the --enable-android-min-sdk and --enable-android-max-sdk arguments in configure.in.
-MOZ_ANDROID_MIN_SDK_VERSION=14
+MOZ_ANDROID_MIN_SDK_VERSION=15
 
 # There are several entry points into the Firefox application.  These are the names of some of the classes that are
 # listed in the Android manifest.  They are specified in here to avoid hard-coding them in source code files.
 MOZ_ANDROID_APPLICATION_CLASS=org.mozilla.gecko.GeckoApplication
 MOZ_ANDROID_BROWSER_INTENT_CLASS=org.mozilla.gecko.BrowserApp
 MOZ_ANDROID_SEARCH_INTENT_CLASS=org.mozilla.search.SearchActivity
 
 MOZ_SAFE_BROWSING=1
--- a/mobile/android/thirdparty/build.gradle
+++ b/mobile/android/thirdparty/build.gradle
@@ -3,17 +3,17 @@ buildDir "${topobjdir}/gradle/build/mobi
 apply plugin: 'com.android.library'
 
 android {
     compileSdkVersion 23
     buildToolsVersion "23.0.1"
 
     defaultConfig {
         targetSdkVersion 22
-        minSdkVersion 14
+        minSdkVersion 15
     }
 
     compileOptions {
         sourceCompatibility JavaVersion.VERSION_1_7
         targetCompatibility JavaVersion.VERSION_1_7
     }
 
     lintOptions {
--- a/python/mozbuild/mozbuild/android_version_code.py
+++ b/python/mozbuild/mozbuild/android_version_code.py
@@ -13,22 +13,22 @@ import time
 # build ID use the v1 version scheme.
 V1_CUTOFF = 20150801000000 # YYYYmmddHHMMSS
 
 def android_version_code_v0(buildid, cpu_arch=None, min_sdk=0, max_sdk=0):
     base = int(str(buildid)[:10])
     # None is interpreted as arm.
     if not cpu_arch or cpu_arch in ['armeabi', 'armeabi-v7a']:
         # Increment by MIN_SDK_VERSION -- this adds 9 to every build ID as a
-        # minimum.  Our split APK starts at 14.
+        # minimum.  Our split APK starts at 15.
         return base + min_sdk + 0
     elif cpu_arch in ['x86']:
         # Increment the version code by 3 for x86 builds so they are offered to
         # x86 phones that have ARM emulators, beating the 2-point advantage that
-        # the v14+ ARMv7 APK has.  If we change our splits in the future, we'll
+        # the v15+ ARMv7 APK has.  If we change our splits in the future, we'll
         # need to do this further still.
         return base + min_sdk + 3
     else:
         raise ValueError("Don't know how to compute android:versionCode "
                          "for CPU arch %s" % cpu_arch)
 
 def android_version_code_v1(buildid, cpu_arch=None, min_sdk=0, max_sdk=0):
     '''Generate a v1 android:versionCode.
@@ -50,21 +50,21 @@ def android_version_code_v1(buildid, cpu
     The bits labelled 'x', 'p', and 'g' are feature flags.
 
     The bit labelled 'x' is 1 if the build is for an x86 architecture and 0
     otherwise, which means the build is for an ARM architecture.  (Fennec no
     longer supports ARMv6, so ARM is equivalent to ARMv7 and above.)
 
     The bit labelled 'p' is a placeholder that is always 0 (for now).
 
-    The bit labelled 'g' is 1 if the build is an ARM build targeting API 14+
+    The bit labelled 'g' is 1 if the build is an ARM build targeting API 15+
     and 0 otherwise, which means the build targets Android API 9-10 (Gingerbread).
 
     Fennec no longer supports Android API 8 or earlier. After Bug 1155801 it
-    no longer supports API 11-13. API 9 is still supported due to significant usage.
+    no longer supports API 11-14. API 9 is still supported due to significant usage.
 
     We throw an explanatory exception when we are within one calendar year of
     running out of build events.  This gives lots of time to update the version
     scheme.  The responsible individual should then bump the range (to allow
     builds to continue) and use the time remaining to update the version scheme
     via the reserved high order bits.
 
     N.B.: the reserved 0 bit to the left of the highest order 't' bit can,
@@ -104,19 +104,19 @@ def android_version_code_v1(buildid, cpu
     # for architecture and APK splits.
     version |= base << 3
 
     # None is interpreted as arm.
     if not cpu_arch or cpu_arch in ['armeabi', 'armeabi-v7a']:
         # 0 is interpreted as SDK 9.
         if not min_sdk or min_sdk == 9:
             pass
-        # This used to compare to 11. The 14+ APK directly supersedes 11+, so
+        # This used to compare to 11. The 15+ APK directly supersedes 11+, so
         # we reuse this check.
-        elif min_sdk == 14:
+        elif min_sdk == 15:
             version |= 1 << 0
         else:
             raise ValueError("Don't know how to compute android:versionCode "
                              "for CPU arch %s and min SDK %s" % (cpu_arch, min_sdk))
     elif cpu_arch in ['x86']:
         version |= 1 << 2
     else:
         raise ValueError("Don't know how to compute android:versionCode "
--- a/python/mozbuild/mozbuild/test/backend/common.py
+++ b/python/mozbuild/mozbuild/test/backend/common.py
@@ -30,17 +30,17 @@ test_data_path = mozpath.join(test_data_
 
 CONFIGS = defaultdict(lambda: {
     'defines': [],
     'non_global_defines': [],
     'substs': [('OS_TARGET', 'WINNT')],
 }, {
     'android_eclipse': {
         'defines': [
-            ('MOZ_ANDROID_MIN_SDK_VERSION', '14'),
+            ('MOZ_ANDROID_MIN_SDK_VERSION', '15'),
         ],
         'non_global_defines': [],
         'substs': [
             ('ANDROID_TARGET_SDK', '16'),
         ],
     },
     'binary-components': {
         'defines': [],
--- a/python/mozbuild/mozbuild/test/test_android_version_code.py
+++ b/python/mozbuild/mozbuild/test/test_android_version_code.py
@@ -19,20 +19,20 @@ class TestAndroidVersionCode(unittest.Te
         x86_api9  = 2015070822
         self.assertEqual(android_version_code_v0(buildid, cpu_arch='armeabi', min_sdk=9, max_sdk=None), arm_api9)
         self.assertEqual(android_version_code_v0(buildid, cpu_arch='armeabi-v7a', min_sdk=11, max_sdk=None), arm_api11)
         self.assertEqual(android_version_code_v0(buildid, cpu_arch='x86', min_sdk=9, max_sdk=None), x86_api9)
 
     def test_android_version_code_v1(self):
         buildid = '20150825141628'
         arm_api9  = 0b01111000001000000001001001110000
-        arm_api14 = 0b01111000001000000001001001110001
+        arm_api15 = 0b01111000001000000001001001110001
         x86_api9  = 0b01111000001000000001001001110100
         self.assertEqual(android_version_code_v1(buildid, cpu_arch='armeabi', min_sdk=9, max_sdk=None), arm_api9)
-        self.assertEqual(android_version_code_v1(buildid, cpu_arch='armeabi-v7a', min_sdk=14, max_sdk=None), arm_api14)
+        self.assertEqual(android_version_code_v1(buildid, cpu_arch='armeabi-v7a', min_sdk=15, max_sdk=None), arm_api15)
         self.assertEqual(android_version_code_v1(buildid, cpu_arch='x86', min_sdk=9, max_sdk=None), x86_api9)
 
     def test_android_version_code_v1_underflow(self):
         '''Verify that it is an error to ask for v1 codes predating the cutoff.'''
         buildid = '201508010000' # Earliest possible.
         arm_api9 = 0b01111000001000000000000000000000
         self.assertEqual(android_version_code_v1(buildid, cpu_arch='armeabi', min_sdk=9, max_sdk=None), arm_api9)
         with self.assertRaises(ValueError) as cm: