Backed out 5 changesets (bug 1411688) for failing Android single-locale repacks. r=backout a=backout
authorCsoregi Natalia <ncsoregi@mozilla.com>
Mon, 06 Nov 2017 12:18:50 +0200
changeset 443526 a73e202ca31d30bc2b96418fa81d1096f8dc731e
parent 443512 179dae92e4d794e7f45ad080ff01908c80691f31
child 443527 8b9167b8a937e09f6673d4d7d693c6ac1c25a3d7
push id1618
push userCallek@gmail.com
push dateThu, 11 Jan 2018 17:45:48 +0000
treeherdermozilla-release@882ca853e05a [default view] [failures only]
perfherder[talos] [build metrics] [platform microbench] (compared to previous push)
reviewersbackout, backout
bugs1411688
milestone58.0a1
backs out65d5d13b4ea02a1997861b5fa14aaf3c52337da2
8ba514bd8ed6265d08ba97592111933ad2542546
866854a996b8671c8fbe1f7f6e2cfc3329727ae2
34f83aab44e6c0a68a448c3c10f61267c0eb649e
2e4e139bb5d7586ae8cb67bf2450dcaec4ba1255
first release with
nightly linux32
nightly linux64
nightly mac
nightly win32
nightly win64
last release without
nightly linux32
nightly linux64
nightly mac
nightly win32
nightly win64
Backed out 5 changesets (bug 1411688) for failing Android single-locale repacks. r=backout a=backout Backed out changeset 65d5d13b4ea0 (bug 1411688) Backed out changeset 8ba514bd8ed6 (bug 1411688) Backed out changeset 866854a996b8 (bug 1411688) Backed out changeset 34f83aab44e6 (bug 1411688) Backed out changeset 2e4e139bb5d7 (bug 1411688)
build.gradle
mobile/android/config/mozconfigs/android-aarch64/l10n-nightly
mobile/android/config/mozconfigs/android-api-16/l10n-nightly
mobile/android/config/mozconfigs/android-x86/l10n-nightly
mobile/android/geckoview/build.gradle
mobile/android/gradle/with_gecko_binaries.gradle
taskcluster/ci/l10n/kind.yml
taskcluster/ci/nightly-l10n/kind.yml
taskcluster/taskgraph/transforms/l10n.py
testing/mozharness/configs/single_locale/tc_android-api-16.py
testing/mozharness/scripts/mobile_l10n.py
toolkit/mozapps/installer/upload-files-APK.mk
--- a/build.gradle
+++ b/build.gradle
@@ -62,20 +62,16 @@ if ('multi' == System.env.AB_CD) {
     // Multi-l10n builds set `AB_CD=multi`, which isn't a valid locale.  This
     // causes the
     //
     // |mach build| > |mach gradle| > |make gradle-targets| > AndroidManifest.xml > strings.xml > multi/brand.dtd
     //
     // dependency chain to fail, since multi isn't a real locale.  To avoid
     // this, if Gradle is invoked with AB_CD=multi, we don't invoke Make at all.
     task generateCodeAndResources()
-} else if (System.env.IS_LANGUAGE_REPACK == '1') {
-    // Single-locale l10n repacks set `IS_LANGUAGE_REPACK=1` and handle resource
-    // and code generation themselves.
-    task generateCodeAndResources()
 } else {
     task generateCodeAndResources(type:Exec) {
         workingDir "${topobjdir}"
 
         commandLine mozconfig.substs.GMAKE
         args '-C'
         args "${topobjdir}/mobile/android/base"
         args 'gradle-targets'
--- a/mobile/android/config/mozconfigs/android-aarch64/l10n-nightly
+++ b/mobile/android/config/mozconfigs/android-aarch64/l10n-nightly
@@ -1,22 +1,40 @@
 NO_NDK=1
 
 . "$topsrcdir/mobile/android/config/mozconfigs/common"
 
-. "$topsrcdir/mobile/android/config/mozconfigs/android-aarch64/nightly"
-
 # L10n
 ac_add_options --with-l10n-base=../../l10n-central
 
-# Don't autoclobber l10n, as this can lead to missing binaries and broken builds
-# Bug 1283438
-mk_add_options AUTOCLOBBER=
-
 . "$topsrcdir/build/mozconfig.no-compile"
 
 # 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 --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-google-api-keyfile
+ac_add_options --without-adjust-sdk-keyfile
+ac_add_options --without-leanplum-sdk-keyfile
+ac_add_options --without-pocket-api-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"
--- a/mobile/android/config/mozconfigs/android-api-16/l10n-nightly
+++ b/mobile/android/config/mozconfigs/android-api-16/l10n-nightly
@@ -1,22 +1,45 @@
 NO_NDK=1
 
 . "$topsrcdir/mobile/android/config/mozconfigs/common"
 
-. "$topsrcdir/mobile/android/config/mozconfigs/android-api-16/nightly"
-
 # L10n
 ac_add_options --with-l10n-base=../../l10n-central
 
-# Don't autoclobber l10n, as this can lead to missing binaries and broken builds
-# Bug 1283438
-mk_add_options AUTOCLOBBER=
-
 . "$topsrcdir/build/mozconfig.no-compile"
 
 # Global options
 ac_add_options --disable-tests
 
+# Android
+# Warning: Before increasing the with-android-min-sdk value, please note several places in and out
+# of tree have to be changed. Otherwise, places like Treeherder or archive.mozilla.org will
+# advertise a bad API level. This may confuse people. As an example, please look at bug 1384482.
+# If you think you can't handle the whole set of changes, please reach out to the Release
+# Engineering team.
+ac_add_options --with-android-min-sdk=16
+ac_add_options --target=arm-linux-androideabi
+
 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-google-api-keyfile
+ac_add_options --without-adjust-sdk-keyfile
+ac_add_options --without-leanplum-sdk-keyfile
+ac_add_options --without-pocket-api-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"
--- a/mobile/android/config/mozconfigs/android-x86/l10n-nightly
+++ b/mobile/android/config/mozconfigs/android-x86/l10n-nightly
@@ -1,22 +1,35 @@
 NO_NDK=1
 
 . "$topsrcdir/mobile/android/config/mozconfigs/common"
 
-. "$topsrcdir/mobile/android/config/mozconfigs/android-x86/nightly"
-
 # L10n
 ac_add_options --with-l10n-base=../../l10n-central
 
-# Don't autoclobber l10n, as this can lead to missing binaries and broken builds
-# Bug 1283438
-mk_add_options AUTOCLOBBER=
-
 . "$topsrcdir/build/mozconfig.no-compile"
 
 # Global options
 ac_add_options --disable-tests
 
+# Android
+# Warning: Before increasing the with-android-min-sdk value, please note several places in and out
+# of tree have to be changed. Otherwise, places like Treeherder or archive.mozilla.org will
+# advertise a bad API level. This may confuse people. As an example, please look at bug 1384482.
+# If you think you can't handle the whole set of changes, please reach out to the Release
+# Engineering team.
+ac_add_options --target=i386-linux-android
+ac_add_options --with-android-min-sdk=16
+
 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=
+
 . "$topsrcdir/mobile/android/config/mozconfigs/common.override"
--- a/mobile/android/geckoview/build.gradle
+++ b/mobile/android/geckoview/build.gradle
@@ -50,18 +50,17 @@ android {
 
         versionCode computeVersionCode()
         versionName "${mozconfig.substs.MOZ_APP_VERSION}-${mozconfig.substs.MOZ_UPDATE_CHANNEL}"
         consumerProguardFiles 'proguard-rules.txt'
 
         // TODO: ensure these fields always agree with mobile/android/geckoview/BuildConfig.java.in,
         // either by diffing the processed files or by generating the output from a single source.
         buildConfigField 'String', "GRE_MILESTONE", "\"${mozconfig.substs.GRE_MILESTONE}\""
-        // This should really come from the included binaries, but that's not easy.
-        buildConfigField 'String', "MOZ_APP_ABI", mozconfig.substs['COMPILE_ENVIRONMENT'] ? "\"${ mozconfig.substs.TARGET_XPCOM_ABI}\"" : '"arm-eabi-gcc3"';
+        buildConfigField 'String', "MOZ_APP_ABI", "\"${mozconfig.substs.TARGET_XPCOM_ABI}\"";
         buildConfigField 'String', "MOZ_APP_BASENAME", "\"${mozconfig.substs.MOZ_APP_BASENAME}\"";
 
         // For the benefit of future archaeologists:
         // GRE_BUILDID is exactly the same as MOZ_APP_BUILDID unless you're running
         // on XULRunner, which is never the case on Android.
         // 
         // Mimic Python: open(os.path.join(buildconfig.topobjdir, 'buildid.h')).readline().split()[2]
         buildConfigField 'String', "MOZ_APP_BUILDID", "\"${file("${topobjdir}/buildid.h").getText('utf-8').split()[2]}\"";
--- a/mobile/android/gradle/with_gecko_binaries.gradle
+++ b/mobile/android/gradle/with_gecko_binaries.gradle
@@ -147,42 +147,35 @@ ext.configureVariantWithJNIWrappers = { 
     // by configuring the classpath at evaluation-time, not configuration-time.
     //
     // The specific dependency on the `prepareDependencies` task may not be
     // necessary, but commits like
     // https://github.com/evant/gradle-retrolambda/commit/15108c65ee43be499a1359d9d4f88b0851d46769
     // suggest that it is.  It certainly doesn't hurt.
     def prepareDependenciesTask = tasks.getByName("prepare${variant.name.capitalize()}Dependencies")
 
-    def wrapperTask
-    if (System.env.IS_LANGUAGE_REPACK == '1') {
-        // Single-locale l10n repacks set `IS_LANGUAGE_REPACK=1` and don't
-        // really have a build environment.
-        wrapperTask = task("generateJNIWrappersFor${module}${variant.name.capitalize()}")
-    } else {
-        wrapperTask = task("generateJNIWrappersFor${module}${variant.name.capitalize()}", type: JavaExec) {
-            classpath "${topobjdir}/build/annotationProcessors/annotationProcessors.jar"
-    
-            // Configure the classpath at evaluation-time, not at
-            // configuration-time: see above comment.
-            doFirst {
-                classpath variant.javaCompile.classpath
-                // Include android.jar.
-                classpath variant.javaCompile.options.bootClasspath
-            }
-    
-            main = 'org.mozilla.gecko.annotationProcessors.AnnotationProcessor'
-            args module
-            args jarTask.outputs.files.iterator().next()
-    
-            workingDir "${topobjdir}/mobile/android/base"
-    
-            dependsOn jarTask
-            dependsOn prepareDependenciesTask
+    def wrapperTask = task("generateJNIWrappersFor${module}${variant.name.capitalize()}", type: JavaExec) {
+        classpath "${topobjdir}/build/annotationProcessors/annotationProcessors.jar"
+
+        // Configure the classpath at evaluation-time, not at
+        // configuration-time: see above comment.
+        doFirst {
+            classpath variant.javaCompile.classpath
+            // Include android.jar.
+            classpath variant.javaCompile.options.bootClasspath
         }
+
+        main = 'org.mozilla.gecko.annotationProcessors.AnnotationProcessor'
+        args module
+        args jarTask.outputs.files.iterator().next()
+
+        workingDir "${topobjdir}/mobile/android/base"
+
+        dependsOn jarTask
+        dependsOn prepareDependenciesTask
     }
 
     if (module == 'Generated') {
         tasks["bundle${variant.name.capitalize()}"].dependsOn wrapperTask
     } else {
         tasks["assemble${variant.name.capitalize()}"].dependsOn wrapperTask
     }
 }
--- a/taskcluster/ci/l10n/kind.yml
+++ b/taskcluster/ci/l10n/kind.yml
@@ -41,20 +41,16 @@ job-template:
          android-api-16-l10n: 18000
    docker-image:
       by-build-platform:
          default:
            in-tree: desktop-build
          android-api-16-l10n:
            in-tree: android-build
          win.*: null
-   secrets:
-      by-build-platform:
-         default: false
-         android-api-16-l10n: true
    toolchains:
       by-build-platform:
          default: []
          android-api-16-l10n:
             - android-gradle-dependencies
             - android-sdk-linux
             - proguard-jar
    tooltool:
@@ -109,18 +105,17 @@ job-template:
                - total-chunks=1
                - this-chunk=1
             default:
                - total-chunks=1
                - this-chunk=1
       actions:
          by-build-platform:
             default: [clone-locales list-locales setup repack summary]
-            android-api-16-l10n: [get-secrets
-                                  clone-locales list-locales setup repack
+            android-api-16-l10n: [clone-locales list-locales setup repack
                                   upload-repacks summary]
       script:
          by-build-platform:
             default: mozharness/scripts/desktop_l10n.py
             android-api-16-l10n: mozharness/scripts/mobile_l10n.py
    when:
       files-changed:
          - browser/locales/l10n-changesets.json
--- a/taskcluster/ci/nightly-l10n/kind.yml
+++ b/taskcluster/ci/nightly-l10n/kind.yml
@@ -44,20 +44,16 @@ job-template:
          android-api-16-nightly: 18000
    docker-image:
       by-build-platform:
          default:
            in-tree: desktop-build
          android-api-16-nightly:
            in-tree: android-build
          win.*: null
-   secrets:
-      by-build-platform:
-         default: false
-         android-api-16-nightly: true
    toolchains:
       by-build-platform:
          default: []
          android-api-16-nightly:
             - android-gradle-dependencies
             - android-sdk-linux
             - proguard-jar
    tooltool:
@@ -170,15 +166,14 @@ job-template:
                - config=single_locale/tc_win64.py
                - config=taskcluster_nightly.py
                - revision=$GECKO_HEAD_REV
             default: [ ]
       actions:
          by-build-platform:
             default: ['clone-locales', 'list-locales', 'setup', 'repack',
                       'submit-to-balrog', 'summary']
-            android-api-16-nightly: ['get-secrets',
-                                     'clone-locales', 'list-locales', 'setup', 'repack',
+            android-api-16-nightly: ['clone-locales', 'list-locales', 'setup', 'repack',
                                      'upload-repacks', 'submit-to-balrog', 'summary']
       script:
          by-build-platform:
             default: mozharness/scripts/desktop_l10n.py
             android-api-16-nightly: mozharness/scripts/mobile_l10n.py
--- a/taskcluster/taskgraph/transforms/l10n.py
+++ b/taskcluster/taskgraph/transforms/l10n.py
@@ -102,23 +102,16 @@ l10n_description_schema = Schema({
     Required('docker-image'): _by_platform(Any(
         # an in-tree generated docker image (from `taskcluster/docker/<name>`)
         {'in-tree': basestring},
         None,
     )),
 
     Optional('toolchains'): _by_platform([basestring]),
 
-    # The set of secret names to which the task has access; these are prefixed
-    # with `project/releng/gecko/{treeherder.kind}/level-{level}/`.  Setting
-    # this will enable any worker features required and set the task's scopes
-    # appropriately.  `true` here means ['*'], all secrets.  Not supported on
-    # Windows
-    Required('secrets', default=False): _by_platform(Any(bool, [basestring])),
-
     # Information for treeherder
     Required('treeherder'): {
         # Platform to display the task on in treeherder
         Required('platform'): _by_platform(basestring),
 
         # Symbol to use
         Required('symbol'): basestring,
 
@@ -253,17 +246,16 @@ def handle_keyed_by(config, jobs):
     """Resolve fields that can be keyed by platform, etc."""
     fields = [
         "locales-file",
         "locales-per-chunk",
         "worker-type",
         "description",
         "run-time",
         "docker-image",
-        "secrets",
         "toolchains",
         "tooltool",
         "env",
         "ignore-locales",
         "mozharness.config",
         "mozharness.options",
         "mozharness.actions",
         "mozharness.script",
@@ -388,17 +380,16 @@ def make_job_description(config, jobs):
             'description': job['description'],
             'run': {
                 'using': 'mozharness',
                 'job-script': 'taskcluster/scripts/builder/build-l10n.sh',
                 'config': job['mozharness']['config'],
                 'script': job['mozharness']['script'],
                 'actions': job['mozharness']['actions'],
                 'options': job['mozharness']['options'],
-                'secrets': job['secrets'],
             },
             'attributes': job['attributes'],
             'treeherder': {
                 'kind': 'build',
                 'tier': job['treeherder']['tier'],
                 'symbol': job['treeherder']['symbol'],
                 'platform': job['treeherder']['platform'],
             },
--- a/testing/mozharness/configs/single_locale/tc_android-api-16.py
+++ b/testing/mozharness/configs/single_locale/tc_android-api-16.py
@@ -10,42 +10,9 @@ config = {
     "tooltool_servers": ['http://relengapi/tooltool/'],
 
     "upload_env": {
         'UPLOAD_HOST': 'localhost',
         'UPLOAD_PATH': '/builds/worker/artifacts/',
     },
     "mozilla_dir": "src/",
     "simple_name_move": True,
-    'secret_files': [
-        {'filename': '/builds/gapi.data',
-         'secret_name': 'project/releng/gecko/build/level-%(scm-level)s/gapi.data',
-         'min_scm_level': 1},
-        {'filename': '/builds/mozilla-fennec-geoloc-api.key',
-         'secret_name': 'project/releng/gecko/build/level-%(scm-level)s/mozilla-fennec-geoloc-api.key',
-         'min_scm_level': 2, 'default': 'try-build-has-no-secrets'},
-        {'filename': '/builds/adjust-sdk.token',
-         'secret_name': 'project/releng/gecko/build/level-%(scm-level)s/adjust-sdk.token',
-         'min_scm_level': 2, 'default': 'try-build-has-no-secrets'},
-        {'filename': '/builds/adjust-sdk-beta.token',
-         'secret_name': 'project/releng/gecko/build/level-%(scm-level)s/adjust-sdk-beta.token',
-         'min_scm_level': 2, 'default': 'try-build-has-no-secrets'},
-        {'filename': '/builds/leanplum-sdk-release.token',
-         'secret_name': 'project/releng/gecko/build/level-%(scm-level)s/leanplum-sdk-release.token',
-         'min_scm_level': 2, 'default': 'try-build-has-no-secrets'},
-        {'filename': '/builds/leanplum-sdk-beta.token',
-         'secret_name': 'project/releng/gecko/build/level-%(scm-level)s/leanplum-sdk-beta.token',
-         'min_scm_level': 2, 'default': 'try-build-has-no-secrets'},
-        {'filename': '/builds/leanplum-sdk-nightly.token',
-         'secret_name': 'project/releng/gecko/build/level-%(scm-level)s/leanplum-sdk-nightly.token',
-         'min_scm_level': 2, 'default': 'try-build-has-no-secrets'},
-        {'filename': '/builds/pocket-api-release.token',
-         'secret_name': 'project/releng/gecko/build/level-%(scm-level)s/pocket-api-release.token',
-         'min_scm_level': 2, 'default': 'try-build-has-no-secrets'},
-        {'filename': '/builds/pocket-api-beta.token',
-         'secret_name': 'project/releng/gecko/build/level-%(scm-level)s/pocket-api-beta.token',
-         'min_scm_level': 2, 'default': 'try-build-has-no-secrets'},
-        {'filename': '/builds/pocket-api-nightly.token',
-         'secret_name': 'project/releng/gecko/build/level-%(scm-level)s/pocket-api-nightly.token',
-         'min_scm_level': 2, 'default': 'try-build-has-no-secrets'},
-
-    ],
 }
--- a/testing/mozharness/scripts/mobile_l10n.py
+++ b/testing/mozharness/scripts/mobile_l10n.py
@@ -33,27 +33,26 @@ from mozharness.base.transfer import Tra
 from mozharness.mozilla.buildbot import BuildbotMixin
 from mozharness.mozilla.purge import PurgeMixin
 from mozharness.mozilla.release import ReleaseMixin
 from mozharness.mozilla.signing import MobileSigningMixin
 from mozharness.mozilla.tooltool import TooltoolMixin
 from mozharness.base.vcs.vcsbase import MercurialScript
 from mozharness.mozilla.l10n.locales import LocalesMixin
 from mozharness.mozilla.mock import MockMixin
-from mozharness.mozilla.secrets import SecretsMixin
 from mozharness.mozilla.updates.balrog import BalrogMixin
 from mozharness.base.python import VirtualenvMixin
 from mozharness.mozilla.taskcluster_helper import Taskcluster
 
 
 # MobileSingleLocale {{{1
 class MobileSingleLocale(MockMixin, LocalesMixin, ReleaseMixin,
                          MobileSigningMixin, TransferMixin, TooltoolMixin,
                          BuildbotMixin, PurgeMixin, MercurialScript, BalrogMixin,
-                         VirtualenvMixin, SecretsMixin):
+                         VirtualenvMixin):
     config_options = [[
         ['--locale', ],
         {"action": "extend",
          "dest": "locales",
          "type": "string",
          "help": "Specify the locale(s) to sign and update"
          }
     ], [
@@ -120,17 +119,16 @@ class MobileSingleLocale(MockMixin, Loca
          "type": "string",
          "help": "Override the gecko revision to use (otherwise use buildbot supplied"
                  " value, or en-US revision) "}
     ]]
 
     def __init__(self, require_config_file=True):
         buildscript_kwargs = {
             'all_actions': [
-                "get-secrets",
                 "clobber",
                 "pull",
                 "clone-locales",
                 "list-locales",
                 "setup",
                 "repack",
                 "validate-repacks-signed",
                 "upload-repacks",
@@ -182,30 +180,16 @@ class MobileSingleLocale(MockMixin, Loca
         repack_env = self.query_env(partial_env=c.get("repack_env"),
                                     replace_dict=replace_dict)
         if c.get('base_en_us_binary_url') and c.get('release_config_file'):
             rc = self.query_release_config()
             repack_env['EN_US_BINARY_URL'] = c['base_en_us_binary_url'] % replace_dict
         if 'MOZ_SIGNING_SERVERS' in os.environ:
             repack_env['MOZ_SIGN_CMD'] = \
                 subprocess.list2cmdline(self.query_moz_sign_cmd(formats=['jar']))
-
-        if self.query_is_nightly() or self.query_is_nightly_promotion():
-            if self.query_is_nightly():
-                # Nightly promotion needs to set update_channel but not do all
-                # the 'IS_NIGHTLY' automation parts, like uploading symbols
-                # (for now).
-                repack_env["IS_NIGHTLY"] = "yes"
-            # In branch_specifics.py we might set update_channel explicitly.
-            if c.get('update_channel'):
-                repack_env["MOZ_UPDATE_CHANNEL"] = c['update_channel']
-            else:  # Let's just give the generic channel based on branch.
-                repack_env["MOZ_UPDATE_CHANNEL"] = \
-                    "nightly-%s" % (c['branch'],)
-
         self.repack_env = repack_env
         return self.repack_env
 
     def query_l10n_env(self):
         return self.query_env()
 
     def query_upload_env(self):
         if self.upload_env:
--- a/toolkit/mozapps/installer/upload-files-APK.mk
+++ b/toolkit/mozapps/installer/upload-files-APK.mk
@@ -89,17 +89,16 @@ package_fennec = \
 repackage_fennec = \
   $(MAKE) -C $(GECKO_APP_AP_PATH) gecko-nodeps.ap_ && \
   $(PYTHON) -m mozbuild.action.package_fennec_apk \
     --verbose \
     --inputs \
       $(UNPACKAGE) \
       $(GECKO_APP_AP_PATH)/gecko-nodeps.ap_ \
     --omnijar $(MOZ_PKG_DIR)/$(OMNIJAR_NAME) \
-    --classes-dex $(GECKO_APP_AP_PATH)/classes.dex \
     --output $(PACKAGE:.apk=-unsigned-unaligned.apk) && \
   $(call RELEASE_SIGN_ANDROID_APK,$(PACKAGE:.apk=-unsigned-unaligned.apk),$(PACKAGE))
 
 INNER_MAKE_PACKAGE = $(if $(UNPACKAGE),$(repackage_fennec),$(package_fennec))
 
 # Language repacks root the resources contained in assets/omni.ja
 # under assets/, but the repacks expect them to be rooted at /.
 # Therefore, we we move the omnijar back to / so the resources are