Backed out 5 changesets (bug 1508976, bug 1522581) for android geckoview bustages at /usr/bin/python2.7. CLOSED TREE
authorBrindusan Cristian <cbrindusan@mozilla.com>
Tue, 05 Mar 2019 22:42:15 +0200
changeset 462447 be4b780a7783cdf7d3ead37c98917dc0d2e94a1d
parent 462446 ea86a9bf41de20289cbc47c6ed3613d19d1920b8
child 462448 1b825b6f386925ae7cbd762f6dd78a693a77a7cc
push id112307
push usershindli@mozilla.com
push dateWed, 06 Mar 2019 05:00:25 +0000
treeherdermozilla-inbound@daf32259f33e [default view] [failures only]
perfherder[talos] [build metrics] [platform microbench] (compared to previous push)
bugs1508976, 1522581
milestone67.0a1
backs out7a6be593b0be702b6a404ce9c54341f351e8e953
c47b37ac17755909e9b1e526bb2ab86f5c5653ab
91c31d2a7706c7d32384891f4ad39111bd6d5370
da57df805c568ba2af98d1d62fc3756584e84682
4e5d97c935151d28d1e06943133951918ac28568
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 1508976, bug 1522581) for android geckoview bustages at /usr/bin/python2.7. CLOSED TREE Backed out changeset 7a6be593b0be (bug 1522581) Backed out changeset c47b37ac1775 (bug 1522581) Backed out changeset 91c31d2a7706 (bug 1508976) Backed out changeset da57df805c56 (bug 1508976) Backed out changeset 4e5d97c93515 (bug 1508976)
build.gradle
mobile/android/geckoview/build.gradle
mobile/android/geckoview/fat_aar.gradle
mobile/android/moz.configure
taskcluster/ci/beetmover/kind.yml
taskcluster/ci/build/android.yml
taskcluster/docs/attributes.rst
taskcluster/taskgraph/loader/build_signing.py
taskcluster/taskgraph/loader/push_apk.py
taskcluster/taskgraph/target_tasks.py
taskcluster/taskgraph/transforms/beetmover_geckoview.py
toolkit/content/moz.build
--- a/build.gradle
+++ b/build.gradle
@@ -81,18 +81,16 @@ buildscript {
     }
 
     dependencies {
         classpath 'org.mozilla.apilint:apilint:0.1.7'
         classpath 'com.android.tools.build:gradle:3.1.4'
         classpath 'com.getkeepsafe.dexcount:dexcount-gradle-plugin:0.8.2'
         classpath 'org.apache.commons:commons-exec:1.3'
         classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version"
-        // Downloading archives from Taskcluster.
-        classpath 'de.undercouch:gradle-download-task:3.4.3'
     }
 }
 
 // A stream that processes bytes line by line, prepending a tag before sending
 // each line to Gradle's logging.
 class TaggedLogOutputStream extends org.apache.commons.exec.LogOutputStream {
     String tag
     Logger logger
--- a/mobile/android/geckoview/build.gradle
+++ b/mobile/android/geckoview/build.gradle
@@ -1,26 +1,10 @@
 buildDir "${topobjdir}/gradle/build/mobile/android/geckoview"
 
-buildscript {
-    repositories {
-        gradle.mozconfig.substs.GRADLE_MAVEN_REPOSITORIES.each { repository ->
-            maven {
-                url repository
-            }
-        }
-    }
-
-    // Used in fat_aar.gradle.  See
-    // http://gradle.1045684.n5.nabble.com/Issue-with-imports-in-external-build-scripts-tp3322487p3322906.html.
-    dependencies {
-        classpath 'commons-codec:commons-codec:1.11'
-    }
-}
-
 apply plugin: 'com.android.library'
 apply plugin: 'kotlin-android'
 
 apply from: "${topsrcdir}/mobile/android/gradle/product_flavors.gradle"
 
 // The SDK binding generation tasks depend on the JAR creation task of the
 // :annotations project.
 evaluationDependsOn(':annotations')
@@ -326,30 +310,20 @@ version = computeVersionNumber()
 publishing {
     publications {
         android.libraryVariants.all { variant ->
             "${variant.name}"(MavenPublication) {
                 pom {
                     groupId = 'org.mozilla.geckoview'
 
                     if (mozconfig.substs.MOZ_UPDATE_CHANNEL == 'release') {
-                        // Release artifacts don't specify the channel, for the sake of simplicity.
-                        artifactId = 'geckoview'
+                        // release artifacts don't specify the channel, for the sake of simplicity
+                        artifactId = "geckoview-${mozconfig.substs.ANDROID_CPU_ARCH}"
                     } else {
-                        artifactId = "geckoview-${mozconfig.substs.MOZ_UPDATE_CHANNEL}"
-                    }
-
-                    if (mozconfig.substs.MOZILLA_OFFICIAL && !mozconfig.substs.MOZ_ANDROID_FAT_AAR_TARGETS) {
-                        // In automation, per-architecture artifacts identify
-                        // the architecture; multi-architecture artifacts don't.
-                        // When building locally, we produce a "skinny AAR" with
-                        // one target architecture masquerading as a "fat AAR"
-                        // to enable Gradle composite builds to substitute this
-                        // project into consumers easily.
-                        artifactId = "${artifactId}-${mozconfig.substs.ANDROID_CPU_ARCH}"
+                        artifactId = "geckoview-${mozconfig.substs.MOZ_UPDATE_CHANNEL}-${mozconfig.substs.ANDROID_CPU_ARCH}"
                     }
 
                     url = 'https://wiki.mozilla.org/Mobile/GeckoView'
 
                     licenses {
                         license {
                             name = 'The Mozilla Public License, v. 2.0'
                             url = 'http://mozilla.org/MPL/2.0/'
@@ -538,20 +512,8 @@ apply plugin: 'org.mozilla.apilint'
 
 apiLint {
     // TODO: Change this to `org` after hiding org.mozilla.gecko
     packageFilter = 'org.mozilla.geckoview'
     changelogFileName = 'src/main/java/org/mozilla/geckoview/doc-files/CHANGELOG.md'
     skipClassesRegex = ['^org.mozilla.geckoview.BuildConfig$']
     lintFilters = ['GV']
 }
-
-// Plugin is always applied so that its dependencies are downloaded, even if the
-// functionality isn't used.
-apply plugin: 'de.undercouch.download'
-
-if (mozconfig.substs.MOZ_ANDROID_FAT_AAR_TARGETS) {
-    // This is frustrating, but here we are: frustrated.  See
-    // https://stackoverflow.com/a/37060550.
-    ext.DigestUtils = org.apache.commons.codec.digest.DigestUtils
-
-    apply from: "${topsrcdir}/mobile/android/geckoview/fat_aar.gradle"
-}
deleted file mode 100644
--- a/mobile/android/geckoview/fat_aar.gradle
+++ /dev/null
@@ -1,207 +0,0 @@
-// Produce a multi-architecture universal "fat AAR".
-//
-// This uses Gradle to:
-//
-// 1) download per-architecture AARs
-// 2) ensure that they are "compatible"
-// 3) pack the per-architecture JNI libraries into the GeckoView library
-
-import org.gradle.api.file.FileTree
-
-Set contentHashes(FileTree tree) {
-    def Set hashes = []
-    tree.visit {
-        if (!it.isDirectory()) {
-            hashes << [it.relativePath.pathString, ext.DigestUtils.md5Hex(it.open())]
-        }
-    }
-    return hashes
-}
-
-Set contentDiff(FileTree left, FileTree right) {
-    def Set hleft = contentHashes(left)
-    def Set hright = contentHashes(right)
-    return (hleft + hright) - hleft.intersect(hright)
-}
-
-def ANDROID_CPU_ARCH = mozconfig.substs.ANDROID_CPU_ARCH
-def MOZ_ANDROID_FAT_AAR_TARGETS = mozconfig.substs.MOZ_ANDROID_FAT_AAR_TARGETS
-
-task downloadMavenZips
-task unpackMavenZips
-
-// Turn ["arch1=url1", "arch2=url2"] into ["arch1": "url1", "arch2": "url2"].
-def srcs = MOZ_ANDROID_FAT_AAR_TARGETS.collectEntries {
-    def pair = it.split('=')
-    [(pair.first()): pair.last()]
-}
-
-if (!srcs.containsKey(ANDROID_CPU_ARCH)) {
-    throw new GradleException("MOZ_ANDROID_FAT_AAR_TARGETS set but current architecture (${ANDROID_CPU_ARCH}) not included: '${MOZ_ANDROID_FAT_AAR_TARGETS}'")
-}
-
-for (s in srcs) {
-    def downloadMavenZipTask = task "downloadMavenZip${s.key.capitalize()}"(type: Download) {
-        src s.value
-        dest file("${buildDir}/fat_aar/${s.key}-${s.value.hashCode()}.maven.zip")
-
-        doFirst {
-            if (it.dest.exists()) {
-                throw new StopExecutionException("File to download already exists: ${it.dest.path}")
-            }
-        }
-        overwrite true
-    }
-    downloadMavenZips.dependsOn(downloadMavenZipTask)
-
-    // This is awkward, but extracting from nested zipTree instances seems to be
-    // very challenging: Gradle really, really, really wants to resolve the
-    // internal zipTree dependencies at configure time, before the outer zipTree
-    // has been downloaded.
-    def unpackMavenZipTask = task "unpackMavenZip${s.key.capitalize()}"(dependsOn: downloadMavenZipTask) {
-        inputs.files downloadMavenZipTask.dest
-        outputs.dir file("${buildDir}/fat_aar/${s.key}")
-
-        // Capture for the closure below.
-        def key = s.key
-
-        // sync { ... } from zipTree doesn't seem to be supported.
-        doFirst {
-            delete file("${buildDir}/fat_aar/${key}")
-        }
-
-        doLast {
-            copy {
-                from zipTree(zipTree(tasks["downloadMavenZip${key.capitalize()}"].dest).files.find { it.name.endsWith('.aar') })
-                into file("${buildDir}/fat_aar/${key}")
-            }
-        }
-    }
-    unpackMavenZips.dependsOn(unpackMavenZipTask)
-}
-
-task checkAARs(dependsOn: unpackMavenZips) {
-    inputs.files unpackMavenZips.outputs.files
-
-    doFirst {
-        def base = fileTree("${buildDir}/fat_aar/${ANDROID_CPU_ARCH}")
-
-        for (s in srcs) {
-            if (s.key == ANDROID_CPU_ARCH) {
-                continue
-            }
-
-            def other = fileTree("${buildDir}/fat_aar/${s.key}")
-
-            // So:
-            // - obviously the JNI libraries themselves are different across architectures
-            // - AndroidManifest.xml embeds MIN_SDK_VERSION, which differs on 64-bit
-            //   architectures (21) vs non-64-bit architectures (15)
-            // - classes.jar also embeds MIN_SDK_VERSION, which differs on 64-bit
-            //   architectures (21) vs non-64-bit architectures (15)
-            // - annotations.zip doesn't have constant timestamps
-            // - assets/omni.ja is actually different (buildconfig.html embeds target architecture)
-            //
-            // For reasons unknown, AARs have an empty top-level $ARCH
-            // directory, but we ignore directories so it needs no special
-            // accommodation.
-            def diff = contentDiff(
-                base
-                    .exclude('jni/**')
-                    .exclude('AndroidManifest.xml')
-                    .exclude('classes.jar')
-                    .exclude('annotations.zip')
-                    .exclude('assets/omni.ja'),
-                other
-                    .exclude('jni/**')
-                    .exclude('AndroidManifest.xml')
-                    .exclude('classes.jar')
-                    .exclude('annotations.zip')
-                    .exclude('assets/omni.ja'))
-
-            if (!diff.isEmpty()) {
-                throw new GradleException("${ANDROID_CPU_ARCH} AAR and ${s.key} AAR disagree: ${diff}")
-            }
-
-            def classes = contentDiff(
-                zipTree("${buildDir}/fat_aar/${ANDROID_CPU_ARCH}/classes.jar")
-                    .matching {
-                        exclude('org/mozilla/geckoview/BuildConfig.class')
-                        exclude('org/mozilla/gecko/util/HardwareUtils.class')
-                    },
-                zipTree("${buildDir}/fat_aar/${s.key}/classes.jar")
-                    .matching {
-                        exclude('org/mozilla/geckoview/BuildConfig.class')
-                        exclude('org/mozilla/gecko/util/HardwareUtils.class')
-                    })
-
-            if (!classes.isEmpty()) {
-                throw new GradleException("${buildDir}/fat_aar/${ANDROID_CPU_ARCH}/classes.jar and ${buildDir}/fat_aar/${s.key}/classes.jar disagree: ${classes}")
-            }
-
-            def annotations = contentDiff(
-                zipTree("${buildDir}/fat_aar/${ANDROID_CPU_ARCH}/annotations.zip"),
-                zipTree("${buildDir}/fat_aar/${s.key}/annotations.zip"))
-
-            if (!annotations.isEmpty()) {
-                throw new GradleException("${buildDir}/fat_aar/${ANDROID_CPU_ARCH}/annotations.zip and ${buildDir}/fat_aar/${s.key}/annotations.zip disagree: ${annotations}")
-            }
-
-            // buildconfig.html is special.
-            def omnijar = contentDiff(
-                zipTree("${buildDir}/fat_aar/${ANDROID_CPU_ARCH}/assets/omni.ja")
-                    .matching {
-                        exclude('**/buildconfig.html')
-                    },
-                zipTree("${buildDir}/fat_aar/${s.key}/assets/omni.ja")
-                    .matching {
-                        exclude('**/buildconfig.html')
-                    })
-
-            if (!omnijar.isEmpty()) {
-                // Let's make this easy to debug locally, at least.
-                def relPaths = omnijar.collectEntries().keySet()
-
-                copy {
-                    from zipTree("${buildDir}/fat_aar/${ANDROID_CPU_ARCH}/assets/omni.ja")
-                    into file("${buildDir}/fat_aar/${ANDROID_CPU_ARCH}/omnijar")
-                    for (relPath in relPaths) {
-                        include relPath
-                    }
-                }
-
-                copy {
-                    from zipTree("${buildDir}/fat_aar/${s.key}/assets/omni.ja")
-                    into file("${buildDir}/fat_aar/${s.key}/omnijar")
-                    for (relPath in relPaths) {
-                        include relPath
-                    }
-                }
-
-                def pairs = relPaths.collect { relPath ->
-                    "(${buildDir}/fat_aar/${ANDROID_CPU_ARCH}/omnijar/${relPath}, ${buildDir}/fat_aar/${s.key}/omnijar/${relPath})"
-                }
-
-                throw new GradleException("${buildDir}/fat_aar/${ANDROID_CPU_ARCH}/assets/omni.ja and ${buildDir}/fat_aar/${s.key}/assets/omni.ja disagree: ${pairs}")
-            }
-        }
-    }
-}
-
-android.libraryVariants.all { variant ->
-    if ((variant.productFlavors*.name).contains('withGeckoBinaries')) {
-        def assetGenTask = tasks.findByName("generate${variant.name.capitalize()}Assets")
-        assetGenTask.dependsOn checkAARs
-
-        for (s in srcs) {
-            // We want to ensure that nothing changed between this build and
-            // the upstream AAR, but don't want to pack the binaries
-            // corresponding to this build's architecture twice.
-            if (s.key == ANDROID_CPU_ARCH) {
-                continue
-            }
-
-            android.sourceSets."${variant.name}".jniLibs.srcDir "${buildDir}/fat_aar/${s.key}/jni"
-        }
-    }
-}
--- a/mobile/android/moz.configure
+++ b/mobile/android/moz.configure
@@ -169,23 +169,8 @@ def check_android_pocket(android_pocket,
 # Must come after the ../../toolkit/moz.configure.
 @depends('MOZ_ANDROID_GCM', google_play_services)
 def check_android_gcm(android_gcm,
                       google_play_services):
     if android_gcm:
         if not google_play_services:
             die('You must specify --with-google-play-services when'
                 ' building with MOZ_ANDROID_GCM=1')
-
-# Automation will set this to ("arch=https://...", ...) via the TC environment.
-option(env='MOZ_ANDROID_FAT_AAR_TARGETS',
-       nargs='*',
-       help='Comma-separated arch=URL pairs mapping Android architectures '
-            'to URLs to maven.target.zip archives.')
-
-@depends('MOZ_ANDROID_FAT_AAR_TARGETS')
-def fat_aar_targets(values):
-    for value in values:
-        if not value.count('=') == 1:
-            die('MOZ_ANDROID_FAT_AAR_TARGETS entries must be of the form "arch=URL": "{}"'.format(value))
-    return values
-
-set_config('MOZ_ANDROID_FAT_AAR_TARGETS', fat_aar_targets)
--- a/taskcluster/ci/beetmover/kind.yml
+++ b/taskcluster/ci/beetmover/kind.yml
@@ -24,14 +24,13 @@ not-for-build-platforms:
     - win64-aarch64-nightly/opt
     - linux-devedition-nightly/opt
     - linux64-devedition-nightly/opt
     - macosx64-devedition-nightly/opt
     - win32-devedition-nightly/opt
     - win64-devedition-nightly/opt
     - linux64-asan-reporter-nightly/opt
     - win64-asan-reporter-nightly/opt
-    - android-geckoview-fat-aar-nightly/opt
 
 job-template:
     shipping-phase: promote
     attributes:
         artifact_map: taskcluster/taskgraph/manifests/fennec_nightly.yml
--- a/taskcluster/ci/build/android.yml
+++ b/taskcluster/ci/build/android.yml
@@ -15,16 +15,20 @@ android-api-16/debug:
     worker-type: aws-provisioner-v1/gecko-{level}-b-android
     worker:
         docker-image: {in-tree: android-build}
         max-run-time: 7200
         env:
             GRADLE_USER_HOME: "/builds/worker/workspace/build/src/mobile/android/gradle/dotgradle-offline"
             TOOLTOOL_MANIFEST: "mobile/android/config/tooltool-manifests/android/releng.manifest"
         artifacts:
+            - name: public/android/maven
+              # TODO Bug 1433198. Remove the following entry once target.maven.zip is uploaded to a maven repository
+              path: /builds/worker/workspace/build/src/obj-firefox/gradle/build/mobile/android/geckoview/maven/
+              type: directory
             - name: public/build/target.maven.zip
               path: /builds/worker/workspace/build/src/obj-firefox/gradle/build/mobile/android/geckoview/target.maven.zip
               type: file
             - name: public/build/geckoview-androidTest.apk
               path: /builds/worker/workspace/build/src/obj-firefox/gradle/build/mobile/android/geckoview/outputs/apk/androidTest/withGeckoBinaries/debug/geckoview-withGeckoBinaries-debug-androidTest.apk
               type: file
             - name: public/build/geckoview_example.apk
               path: /builds/worker/workspace/build/src/obj-firefox/gradle/build/mobile/android/geckoview_example/outputs/apk/withGeckoBinaries/debug/geckoview_example-withGeckoBinaries-debug.apk
@@ -64,16 +68,19 @@ android-api-16-ccov/debug:
     worker-type: aws-provisioner-v1/gecko-{level}-b-android
     worker:
         docker-image: {in-tree: android-build}
         max-run-time: 7200
         env:
             GRADLE_USER_HOME: "/builds/worker/workspace/build/src/mobile/android/gradle/dotgradle-offline"
             TOOLTOOL_MANIFEST: "mobile/android/config/tooltool-manifests/android/releng.manifest"
         artifacts:
+            - name: public/android/maven
+              path: /builds/worker/workspace/build/src/obj-firefox/gradle/build/mobile/android/geckoview/maven/
+              type: directory
             - name: public/build/geckoview-androidTest.apk
               path: /builds/worker/workspace/build/src/obj-firefox/gradle/build/mobile/android/geckoview/outputs/apk/androidTest/withGeckoBinaries/debug/geckoview-withGeckoBinaries-debug-androidTest.apk
               type: file
             - name: public/build/geckoview_example.apk
               path: /builds/worker/workspace/build/src/obj-firefox/gradle/build/mobile/android/geckoview_example/outputs/apk/withGeckoBinaries/debug/geckoview_example-withGeckoBinaries-debug.apk
               type: file
             - name: public/build/target.geckoview_classfiles.zip
               path: /builds/worker/workspace/build/src/obj-firefox/gradle/build/mobile/android/geckoview/coverage/target.geckoview_classfiles.zip
@@ -122,16 +129,20 @@ android-x86/opt:
     worker-type: aws-provisioner-v1/gecko-{level}-b-android
     worker:
         docker-image: {in-tree: android-build}
         max-run-time: 7200
         env:
             GRADLE_USER_HOME: "/builds/worker/workspace/build/src/mobile/android/gradle/dotgradle-offline"
             TOOLTOOL_MANIFEST: "mobile/android/config/tooltool-manifests/android-x86/releng.manifest"
         artifacts:
+            - name: public/android/maven
+              # TODO Bug 1433198. Remove the following entry once target.maven.zip is uploaded to a maven repository
+              path: /builds/worker/workspace/build/src/obj-firefox/gradle/build/mobile/android/geckoview/maven/
+              type: directory
             - name: public/build/target.maven.zip
               path: /builds/worker/workspace/build/src/obj-firefox/gradle/build/mobile/android/geckoview/target.maven.zip
               type: file
             - name: public/build/geckoview-androidTest.apk
               path: /builds/worker/workspace/build/src/obj-firefox/gradle/build/mobile/android/geckoview/outputs/apk/androidTest/withGeckoBinaries/debug/geckoview-withGeckoBinaries-debug-androidTest.apk
               type: file
             - name: public/build/geckoview_example.apk
               path: /builds/worker/workspace/build/src/obj-firefox/gradle/build/mobile/android/geckoview_example/outputs/apk/withGeckoBinaries/debug/geckoview_example-withGeckoBinaries-debug.apk
@@ -171,16 +182,19 @@ android-x86-fuzzing/debug:
     worker-type: aws-provisioner-v1/gecko-{level}-b-android
     worker:
         docker-image: {in-tree: android-build}
         max-run-time: 7200
         env:
             GRADLE_USER_HOME: "/builds/worker/workspace/build/src/mobile/android/gradle/dotgradle-offline"
             TOOLTOOL_MANIFEST: "mobile/android/config/tooltool-manifests/android-x86/releng.manifest"
         artifacts:
+            - name: public/android/maven
+              path: /builds/worker/workspace/build/src/obj-firefox/gradle/build/mobile/android/geckoview/maven/
+              type: directory
             - name: public/build/geckoview-androidTest.apk
               path: /builds/worker/workspace/build/src/obj-firefox/gradle/build/mobile/android/geckoview/outputs/apk/androidTest/withGeckoBinaries/debug/geckoview-withGeckoBinaries-debug-androidTest.apk
               type: file
             - name: public/build/geckoview_example.apk
               path: /builds/worker/workspace/build/src/obj-firefox/gradle/build/mobile/android/geckoview_example/outputs/apk/withGeckoBinaries/debug/geckoview_example-withGeckoBinaries-debug.apk
               type: file
             - name: public/build
               path: /builds/worker/artifacts/
@@ -223,16 +237,20 @@ android-x86-nightly/opt:
     worker-type: aws-provisioner-v1/gecko-{level}-b-android
     worker:
         docker-image: {in-tree: android-build}
         max-run-time: 7200
         env:
             GRADLE_USER_HOME: "/builds/worker/workspace/build/src/mobile/android/gradle/dotgradle-offline"
             TOOLTOOL_MANIFEST: "mobile/android/config/tooltool-manifests/android-x86/releng.manifest"
         artifacts:
+            - name: public/android/maven
+              # TODO Bug 1433198. Remove the following entry once target.maven.zip is uploaded to a maven repository
+              path: /builds/worker/workspace/build/src/obj-firefox/gradle/build/mobile/android/geckoview/maven/
+              type: directory
             - name: public/build/target.maven.zip
               path: /builds/worker/workspace/build/src/obj-firefox/gradle/build/mobile/android/geckoview/target.maven.zip
               type: file
             - name: public/build/geckoview-androidTest.apk
               path: /builds/worker/workspace/build/src/obj-firefox/gradle/build/mobile/android/geckoview/outputs/apk/androidTest/withGeckoBinaries/debug/geckoview-withGeckoBinaries-debug-androidTest.apk
               type: file
             - name: public/build/geckoview_example.apk
               path: /builds/worker/workspace/build/src/obj-firefox/gradle/build/mobile/android/geckoview_example/outputs/apk/withGeckoBinaries/debug/geckoview_example-withGeckoBinaries-debug.apk
@@ -274,16 +292,20 @@ android-api-16/opt:
     worker-type: aws-provisioner-v1/gecko-{level}-b-android
     worker:
         docker-image: {in-tree: android-build}
         max-run-time: 7200
         env:
             GRADLE_USER_HOME: "/builds/worker/workspace/build/src/mobile/android/gradle/dotgradle-offline"
             TOOLTOOL_MANIFEST: "mobile/android/config/tooltool-manifests/android/releng.manifest"
         artifacts:
+            - name: public/android/maven
+              # TODO Bug 1433198. Remove the following entry once target.maven.zip is uploaded to a maven repository
+              path: /builds/worker/workspace/build/src/obj-firefox/gradle/build/mobile/android/geckoview/maven/
+              type: directory
             - name: public/build/target.maven.zip
               path: /builds/worker/workspace/build/src/obj-firefox/gradle/build/mobile/android/geckoview/target.maven.zip
               type: file
             - name: public/build/geckoview-androidTest.apk
               path: /builds/worker/workspace/build/src/obj-firefox/gradle/build/mobile/android/geckoview/outputs/apk/androidTest/withGeckoBinaries/debug/geckoview-withGeckoBinaries-debug-androidTest.apk
               type: file
             - name: public/build/geckoview_example.apk
               path: /builds/worker/workspace/build/src/obj-firefox/gradle/build/mobile/android/geckoview_example/outputs/apk/withGeckoBinaries/debug/geckoview_example-withGeckoBinaries-debug.apk
@@ -324,21 +346,25 @@ android-api-16-without-google-play-servi
     worker:
         docker-image: {in-tree: android-build}
         max-run-time: 7200
         env:
             GRADLE_USER_HOME: "/builds/worker/workspace/build/src/mobile/android/gradle/dotgradle-offline"
             PERFHERDER_EXTRA_OPTIONS: android-api-16-without-google-play-services
             TOOLTOOL_MANIFEST: "mobile/android/config/tooltool-manifests/android/releng.manifest"
         artifacts:
+            - name: public/android/maven
+              # TODO Bug 1433198. Remove the following entry once target.maven.zip is uploaded to a maven repository
+              path: /builds/worker/workspace/build/src/obj-firefox/gradle/build/mobile/android/geckoview/maven/
+              type: directory
             - name: public/build/target.maven.zip
               path: /builds/worker/workspace/build/src/obj-firefox/gradle/build/mobile/android/geckoview/target.maven.zip
               type: file
             - name: public/build/geckoview_example.apk
-              path: /builds/worker/workspace/build/src/obj-firefox/gradle/build/mobile/android/geckoview_example/outputs/apk/withGeckoBinaries/debug/geckoview_example-withGeckoBinaries-debug.apk
+              path: /builds/worker/workspace/build/src/obj-firefox/gradle/build/mobile/android/geckoview_example/outputs/apk/geckoview_example-withGeckoBinaries.apk
               type: file
             - name: public/build
               path: /builds/worker/artifacts/
               type: directory
     run:
         using: mozharness
         actions: [get-secrets, build]
         config:
@@ -377,16 +403,20 @@ android-api-16-nightly/opt:
     worker-type: aws-provisioner-v1/gecko-{level}-b-android
     worker:
         docker-image: {in-tree: android-build}
         max-run-time: 7200
         env:
             GRADLE_USER_HOME: "/builds/worker/workspace/build/src/mobile/android/gradle/dotgradle-offline"
             TOOLTOOL_MANIFEST: "mobile/android/config/tooltool-manifests/android/releng.manifest"
         artifacts:
+            - name: public/android/maven
+              # TODO Bug 1433198. Remove the following entry once target.maven.zip is uploaded to a maven repository
+              path: /builds/worker/workspace/build/src/obj-firefox/gradle/build/mobile/android/geckoview/maven/
+              type: directory
             - name: public/build/target.maven.zip
               path: /builds/worker/workspace/build/src/obj-firefox/gradle/build/mobile/android/geckoview/target.maven.zip
               type: file
             - name: public/build/geckoview-androidTest.apk
               path: /builds/worker/workspace/build/src/obj-firefox/gradle/build/mobile/android/geckoview/outputs/apk/androidTest/withGeckoBinaries/debug/geckoview-withGeckoBinaries-debug-androidTest.apk
               type: file
             - name: public/build/geckoview_example.apk
               path: /builds/worker/workspace/build/src/obj-firefox/gradle/build/mobile/android/geckoview_example/outputs/apk/withGeckoBinaries/debug/geckoview_example-withGeckoBinaries-debug.apk
@@ -428,16 +458,20 @@ android-aarch64/opt:
     worker-type: aws-provisioner-v1/gecko-{level}-b-android
     worker:
         docker-image: {in-tree: android-build}
         max-run-time: 7200
         env:
             GRADLE_USER_HOME: "/builds/worker/workspace/build/src/mobile/android/gradle/dotgradle-offline"
             TOOLTOOL_MANIFEST: "mobile/android/config/tooltool-manifests/android/releng.manifest"
         artifacts:
+            - name: public/android/maven
+              # TODO Bug 1433198. Remove the following entry once target.maven.zip is uploaded to a maven repository
+              path: /builds/worker/workspace/build/src/obj-firefox/gradle/build/mobile/android/geckoview/maven/
+              type: directory
             - name: public/build/target.maven.zip
               path: /builds/worker/workspace/build/src/obj-firefox/gradle/build/mobile/android/geckoview/target.maven.zip
               type: file
             - name: public/build/geckoview-androidTest.apk
               path: /builds/worker/workspace/build/src/obj-firefox/gradle/build/mobile/android/geckoview/outputs/apk/androidTest/withGeckoBinaries/debug/geckoview-withGeckoBinaries-debug-androidTest.apk
               type: file
             - name: public/build/geckoview_example.apk
               path: /builds/worker/workspace/build/src/obj-firefox/gradle/build/mobile/android/geckoview_example/outputs/apk/withGeckoBinaries/debug/geckoview_example-withGeckoBinaries-debug.apk
@@ -479,16 +513,20 @@ android-aarch64/debug:
     worker-type: aws-provisioner-v1/gecko-{level}-b-android
     worker:
         docker-image: {in-tree: android-build}
         max-run-time: 7200
         env:
             GRADLE_USER_HOME: "/builds/worker/workspace/build/src/mobile/android/gradle/dotgradle-offline"
             TOOLTOOL_MANIFEST: "mobile/android/config/tooltool-manifests/android/releng.manifest"
         artifacts:
+            - name: public/android/maven
+              # TODO Bug 1433198. Remove the following entry once target.maven.zip is uploaded to a maven repository
+              path: /builds/worker/workspace/build/src/obj-firefox/gradle/build/mobile/android/geckoview/maven/
+              type: directory
             - name: public/build/target.maven.zip
               path: /builds/worker/workspace/build/src/obj-firefox/gradle/build/mobile/android/geckoview/target.maven.zip
               type: file
             - name: public/build/geckoview-androidTest.apk
               path: /builds/worker/workspace/build/src/obj-firefox/gradle/build/mobile/android/geckoview/outputs/apk/androidTest/withGeckoBinaries/debug/geckoview-withGeckoBinaries-debug-androidTest.apk
               type: file
             - name: public/build/geckoview_example.apk
               path: /builds/worker/workspace/build/src/obj-firefox/gradle/build/mobile/android/geckoview_example/outputs/apk/withGeckoBinaries/debug/geckoview_example-withGeckoBinaries-debug.apk
@@ -534,16 +572,20 @@ android-aarch64-nightly/opt:
     worker-type: aws-provisioner-v1/gecko-{level}-b-android
     worker:
         docker-image: {in-tree: android-build}
         max-run-time: 7200
         env:
             GRADLE_USER_HOME: "/builds/worker/workspace/build/src/mobile/android/gradle/dotgradle-offline"
             TOOLTOOL_MANIFEST: "mobile/android/config/tooltool-manifests/android/releng.manifest"
         artifacts:
+            - name: public/android/maven
+              # TODO Bug 1433198. Remove the following entry once target.maven.zip is uploaded to a maven repository
+              path: /builds/worker/workspace/build/src/obj-firefox/gradle/build/mobile/android/geckoview/maven/
+              type: directory
             - name: public/build/target.maven.zip
               path: /builds/worker/workspace/build/src/obj-firefox/gradle/build/mobile/android/geckoview/target.maven.zip
               type: file
             - name: public/build/geckoview-androidTest.apk
               path: /builds/worker/workspace/build/src/obj-firefox/gradle/build/mobile/android/geckoview/outputs/apk/androidTest/withGeckoBinaries/debug/geckoview-withGeckoBinaries-debug-androidTest.apk
               type: file
             - name: public/build/geckoview_example.apk
               path: /builds/worker/workspace/build/src/obj-firefox/gradle/build/mobile/android/geckoview_example/outputs/apk/withGeckoBinaries/debug/geckoview_example-withGeckoBinaries-debug.apk
@@ -585,16 +627,20 @@ android-x86_64/opt:
     worker-type: aws-provisioner-v1/gecko-{level}-b-android
     worker:
         docker-image: {in-tree: android-build}
         max-run-time: 7200
         env:
             GRADLE_USER_HOME: "/builds/worker/workspace/build/src/mobile/android/gradle/dotgradle-offline"
             TOOLTOOL_MANIFEST: "mobile/android/config/tooltool-manifests/android-x86/releng.manifest"
         artifacts:
+            - name: public/android/maven
+              # TODO Bug 1433198. Remove the following entry once target.maven.zip is uploaded to a maven repository
+              path: /builds/worker/workspace/build/src/obj-firefox/gradle/build/mobile/android/geckoview/maven/
+              type: directory
             - name: public/build/target.maven.zip
               path: /builds/worker/workspace/build/src/obj-firefox/gradle/build/mobile/android/geckoview/target.maven.zip
               type: file
             - name: public/build/geckoview-androidTest.apk
               path: /builds/worker/workspace/build/src/obj-firefox/gradle/build/mobile/android/geckoview/outputs/apk/androidTest/withGeckoBinaries/debug/geckoview-withGeckoBinaries-debug-androidTest.apk
               type: file
             - name: public/build/geckoview_example.apk
               path: /builds/worker/workspace/build/src/obj-firefox/gradle/build/mobile/android/geckoview_example/outputs/apk/withGeckoBinaries/debug/geckoview_example-withGeckoBinaries-debug.apk
@@ -640,16 +686,20 @@ android-x86_64-nightly/opt:
     worker-type: aws-provisioner-v1/gecko-{level}-b-android
     worker:
         docker-image: {in-tree: android-build}
         max-run-time: 7200
         env:
             GRADLE_USER_HOME: "/builds/worker/workspace/build/src/mobile/android/gradle/dotgradle-offline"
             TOOLTOOL_MANIFEST: "mobile/android/config/tooltool-manifests/android-x86/releng.manifest"
         artifacts:
+            - name: public/android/maven
+              # TODO Bug 1433198. Remove the following entry once target.maven.zip is uploaded to a maven repository
+              path: /builds/worker/workspace/build/src/obj-firefox/gradle/build/mobile/android/geckoview/maven/
+              type: directory
             - name: public/build/target.maven.zip
               path: /builds/worker/workspace/build/src/obj-firefox/gradle/build/mobile/android/geckoview/target.maven.zip
               type: file
             - name: public/build/geckoview-androidTest.apk
               path: /builds/worker/workspace/build/src/obj-firefox/gradle/build/mobile/android/geckoview/outputs/apk/androidTest/withGeckoBinaries/debug/geckoview-withGeckoBinaries-debug-androidTest.apk
               type: file
             - name: public/build/geckoview_example.apk
               path: /builds/worker/workspace/build/src/obj-firefox/gradle/build/mobile/android/geckoview_example/outputs/apk/withGeckoBinaries/debug/geckoview_example-withGeckoBinaries-debug.apk
@@ -691,16 +741,20 @@ android-x86_64/debug:
     worker-type: aws-provisioner-v1/gecko-{level}-b-android
     worker:
         docker-image: {in-tree: android-build}
         max-run-time: 7200
         env:
             GRADLE_USER_HOME: "/builds/worker/workspace/build/src/mobile/android/gradle/dotgradle-offline"
             TOOLTOOL_MANIFEST: "mobile/android/config/tooltool-manifests/android-x86/releng.manifest"
         artifacts:
+            - name: public/android/maven
+              # TODO Bug 1433198. Remove the following entry once target.maven.zip is uploaded to a maven repository
+              path: /builds/worker/workspace/build/src/obj-firefox/gradle/build/mobile/android/geckoview/maven/
+              type: directory
             - name: public/build/target.maven.zip
               path: /builds/worker/workspace/build/src/obj-firefox/gradle/build/mobile/android/geckoview/target.maven.zip
               type: file
             - name: public/build/geckoview-androidTest.apk
               path: /builds/worker/workspace/build/src/obj-firefox/gradle/build/mobile/android/geckoview/outputs/apk/androidTest/withGeckoBinaries/debug/geckoview-withGeckoBinaries-debug-androidTest.apk
               type: file
             - name: public/build/geckoview_example.apk
               path: /builds/worker/workspace/build/src/obj-firefox/gradle/build/mobile/android/geckoview_example/outputs/apk/withGeckoBinaries/debug/geckoview_example-withGeckoBinaries-debug.apk
@@ -723,136 +777,8 @@ android-x86_64/debug:
         - android-sdk-linux
         - linux64-clang
         - linux64-rust-android
         - linux64-rust-size
         - linux64-cbindgen
         - linux64-sccache
         - linux64-nasm
         - linux64-node
-
-android-geckoview-fat-aar/opt:
-    description: "Android GeckoView multi-architecture fat AAR Opt"
-    index:
-        product: mobile
-        job-name: android-geckoview-fat-aar-opt
-    treeherder:
-        platform: android-4-0-geckoview-fat-aar/opt
-        symbol: Bgv
-    worker-type: aws-provisioner-v1/gecko-{level}-b-android
-    dependencies:
-        android-x86: build-android-x86/opt
-        android-x86_64: build-android-x86_64/opt
-        android-api-16: build-android-api-16/opt
-        android-aarch64: build-android-aarch64/opt
-    worker:
-        docker-image: {in-tree: android-build}
-        max-run-time: 7200
-        env:
-            # Online in order to download the per-architecture AARs.
-            GRADLE_USER_HOME: "/builds/worker/workspace/build/src/mobile/android/gradle/dotgradle-online"
-            TOOLTOOL_MANIFEST: "mobile/android/config/tooltool-manifests/android/releng.manifest"
-            PERFHERDER_EXTRA_OPTIONS: android-geckoview-fat-aar-opt
-            MOZ_ANDROID_FAT_AAR_TARGETS: {artifact-reference: "x86=<android-x86/public/build/target.maven.zip>,\
-                                                               x86_64=<android-x86_64/public/build/target.maven.zip>,\
-                                                               armeabi-v7a=<android-api-16/public/build/target.maven.zip>,\
-                                                               arm64-v8a=<android-aarch64/public/build/target.maven.zip>"}
-        artifacts:
-            - name: public/build/target.maven.zip
-              path: /builds/worker/workspace/build/src/obj-firefox/gradle/build/mobile/android/geckoview/target.maven.zip
-              type: file
-            - name: public/build/geckoview-androidTest.apk
-              path: /builds/worker/workspace/build/src/obj-firefox/gradle/build/mobile/android/geckoview/outputs/apk/androidTest/withGeckoBinaries/debug/geckoview-withGeckoBinaries-debug-androidTest.apk
-              type: file
-            - name: public/build/geckoview_example.apk
-              path: /builds/worker/workspace/build/src/obj-firefox/gradle/build/mobile/android/geckoview_example/outputs/apk/withGeckoBinaries/debug/geckoview_example-withGeckoBinaries-debug.apk
-              type: file
-            - name: public/build
-              path: /builds/worker/artifacts/
-              type: directory
-    run:
-        using: mozharness
-        actions: [get-secrets, build, multi-l10n]
-        config:
-            - builds/releng_base_android_64_builds.py
-        script: "mozharness/scripts/fx_desktop_build.py"
-        secrets: true
-        custom-build-variant-cfg: api-16
-        tooltool-downloads: internal
-    toolchains:
-        - android-gradle-dependencies
-        - android-ndk-linux
-        - android-sdk-linux
-        - linux64-clang
-        - linux64-rust-android
-        - linux64-rust-size
-        - linux64-cbindgen
-        - linux64-sccache
-        - linux64-nasm
-        - linux64-node
-
-android-geckoview-fat-aar-nightly/opt:
-    description: "Android GeckoView multi-architecture fat AAR Nightly"
-    attributes:
-        nightly: true
-        enable-full-crashsymbols: true
-        disable-push-apk: true
-        disable-build-signing: true
-    shipping-phase: build
-    shipping-product: fennec
-    index:
-        product: mobile
-        job-name: android-geckoview-fat-aar-nightly
-        type: nightly-with-multi-l10n
-    treeherder:
-        platform: android-4-0-geckoview-fat-aar/opt
-        symbol: Ngv
-    worker-type: aws-provisioner-v1/gecko-{level}-b-android
-    dependencies:
-        android-x86: build-android-x86-nightly/opt
-        android-x86_64: build-android-x86_64-nightly/opt
-        android-api-16: build-android-api-16-nightly/opt
-        android-aarch64: build-android-aarch64-nightly/opt
-    worker:
-        docker-image: {in-tree: android-build}
-        max-run-time: 7200
-        env:
-            # Online in order to download the per-architecture AARs.
-            GRADLE_USER_HOME: "/builds/worker/workspace/build/src/mobile/android/gradle/dotgradle-online"
-            TOOLTOOL_MANIFEST: "mobile/android/config/tooltool-manifests/android/releng.manifest"
-            PERFHERDER_EXTRA_OPTIONS: android-geckoview-fat-aar-nightly
-            MOZ_ANDROID_FAT_AAR_TARGETS: {artifact-reference: "x86=<android-x86/public/build/target.maven.zip>,\
-                                                               x86_64=<android-x86_64/public/build/target.maven.zip>,\
-                                                               armeabi-v7a=<android-api-16/public/build/target.maven.zip>,\
-                                                               arm64-v8a=<android-aarch64/public/build/target.maven.zip>"}
-        artifacts:
-            - name: public/build/target.maven.zip
-              path: /builds/worker/workspace/build/src/obj-firefox/gradle/build/mobile/android/geckoview/target.maven.zip
-              type: file
-            - name: public/build/geckoview-androidTest.apk
-              path: /builds/worker/workspace/build/src/obj-firefox/gradle/build/mobile/android/geckoview/outputs/apk/androidTest/withGeckoBinaries/debug/geckoview-withGeckoBinaries-debug-androidTest.apk
-              type: file
-            - name: public/build/geckoview_example.apk
-              path: /builds/worker/workspace/build/src/obj-firefox/gradle/build/mobile/android/geckoview_example/outputs/apk/withGeckoBinaries/debug/geckoview_example-withGeckoBinaries-debug.apk
-              type: file
-            - name: public/build
-              path: /builds/worker/artifacts/
-              type: directory
-    run:
-        using: mozharness
-        actions: [get-secrets, build, multi-l10n]
-        config:
-            - builds/releng_base_android_64_builds.py
-            - taskcluster_nightly.py
-        script: "mozharness/scripts/fx_desktop_build.py"
-        secrets: true
-        custom-build-variant-cfg: api-16
-        tooltool-downloads: internal
-    toolchains:
-        - android-gradle-dependencies
-        - android-ndk-linux
-        - android-sdk-linux
-        - linux64-clang
-        - linux64-rust-android
-        - linux64-rust-size
-        - linux64-cbindgen
-        - linux64-nasm
-        - linux64-node
--- a/taskcluster/docs/attributes.rst
+++ b/taskcluster/docs/attributes.rst
@@ -297,19 +297,8 @@ openh264_rev
 Only used for openh264 plugin builds, used to signify the revision (and thus inform artifact name) of the given build.
 
 code-review
 ===========
 If a task set this boolean attribute to `true`, it will be processed by the code
 review bot, the task will ran for every new Phabricator diff.
 Any supported and detected issue will be automatically reported on the
 Phabricator revision.
-
-disable-push-apk
-================
-Some GeckoView-only Android tasks produce APKs that shouldn't be
-pushed to the Google Play Store.  Set this to ``true`` to disable
-pushing.
-
-disable-build-signing
-=====================
-Some GeckoView-only tasks produce APKs, but not APKs that should be
-signed.  Set this to ``true`` to disable APK signing.
--- a/taskcluster/taskgraph/loader/build_signing.py
+++ b/taskcluster/taskgraph/loader/build_signing.py
@@ -27,11 +27,9 @@ NON_NIGHTLY_LABELS_WHICH_SHOULD_SIGN_BUI
 
 def loader(kind, path, config, params, loaded_tasks):
     jobs = base_loader(kind, path, config, params, loaded_tasks)
 
     for job in jobs:
         dependent_task = job['primary-dependency']
         if dependent_task.attributes.get('nightly') or \
                 dependent_task.label in NON_NIGHTLY_LABELS_WHICH_SHOULD_SIGN_BUILDS:
-            # Bug 1522581: Some GeckoView-only tasks produce APKs that shouldn't be signed.
-            if not dependent_task.attributes.get('disable-build-signing', False):
-                yield job
+            yield job
--- a/taskcluster/taskgraph/loader/push_apk.py
+++ b/taskcluster/taskgraph/loader/push_apk.py
@@ -30,19 +30,17 @@ def get_dependent_loaded_tasks(config, p
     nightly_tasks = (
         task for task in loaded_tasks if task.attributes.get('nightly')
     )
     tasks_with_matching_kind = (
         task for task in nightly_tasks if task.kind in config.get('kind-dependencies')
     )
     android_tasks = (
         task for task in tasks_with_matching_kind
-        if task.attributes.get('build_platform', '').startswith('android') and
-        # Bug 1522581: Some GeckoView-only tasks produce APKs that shouldn't be pushed.
-        not task.attributes.get('disable-push-apk', False)
+        if task.attributes.get('build_platform', '').startswith('android')
     )
 
     # TODO Bug 1368484: Aarch64 is not planned to ride the trains regularly. It may stay on nightly
     # for a few cycles. Then, we should activate it on beta then release, once ready.
     if params['project'] in ('mozilla-central', 'try'):
         shipping_tasks = list(android_tasks)
     else:
         shipping_tasks = [
--- a/taskcluster/taskgraph/target_tasks.py
+++ b/taskcluster/taskgraph/target_tasks.py
@@ -449,17 +449,16 @@ def target_tasks_nightly_fennec(full_tas
         platform = task.attributes.get('build_platform')
         if not filter_for_project(task, parameters):
             return False
         if platform in ('android-aarch64-nightly',
                         'android-api-16-nightly',
                         'android-nightly',
                         'android-x86-nightly',
                         'android-x86_64-nightly',
-                        'android-geckoview-fat-aar-nightly',
                         ):
             if not task.attributes.get('nightly', False):
                 return False
             return filter_for_project(task, parameters)
     filter
     return [l for l, t in full_task_graph.tasks.iteritems() if filter(t)]
 
 
--- a/taskcluster/taskgraph/transforms/beetmover_geckoview.py
+++ b/taskcluster/taskgraph/transforms/beetmover_geckoview.py
@@ -22,17 +22,16 @@ from taskgraph.transforms.task import ta
 from voluptuous import Required, Optional
 
 
 _ARTIFACT_ID_PER_PLATFORM = {
     'android-aarch64': 'geckoview{update_channel}-arm64-v8a',
     'android-api-16': 'geckoview{update_channel}-armeabi-v7a',
     'android-x86': 'geckoview{update_channel}-x86',
     'android-x86_64': 'geckoview{update_channel}-x86_64',
-    'android-geckoview-fat-aar': 'geckoview',
 }
 
 _MOZ_UPDATE_CHANNEL_PER_BRANCH = {
     'mozilla-release': '',
     'mozilla-beta': '-beta',
     'mozilla-central': '-nightly',
     'try': '-nightly-try',
     'maple': '-nightly-maple',
--- a/toolkit/content/moz.build
+++ b/toolkit/content/moz.build
@@ -1,27 +1,20 @@
 # -*- Mode: python; indent-tabs-mode: nil; tab-width: 40 -*-
 # vim: set filetype=python:
 # This Source Code Form is subject to the terms of the Mozilla Public
 # License, v. 2.0. If a copy of the MPL was not distributed with this
 # file, You can obtain one at http://mozilla.org/MPL/2.0/.
 
 TEST_DIRS += ['tests']
 
-for var in ('MOZ_CONFIGURE_OPTIONS', 'CC', 'CC_VERSION', 'CXX',
+for var in ('target', 'MOZ_CONFIGURE_OPTIONS', 'CC', 'CC_VERSION', 'CXX',
             'RUSTC', 'RUSTC_VERSION'):
     DEFINES[var] = CONFIG[var]
 
-if CONFIG['MOZ_ANDROID_FAT_AAR_TARGETS']:
-    # Turn ["arch1=url1", "arch2=url2"] into "arch1</td><td>arch2".  Yes, this
-    # relies on not sanitizing the interpolated string.
-    DEFINES['target'] = '</td><td>'.join(sorted(arch.split('=')[0] for arch in CONFIG['MOZ_ANDROID_FAT_AAR_TARGETS']))
-else:
-    DEFINES['target'] = CONFIG['target']
-
 DEFINES['CFLAGS'] = ' '.join(CONFIG['OS_CFLAGS'])
 
 rustflags = CONFIG['RUSTFLAGS']
 if not rustflags:
     rustflags = []
 DEFINES['RUSTFLAGS'] = ' '.join(rustflags)
 
 cxx_flags = []