Bug 1268944 - Remove GeckoView packaging. r=chmanchester
authorNick Alexander <nalexander@mozilla.com>
Mon, 25 Jul 2016 11:54:03 -0700
changeset 346769 efc0b2d797abeb7624071731e6cb25704b502bae
parent 346768 7d72abc1d007f89dd001f7136e112e36ca0f5f05
child 346770 928a0bdcea4c62fa1d192815199051281fd2c49f
push id6389
push userraliiev@mozilla.com
push dateMon, 19 Sep 2016 13:38:22 +0000
treeherdermozilla-beta@01d67bfe6c81 [default view] [failures only]
perfherder[talos] [build metrics] [platform microbench] (compared to previous push)
reviewerschmanchester
bugs1268944
milestone50.0a1
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
Bug 1268944 - Remove GeckoView packaging. r=chmanchester The best kind of patch: bulk deletion. This removes two separate but similar build flags, and an unsupported integration piece. The first packaged Fennec's resources into an ill-defined GeckoView archive; the second built on the first to produce an Android ARchive for external consumption. Neither of these artifacts are supported or have consumers; in fact, they mislead potential consumers, since they're known to be broken. The Gradle build work under the --with-gradle flag, and significant follow-up, is the path forward if Mozilla wants to invest in packaging GeckoView on Android for external consumption. That is, rather than hacking together AAR files, we'll use the well-supported Gradle mechanisms for building and publishing such libraries. MozReview-Commit-ID: 4Z1jJ8z0cyJ
mobile/android/base/Makefile.in
mobile/android/config/mozconfigs/android-api-15-frontend/nightly
mobile/android/config/mozconfigs/android-api-15-gradle-dependencies/nightly
mobile/android/config/mozconfigs/android-api-15/l10n-nightly
mobile/android/config/mozconfigs/android-api-15/l10n-release
mobile/android/config/mozconfigs/android-api-15/nightly
mobile/android/config/mozconfigs/android-x86/l10n-nightly
mobile/android/config/mozconfigs/android-x86/l10n-release
mobile/android/config/mozconfigs/public-partner/distribution_sample/mozconfig1
mobile/android/geckoview_library/.classpath
mobile/android/geckoview_library/.project
mobile/android/geckoview_library/AndroidManifest.xml.in
mobile/android/geckoview_library/Makefile.in
mobile/android/geckoview_library/build.xml
mobile/android/geckoview_library/geckolibs/AndroidManifest.xml
mobile/android/geckoview_library/geckolibs/classes.jar
mobile/android/geckoview_library/geckoview/AndroidManifest.xml
mobile/android/geckoview_library/local.properties.in
mobile/android/geckoview_library/moz.build
mobile/android/geckoview_library/project.properties.in
mobile/android/moz.build
old-configure.in
python/mozbuild/mozbuild/action/package_geckolibs_aar.py
toolkit/mozapps/installer/upload-files-APK.mk
--- a/mobile/android/base/Makefile.in
+++ b/mobile/android/base/Makefile.in
@@ -387,43 +387,16 @@ res/raw/browsersearch.json: .locales.dep
 res/raw/suggestedsites.json: .locales.deps ;
 
 all_resources = \
   $(DEPTH)/mobile/android/base/AndroidManifest.xml \
   $(android_res_files) \
   $(ANDROID_GENERATED_RESFILES) \
   $(NULL)
 
-# For GeckoView, we want a zip of an Android res/ directory that
-# merges the contents of all the ANDROID_RES_DIRS.  The inner res/
-# directory must have the Android resource two-layer hierarchy.
-
-# The following helper zips files in a directory into a zip file while
-# maintaining the directory structure rooted below the directory.
-# (adding or creating said file as appropriate).  For example, if the
-# dir contains dir/subdir/file, calling with directory dir would
-# create a zip containing subdir/file.  Note: the trailing newline is
-# necessary.
-
-# $(1): zip file to add to (or create).
-# $(2): directory to zip contents of.
-define zip_directory_with_relative_paths
-cd $(2) && zip -q $(1) -r * -x $(subst *,\*,$(not_android_res_files))
-
-endef
-
-ifndef MOZ_DISABLE_GECKOVIEW
-# We delete the archive before updating so that resources removed from
-# the filesystem are removed from the archive.
-geckoview_resources.zip: $(all_resources) $(GLOBAL_DEPS)
-	$(REPORT_BUILD)
-	$(RM) -rf $@
-	$(foreach dir,$(ANDROID_RES_DIRS),$(call zip_directory_with_relative_paths,$(CURDIR)/$@,$(dir)))
-endif
-
 # All of generated/org/mozilla/gecko/R.java, gecko.ap_, and R.txt are
 # produced by aapt; this saves aapt invocations.  The trailing
 # semi-colon defines an empty recipe; defining no recipe at all causes
 # Make to treat the target differently, in a way that defeats our
 # dependencies.
 
 generated/org/mozilla/gecko/R.java: .aapt.deps ;
 
@@ -544,21 +517,16 @@ ifndef MOZILLA_OFFICIAL
 gradle-omnijar: $(abspath $(DIST)/fennec/$(OMNIJAR_NAME))
 else
 # In automation, omni.ja is built only during packaging.
 gradle-omnijar:
 endif
 
 .PHONY: gradle-targets gradle-omnijar
 
-ifndef MOZ_DISABLE_GECKOVIEW
-libs:: geckoview_resources.zip
-	$(INSTALL) geckoview_resources.zip $(FINAL_TARGET)
-endif
-
 # GeneratedJNIWrappers.cpp target also generates
 # GeneratedJNIWrappers.h and GeneratedJNINatives.h
 ifndef MOZ_BUILD_MOBILE_ANDROID_WITH_GRADLE
 libs:: jni-stubs.inc GeneratedJNIWrappers.cpp
 	@(diff jni-stubs.inc $(topsrcdir)/mozglue/android/jni-stubs.inc >/dev/null && \
 	  diff GeneratedJNIWrappers.cpp $(topsrcdir)/widget/android/GeneratedJNIWrappers.cpp >/dev/null && \
 	  diff GeneratedJNIWrappers.h $(topsrcdir)/widget/android/GeneratedJNIWrappers.h >/dev/null && \
 	  diff GeneratedJNINatives.h $(topsrcdir)/widget/android/GeneratedJNINatives.h >/dev/null) || \
--- a/mobile/android/config/mozconfigs/android-api-15-frontend/nightly
+++ b/mobile/android/config/mozconfigs/android-api-15-frontend/nightly
@@ -35,11 +35,9 @@ ac_add_options --with-branding=mobile/an
 
 # 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
 
-MOZ_ANDROID_GECKOLIBS_AAR=1
-
 . "$topsrcdir/mobile/android/config/mozconfigs/common.override"
--- a/mobile/android/config/mozconfigs/android-api-15-gradle-dependencies/nightly
+++ b/mobile/android/config/mozconfigs/android-api-15-gradle-dependencies/nightly
@@ -37,11 +37,9 @@ ac_add_options --with-branding=mobile/an
 
 # 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
 
-MOZ_ANDROID_GECKOLIBS_AAR=1
-
 . "$topsrcdir/mobile/android/config/mozconfigs/common.override"
--- a/mobile/android/config/mozconfigs/android-api-15/l10n-nightly
+++ b/mobile/android/config/mozconfigs/android-api-15/l10n-nightly
@@ -10,17 +10,16 @@ ac_add_options --disable-tests
 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
 
 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=
--- a/mobile/android/config/mozconfigs/android-api-15/l10n-release
+++ b/mobile/android/config/mozconfigs/android-api-15/l10n-release
@@ -10,17 +10,16 @@ ac_add_options --disable-tests
 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
 
 ac_add_options --enable-official-branding
 ac_add_options --with-branding=mobile/android/branding/beta
 
 ac_add_options --disable-stdcxx-compat
 
 # Don't autoclobber l10n, as this can lead to missing binaries and broken builds
 # Bug 1283438
--- a/mobile/android/config/mozconfigs/android-api-15/nightly
+++ b/mobile/android/config/mozconfigs/android-api-15/nightly
@@ -10,11 +10,9 @@ ac_add_options --with-branding=mobile/an
 
 # 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
 
-MOZ_ANDROID_GECKOLIBS_AAR=1
-
 . "$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
@@ -9,17 +9,16 @@ ac_add_options --disable-tests
 # Android
 ac_add_options --target=i386-linux-android
 ac_add_options --with-android-min-sdk=15
 
 ac_add_options --enable-updater
 ac_add_options --enable-update-channel=${MOZ_UPDATE_CHANNEL}
 
 export MOZILLA_OFFICIAL=1
-export MOZ_DISABLE_GECKOVIEW=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=
--- a/mobile/android/config/mozconfigs/android-x86/l10n-release
+++ b/mobile/android/config/mozconfigs/android-x86/l10n-release
@@ -9,17 +9,16 @@ ac_add_options --disable-tests
 # Android
 ac_add_options --target=i386-linux-android
 ac_add_options --with-android-min-sdk=15
 
 ac_add_options --enable-updater
 ac_add_options --enable-update-channel=${MOZ_UPDATE_CHANNEL}
 
 export MOZILLA_OFFICIAL=1
-export MOZ_DISABLE_GECKOVIEW=1
 
 ac_add_options --enable-official-branding
 ac_add_options --with-branding=mobile/android/branding/beta
 
 ac_add_options --disable-stdcxx-compat
 
 # Don't autoclobber l10n, as this can lead to missing binaries and broken builds
 # Bug 1283438
--- a/mobile/android/config/mozconfigs/public-partner/distribution_sample/mozconfig1
+++ b/mobile/android/config/mozconfigs/public-partner/distribution_sample/mozconfig1
@@ -13,11 +13,9 @@ ac_add_options --with-android-distributi
 
 # 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
 
-MOZ_ANDROID_GECKOLIBS_AAR=1
-
 . "$topsrcdir/mobile/android/config/mozconfigs/common.override"
deleted file mode 100644
--- a/mobile/android/geckoview_library/.classpath
+++ /dev/null
@@ -1,13 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<classpath>
-	<classpathentry kind="src" path="src"/>
-	<classpathentry kind="src" path="gen"/>
-	<classpathentry kind="con" path="com.android.ide.eclipse.adt.ANDROID_FRAMEWORK"/>
-	<classpathentry exported="true" kind="con" path="com.android.ide.eclipse.adt.LIBRARIES">
-		<attributes>
-			<attribute name="org.eclipse.jdt.launching.CLASSPATH_ATTR_LIBRARY_PATH_ENTRY" value="geckoview_library/libs/armeabi-v7a"/>
-		</attributes>
-	</classpathentry>
-	<classpathentry exported="true" kind="con" path="com.android.ide.eclipse.adt.DEPENDENCIES"/>
-	<classpathentry kind="output" path="bin/classes"/>
-</classpath>
deleted file mode 100644
--- a/mobile/android/geckoview_library/.project
+++ /dev/null
@@ -1,33 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<projectDescription>
-	<name>GeckoView</name>
-	<comment></comment>
-	<projects>
-	</projects>
-	<buildSpec>
-		<buildCommand>
-			<name>com.android.ide.eclipse.adt.ResourceManagerBuilder</name>
-			<arguments>
-			</arguments>
-		</buildCommand>
-		<buildCommand>
-			<name>com.android.ide.eclipse.adt.PreCompilerBuilder</name>
-			<arguments>
-			</arguments>
-		</buildCommand>
-		<buildCommand>
-			<name>org.eclipse.jdt.core.javabuilder</name>
-			<arguments>
-			</arguments>
-		</buildCommand>
-		<buildCommand>
-			<name>com.android.ide.eclipse.adt.ApkBuilder</name>
-			<arguments>
-			</arguments>
-		</buildCommand>
-	</buildSpec>
-	<natures>
-		<nature>com.android.ide.eclipse.adt.AndroidNature</nature>
-		<nature>org.eclipse.jdt.core.javanature</nature>
-	</natures>
-</projectDescription>
deleted file mode 100644
--- a/mobile/android/geckoview_library/AndroidManifest.xml.in
+++ /dev/null
@@ -1,13 +0,0 @@
-#filter substitution
-<manifest xmlns:android="http://schemas.android.com/apk/res/android"
-    package="org.mozilla.gecko"
-    android:versionCode="1"
-    android:versionName="1.0" >
-
-    <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/>
-    <uses-permission android:name="android.permission.INTERNET"/>
-    <uses-sdk
-        android:minSdkVersion="8"
-        android:targetSdkVersion="@ANDROID_TARGET_SDK@" />
-
-</manifest>
deleted file mode 100644
--- a/mobile/android/geckoview_library/Makefile.in
+++ /dev/null
@@ -1,44 +0,0 @@
-# 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/.
-
-GARBAGE_DIRS = \
-  bin \
-  libs \
-  src \
-  .deps \
-  gen  \
-  res \
-  $(NULL)
-
-include $(topsrcdir)/config/rules.mk
-
-dist_files = $(addprefix $(ABS_DIST)/bin/, libmozglue.so $(MOZ_CHILD_PROCESS_NAME) $(MOZ_CHILD_PROCESS_NAME_PIE))
-
-package: local.properties project.properties AndroidManifest.xml FORCE
-	# Make directory for the zips
-	$(MKDIR) -p $(ABS_DIST)/geckoview_library
-
-	# Zip the assets into $(DIST)/geckoview_library/geckoview_assets.zip
-	$(call py_action,zip,-C $(ABS_DIST)/$(MOZ_APP_NAME) $(ABS_DIST)/geckoview_library/geckoview_assets.zip assets)
-
-	# Make empty directories to fit an Android project structure
-	$(MKDIR) -p bin gen libs/$(ANDROID_CPU_ARCH) src
-
-	# Copy the JARs, except for the jar containing org.mozilla.gecko.R.
-	# org.mozilla.gecko.R will be provided by the embedding application.
-	cp $(DEPTH)/mobile/android/base/*.jar libs/
-	$(RM) libs/gecko-R.jar
-
-	# Copy the SOs.
-	cp $(dist_files) libs/$(ANDROID_CPU_ARCH)/
-
-	# Copy the resources
-	$(RM) -rf res
-	$(MKDIR) -p res
-	cd res && \
-	$(UNZIP) -q -u -o $(ABS_DIST)/bin/geckoview_resources.zip
-
-	# Zip the directory
-	cd $(DEPTH)/mobile/android && \
-	$(ZIP) -q -r $(ABS_DIST)/geckoview_library/geckoview_library.zip geckoview_library -x geckoview_library/backend.mk geckoview_library/Makefile
deleted file mode 100644
--- a/mobile/android/geckoview_library/build.xml
+++ /dev/null
@@ -1,92 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<project name="GeckoView" default="help">
-
-    <!-- The local.properties file is created and updated by the 'android' tool.
-         It contains the path to the SDK. It should *NOT* be checked into
-         Version Control Systems. -->
-    <property file="local.properties" />
-
-    <!-- The ant.properties file can be created by you. It is only edited by the
-         'android' tool to add properties to it.
-         This is the place to change some Ant specific build properties.
-         Here are some properties you may want to change/update:
-
-         source.dir
-             The name of the source directory. Default is 'src'.
-         out.dir
-             The name of the output directory. Default is 'bin'.
-
-         For other overridable properties, look at the beginning of the rules
-         files in the SDK, at tools/ant/build.xml
-
-         Properties related to the SDK location or the project target should
-         be updated using the 'android' tool with the 'update' action.
-
-         This file is an integral part of the build system for your
-         application and should be checked into Version Control Systems.
-
-         -->
-    <!--<property file="ant.properties" />-->
-
-    <!-- if sdk.dir was not set from one of the property file, then
-         get it from the ANDROID_HOME env var.
-         This must be done before we load project.properties since
-         the proguard config can use sdk.dir -->
-    <property environment="env" />
-    <condition property="sdk.dir" value="${env.ANDROID_HOME}">
-        <isset property="env.ANDROID_HOME" />
-    </condition>
-
-    <!-- The project.properties file is created and updated by the 'android'
-         tool, as well as ADT.
-
-         This contains project specific properties such as project target, and library
-         dependencies. Lower level build properties are stored in ant.properties
-         (or in .classpath for Eclipse projects).
-
-         This file is an integral part of the build system for your
-         application and should be checked into Version Control Systems. -->
-    <loadproperties srcFile="project.properties" />
-
-    <!-- quick check on sdk.dir -->
-    <fail
-            message="sdk.dir is missing. Make sure to generate local.properties using 'android update project' or to inject it through the ANDROID_HOME environment variable."
-            unless="sdk.dir"
-    />
-
-    <!--
-        Import per project custom build rules if present at the root of the project.
-        This is the place to put custom intermediary targets such as:
-            -pre-build
-            -pre-compile
-            -post-compile (This is typically used for code obfuscation.
-                           Compiled code location: ${out.classes.absolute.dir}
-                           If this is not done in place, override ${out.dex.input.absolute.dir})
-            -post-package
-            -post-build
-            -pre-clean
-    -->
-    <import file="custom_rules.xml" optional="true" />
-
-    <!-- Import the actual build file.
-
-         To customize existing targets, there are two options:
-         - Customize only one target:
-             - copy/paste the target into this file, *before* the
-               <import> task.
-             - customize it to your needs.
-         - Customize the whole content of build.xml
-             - copy/paste the content of the rules files (minus the top node)
-               into this file, replacing the <import> task.
-             - customize to your needs.
-
-         ***********************
-         ****** IMPORTANT ******
-         ***********************
-         In all cases you must update the value of version-tag below to read 'custom' instead of an integer,
-         in order to avoid having your file be overridden by tools such as "android update project"
-    -->
-    <!-- version-tag: 1 -->
-    <import file="${sdk.dir}/tools/ant/build.xml" />
-
-</project>
deleted file mode 100644
--- a/mobile/android/geckoview_library/geckolibs/AndroidManifest.xml
+++ /dev/null
@@ -1,4 +0,0 @@
-<manifest xmlns:android="http://schemas.android.com/apk/res/android"
-    package="org.mozilla.gecko.libs">
-
-</manifest>
deleted file mode 100644
index 09af11bda0c895e33494d4aac83c1171c3267ab8..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391
GIT binary patch
literal 0
Hc$@<O00001
deleted file mode 100644
--- a/mobile/android/geckoview_library/geckoview/AndroidManifest.xml
+++ /dev/null
@@ -1,9 +0,0 @@
-<manifest xmlns:android="http://schemas.android.com/apk/res/android"
-    package="org.mozilla.gecko">
-
-    <uses-permission android:name="android.permission.ACCESS_WIFI_STATE"/>
-    <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION"/>
-    <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/>
-    <uses-permission android:name="android.permission.INTERNET"/>
-
-</manifest>
deleted file mode 100644
--- a/mobile/android/geckoview_library/local.properties.in
+++ /dev/null
@@ -1,11 +0,0 @@
-#filter substitution
-# This file is automatically generated by Android Tools.
-# Do not modify this file -- YOUR CHANGES WILL BE ERASED!
-#
-# This file must *NOT* be checked into Version Control Systems,
-# as it contains information specific to your local configuration.
-
-# location of the SDK. This is only used by Ant
-# For customization when using a Version Control System, please read the
-# header note.
-sdk.dir=@ANDROID_SDK_ROOT@
deleted file mode 100644
--- a/mobile/android/geckoview_library/moz.build
+++ /dev/null
@@ -1,20 +0,0 @@
-# -*- 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/.
-
-DEFINES['ANDROID_SDK'] = CONFIG['ANDROID_SDK']
-DEFINES['ANDROID_SDK_ROOT'] = CONFIG['ANDROID_SDK_ROOT']
-
-OBJDIR_FILES.mobile.android.geckoview_library += [
-    '.classpath',
-    '.project',
-    'build.xml',
-]
-
-OBJDIR_PP_FILES.mobile.android.geckoview_library += [
-    'AndroidManifest.xml.in',
-    'local.properties.in',
-    'project.properties.in',
-]
deleted file mode 100644
--- a/mobile/android/geckoview_library/project.properties.in
+++ /dev/null
@@ -1,16 +0,0 @@
-#filter substitution
-# This file is automatically generated by Android Tools.
-# Do not modify this file -- YOUR CHANGES WILL BE ERASED!
-#
-# This file must be checked in Version Control Systems.
-#
-# To customize properties used by the Ant build system edit
-# "ant.properties", and override values to adapt the script to your
-# project structure.
-#
-# To enable ProGuard to shrink and obfuscate your code, uncomment this (available properties: sdk.dir, user.home):
-#proguard.config=${sdk.dir}/tools/proguard/proguard-android.txt:proguard-project.txt
-
-# Project target.
-target=android-@ANDROID_TARGET_SDK@
-android.library=true
--- a/mobile/android/moz.build
+++ b/mobile/android/moz.build
@@ -19,17 +19,16 @@ DIRS += [
     'base',
     'chrome',
     'components',
     'extensions',
     'modules',
     'themes/core',
     'app',
     'fonts',
-    'geckoview_library',
 ]
 
 if CONFIG['MOZ_ANDROID_PACKAGE_INSTALL_BOUNCER']:
     DIRS += ['bouncer'] # No ordering implied with respect to base.
 
 TEST_DIRS += [
     'tests',
 ]
--- a/old-configure.in
+++ b/old-configure.in
@@ -6182,18 +6182,16 @@ AC_SUBST(MOZ_D3D_CPU_SUFFIX)
 AC_SUBST(MOZ_HAS_WINSDK_WITH_D3D)
 AC_SUBST(MOZ_D3DCOMPILER_VISTA_DLL)
 AC_SUBST(MOZ_D3DCOMPILER_VISTA_DLL_PATH)
 AC_SUBST(MOZ_DIRECTX_SDK_PATH)
 AC_SUBST(MOZ_D3DCOMPILER_XP_DLL)
 AC_SUBST(MOZ_D3DCOMPILER_XP_CAB)
 
 AC_SUBST(MOZ_WEBSMS_BACKEND)
-AC_SUBST(MOZ_DISABLE_GECKOVIEW)
-AC_SUBST(MOZ_ANDROID_GECKOLIBS_AAR)
 AC_SUBST(MOZ_ANDROID_APPLICATION_CLASS)
 AC_SUBST(MOZ_ANDROID_BROWSER_INTENT_CLASS)
 AC_SUBST(MOZ_ANDROID_SEARCH_INTENT_CLASS)
 AC_SUBST(MOZ_EXCLUDE_HYPHENATION_DICTIONARIES)
 AC_SUBST(MOZ_INSTALL_TRACKING)
 AC_SUBST(ENABLE_STRIP)
 AC_SUBST(PKG_SKIP_STRIP)
 AC_SUBST(STRIP_FLAGS)
deleted file mode 100644
--- a/python/mozbuild/mozbuild/action/package_geckolibs_aar.py
+++ /dev/null
@@ -1,267 +0,0 @@
-# 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/.
-
-'''
-Script to produce an Android ARchive (.aar) containing the compiled
-Gecko library binaries.  The AAR file is intended for use by local
-developers using Gradle.
-'''
-
-from __future__ import absolute_import, print_function
-
-import argparse
-import hashlib
-import os
-import shutil
-import sys
-import zipfile
-
-from mozbuild import util
-from mozpack.copier import Jarrer
-from mozpack.files import (
-    File,
-    FileFinder,
-    JarFinder,
-)
-from mozpack.mozjar import JarReader
-
-MAVEN_POM_TEMPLATE = r'''
-<?xml version="1.0" encoding="UTF-8"?>
-<project xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd" xmlns="http://maven.apache.org/POM/4.0.0"
-    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
-  <modelVersion>4.0.0</modelVersion>
-  <groupId>{groupId}</groupId>
-  <artifactId>{artifactId}</artifactId>
-  <version>{version}</version>
-  <packaging>{packaging}</packaging>
-  <dependencies>
-    {dependencies}
-  </dependencies>
-</project>
-'''.lstrip()
-
-MAVEN_POM_DEPENDENCY_TEMPLATE = r'''
-  <dependency>
-     <groupId>{groupId}</groupId>
-     <artifactId>{artifactId}</artifactId>
-     <version>{version}</version>
-     <type>{packaging}</type>
-  </dependency>
-'''.lstrip()
-
-IVY_XML_TEMPLATE = r'''
-<?xml version="1.0" encoding="UTF-8"?>
-<ivy-module version="2.0">
-  <info organisation="{organisation}" module="{module}" revision="{revision}" status="integration" publication="{publication}"/>
-  <configurations/>
-  <publications>
-    <artifact name="{name}" type="{type}" ext="{ext}"/>
-  </publications>
-  <dependencies>
-    {dependencies}
-  </dependencies>
-</ivy-module>
-'''.lstrip()
-
-IVY_XML_DEPENDENCY_TEMPLATE = r'''
-<dependency org="{organisation}" name="{name}" rev="{revision}" />
-'''.lstrip()
-
-def _zipdir(path, output_file):
-    zip = zipfile.ZipFile(output_file, "w")
-    for root, dirs, files in os.walk(path, topdown=True):
-        archive_root = root.replace(path, '')
-        for file in files:
-            zip.write(os.path.join(root, file), os.path.join(archive_root, file))
-
-def _generate_geckoview_classes_jar(distdir, base_path):
-    base_folder = FileFinder(base_path, ignore=['gecko-R.jar'])
-
-    # Unzip all jar files into $(DISTDIR)/geckoview_aar_classes.
-    geckoview_aar_classes_path = os.path.join(distdir, 'geckoview_aar_classes')
-    shutil.rmtree(geckoview_aar_classes_path, ignore_errors=True)
-    util.ensureParentDir(geckoview_aar_classes_path)
-
-    for p, f in base_folder.find('*.jar'):
-        with zipfile.ZipFile(f.path) as zf:
-            zf.extractall(geckoview_aar_classes_path)
-
-    # Rezip them into a single classes.jar file.
-    classes_jar_path =  os.path.join(distdir, 'classes.jar')
-    _zipdir(geckoview_aar_classes_path, classes_jar_path)
-    return File(classes_jar_path)
-
-def package_geckolibs_aar(topsrcdir, distdir, appname, output_file):
-    jarrer = Jarrer(optimize=False)
-
-    srcdir = os.path.join(topsrcdir, 'mobile', 'android', 'geckoview_library', 'geckolibs')
-    jarrer.add('AndroidManifest.xml', File(os.path.join(srcdir, 'AndroidManifest.xml')))
-    jarrer.add('classes.jar', File(os.path.join(srcdir, 'classes.jar')))
-
-    jni = FileFinder(os.path.join(distdir, appname, 'lib'))
-    for p, f in jni.find('**/*.so'):
-        jarrer.add(os.path.join('jni', p), f)
-
-    # Include the buildinfo JSON as an asset, to give future consumers at least
-    # a hope of determining where this AAR came from.
-    json = FileFinder(distdir, ignore=['*.mozinfo.json'])
-    for p, f in json.find('*.json'):
-        jarrer.add(os.path.join('assets', p), f)
-
-    # This neatly ignores omni.ja.
-    assets = FileFinder(os.path.join(distdir, appname, 'assets'))
-    for p, f in assets.find('**/*.so'):
-        jarrer.add(os.path.join('assets', p), f)
-
-    jarrer.copy(output_file)
-    return 0
-
-def package_geckoview_aar(topsrcdir, distdir, appname, output_file):
-    jarrer = Jarrer(optimize=False)
-    app_path = os.path.join(distdir, appname)
-    assets = FileFinder(os.path.join(app_path, 'assets'), ignore=['*.so'])
-    for p, f in assets.find('omni.ja'):
-        jarrer.add(os.path.join('assets', p), f)
-
-    # The folder that contains Fennec's JAR files and resources.
-    base_path = os.path.join(distdir, '..', 'mobile', 'android', 'base')
-
-    # The resource set is packaged during Fennec's build.
-    resjar = JarReader(os.path.join(base_path, 'geckoview_resources.zip'))
-    for p, f in JarFinder(base_path, resjar).find('*'):
-        jarrer.add(os.path.join('res', p), f)
-
-    # Package the contents of all Fennec JAR files into classes.jar.
-    classes_jar_file = _generate_geckoview_classes_jar(distdir, base_path)
-    jarrer.add('classes.jar', classes_jar_file)
-
-    # Add R.txt.
-    jarrer.add('R.txt', File(os.path.join(base_path, 'R.txt')))
-
-    # Finally add AndroidManifest.xml.
-    srcdir = os.path.join(topsrcdir, 'mobile', 'android', 'geckoview_library', 'geckoview')
-    jarrer.add('AndroidManifest.xml', File(os.path.join(srcdir, 'AndroidManifest.xml')))
-
-    jarrer.copy(output_file)
-    return 0
-
-def main(args):
-    parser = argparse.ArgumentParser()
-    parser.add_argument(dest='dir',
-                        metavar='DIR',
-                        help='Path to write Android ARchives and metadata to.')
-    parser.add_argument('--verbose', '-v', default=False, action='store_true',
-                        help='be verbose')
-    parser.add_argument('--revision',
-                        help='Revision identifier to write.')
-    parser.add_argument('--topsrcdir',
-                        help='Top source directory.')
-    parser.add_argument('--distdir',
-                        help='Distribution directory (usually $OBJDIR/dist).')
-    parser.add_argument('--appname',
-                        help='Application name (usually $MOZ_APP_NAME, like "fennec").')
-    parser.add_argument('--purge-old', default=False, action='store_true',
-                        help='Delete any existing output files in the output directory.')
-    args = parser.parse_args(args)
-
-    # An Ivy 'publication' date must be given in the form yyyyMMddHHmmss, and Mozilla buildids are in this format.
-    if len(args.revision) != 14:
-        raise ValueError('Revision must be in yyyyMMddHHmmss format: %s' % args.revision)
-
-    paths_to_hash = []
-
-    groupId='org.mozilla'
-    packaging_type='aar'
-    gecklibs_aar = os.path.join(args.dir, 'geckolibs-{revision}.aar').format(revision=args.revision)
-    paths_to_hash.append(gecklibs_aar)
-    geckoview_aar = os.path.join(args.dir, 'geckoview-{revision}.aar').format(revision=args.revision)
-    paths_to_hash.append(geckoview_aar)
-
-    if args.purge_old:
-        old_output_finder = FileFinder(args.dir, find_executables=False)
-        for p, f in old_output_finder.find('geckoview-*.*'):
-            os.remove(f.path)
-        for p, f in old_output_finder.find('geckolibs-*.*'):
-            os.remove(f.path)
-        for p, f in old_output_finder.find('ivy-*.*'):
-            os.remove(f.path)
-
-    package_geckolibs_aar(args.topsrcdir, args.distdir, args.appname, gecklibs_aar)
-    package_geckoview_aar(args.topsrcdir, args.distdir, args.appname, geckoview_aar)
-
-    geckolibs_pom_path = os.path.join(args.dir, 'geckolibs-{revision}.pom').format(revision=args.revision)
-    paths_to_hash.append(geckolibs_pom_path)
-    geckolibs_pom = MAVEN_POM_TEMPLATE.format(
-            groupId=groupId,
-            artifactId='geckolibs',
-            version=args.revision,
-            packaging=packaging_type,
-            dependencies=''
-        )
-
-    with open(geckolibs_pom_path, 'wt') as f:
-        f.write(geckolibs_pom)
-
-    geckoview_pom_path = os.path.join(args.dir, 'geckoview-{revision}.pom').format(revision=args.revision)
-    paths_to_hash.append(geckoview_pom_path)
-    geckoview_pom = MAVEN_POM_TEMPLATE.format(
-        groupId=groupId,
-        artifactId='geckoview',
-        version=args.revision,
-        packaging=packaging_type,
-        dependencies=MAVEN_POM_DEPENDENCY_TEMPLATE.format(
-            groupId=groupId,
-            artifactId='geckolibs',
-            version=args.revision,
-            packaging=packaging_type
-        )
-    )
-
-    with open(geckoview_pom_path, 'wt') as f:
-        f.write(geckoview_pom)
-
-    geckolibs_ivy_path = os.path.join(args.dir, 'ivy-geckolibs-{revision}.xml').format(revision=args.revision)
-    paths_to_hash.append(geckolibs_ivy_path)
-    with open(geckolibs_ivy_path, 'wt') as f:
-        f.write(IVY_XML_TEMPLATE.format(
-            organisation=groupId,
-            module='geckolibs',
-            revision=args.revision,
-            publication=args.revision, # A white lie.
-            name='geckolibs',
-            type=packaging_type,
-            ext=packaging_type,
-            dependencies=''
-        ))
-
-    geckoview_ivy_path = os.path.join(args.dir, 'ivy-geckoview-{revision}.xml').format(revision=args.revision)
-    paths_to_hash.append(geckoview_ivy_path)
-    with open(geckoview_ivy_path, 'wt') as f:
-        f.write(IVY_XML_TEMPLATE.format(
-            organisation=groupId,
-            module='geckoview',
-            revision=args.revision,
-            publication=args.revision, # A white lie.
-            name='geckoview',
-            type=packaging_type,
-            ext=packaging_type,
-            dependencies=IVY_XML_DEPENDENCY_TEMPLATE.format(
-                organisation=groupId,
-                name='geckolibs',
-                revision=args.revision)
-        ))
-
-    for p in paths_to_hash:
-        sha = "%s.sha1" % p
-        with open(sha, 'wt') as f:
-            f.write(util.hash_file(p, hasher=hashlib.sha1()))
-        if args.verbose:
-            print(p)
-            print(sha)
-
-    return 0
-
-
-if __name__ == '__main__':
-    sys.exit(main(sys.argv[1:]))
--- a/toolkit/mozapps/installer/upload-files-APK.mk
+++ b/toolkit/mozapps/installer/upload-files-APK.mk
@@ -20,18 +20,16 @@ ROOT_FILES := \
   $(NULL)
 
 GECKO_APP_AP_PATH = $(topobjdir)/mobile/android/base
 
 ifdef ENABLE_TESTS
 INNER_ROBOCOP_PACKAGE=true
 ifeq ($(MOZ_BUILD_APP),mobile/android)
 UPLOAD_EXTRA_FILES += robocop.apk
-UPLOAD_EXTRA_FILES += geckoview_library/geckoview_library.zip
-UPLOAD_EXTRA_FILES += geckoview_library/geckoview_assets.zip
 
 # Robocop/Robotium tests, Android Background tests, and Fennec need to
 # be signed with the same key, which means release signing them all.
 
 ifndef MOZ_BUILD_MOBILE_ANDROID_WITH_GRADLE
 robocop_apk := $(topobjdir)/mobile/android/tests/browser/robocop/robocop-debug-unsigned-unaligned.apk
 else
 robocop_apk := $(topobjdir)/gradle/build/mobile/android/app/outputs/apk/app-automation-debug-androidTest-unaligned.apk
@@ -65,65 +63,16 @@ INNER_INSTALL_BOUNCER_PACKAGE=\
    (echo "*** Error: The permissions of the bouncer package differ from the permissions of the main package.  Ensure the bouncer and main package Android manifests agree, rebuild mobile/android, and re-package." && exit 1))
 else
 INNER_INSTALL_BOUNCER_PACKAGE=echo 'Testing is disabled, so the install bouncer is disabled - No trampolines for you'
 endif # ENABLE_TESTS
 else
 INNER_INSTALL_BOUNCER_PACKAGE=echo 'Install bouncer is disabled - No trampolines for you'
 endif # MOZ_ANDROID_PACKAGE_INSTALL_BOUNCER
 
-# Create geckoview_library/geckoview_{assets,library}.zip for third-party GeckoView consumers.
-ifdef NIGHTLY_BUILD
-ifndef MOZ_DISABLE_GECKOVIEW
-INNER_MAKE_GECKOVIEW_LIBRARY= \
-  $(MAKE) -C ../mobile/android/geckoview_library package
-else
-INNER_MAKE_GECKOVIEW_LIBRARY=echo 'GeckoView library packaging is disabled'
-endif
-else
-INNER_MAKE_GECKOVIEW_LIBRARY=echo 'GeckoView library packaging is only enabled on Nightly'
-endif
-
-# Create Android ARchives and metadata for download by local
-# developers using Gradle.
-ifdef MOZ_ANDROID_GECKOLIBS_AAR
-ifndef MOZ_DISABLE_GECKOVIEW
-geckoaar-revision := $(BUILDID)
-
-UPLOAD_EXTRA_FILES += \
-  geckolibs-$(geckoaar-revision).aar \
-  geckolibs-$(geckoaar-revision).aar.sha1 \
-  geckolibs-$(geckoaar-revision).pom \
-  geckolibs-$(geckoaar-revision).pom.sha1 \
-  ivy-geckolibs-$(geckoaar-revision).xml \
-  ivy-geckolibs-$(geckoaar-revision).xml.sha1 \
-  geckoview-$(geckoaar-revision).aar \
-  geckoview-$(geckoaar-revision).aar.sha1 \
-  geckoview-$(geckoaar-revision).pom \
-  geckoview-$(geckoaar-revision).pom.sha1 \
-  ivy-geckoview-$(geckoaar-revision).xml \
-  ivy-geckoview-$(geckoaar-revision).xml.sha1 \
-  $(NULL)
-
-INNER_MAKE_GECKOLIBS_AAR= \
-  $(PYTHON) -m mozbuild.action.package_geckolibs_aar \
-    --verbose \
-    --revision $(geckoaar-revision) \
-    --topsrcdir '$(topsrcdir)' \
-    --distdir '$(ABS_DIST)' \
-    --appname '$(MOZ_APP_NAME)' \
-    --purge-old \
-    '$(ABS_DIST)'
-else
-INNER_MAKE_GECKOLIBS_AAR=echo 'Android geckolibs.aar packaging requires packaging geckoview'
-endif # MOZ_DISABLE_GECKOVIEW
-else
-INNER_MAKE_GECKOLIBS_AAR=echo 'Android geckolibs.aar packaging is disabled'
-endif # MOZ_ANDROID_GECKOLIBS_AAR
-
 # Fennec's OMNIJAR_NAME can include a directory; for example, it might
 # be "assets/omni.ja". This path specifies where the omni.ja file
 # lives in the APK, but should not root the resources it contains
 # under assets/ (i.e., resources should not live at chrome://assets/).
 # packager.py writes /omni.ja in order to be consistent with the
 # layout expected by language repacks. Therefore, we move it to the
 # correct path here, in INNER_MAKE_PACKAGE. See comment about
 # OMNIJAR_NAME in configure.in.
@@ -155,19 +104,17 @@ INNER_FENNEC_PACKAGE = \
     --root-files $(foreach f,$(ROOT_FILES),$(STAGEPATH)$(MOZ_PKG_DIR)/$(f)) \
     --output $(PACKAGE:.apk=-unsigned-unaligned.apk) && \
   $(call RELEASE_SIGN_ANDROID_APK,$(PACKAGE:.apk=-unsigned-unaligned.apk),$(PACKAGE))
 
 # Packaging produces many optional artifacts.
 package_fennec = \
   $(INNER_FENNEC_PACKAGE) && \
   $(INNER_ROBOCOP_PACKAGE) && \
-  $(INNER_INSTALL_BOUNCER_PACKAGE) && \
-  $(INNER_MAKE_GECKOLIBS_AAR) && \
-  $(INNER_MAKE_GECKOVIEW_LIBRARY)
+  $(INNER_INSTALL_BOUNCER_PACKAGE)
 
 # Re-packaging only replaces Android resources and the omnijar before
 # (re-)signing.
 repackage_fennec = \
   $(MAKE) -C $(GECKO_APP_AP_PATH) gecko-nodeps.ap_ && \
   $(PYTHON) -m mozbuild.action.package_fennec_apk \
     --verbose \
     --inputs \