Bug 1440428 - Remove Proguard JAR entirely. r=jchen
authorNick Alexander <nalexander@mozilla.com>
Mon, 26 Feb 2018 11:37:41 -0800
changeset 760273 b94346ccb352cd6e838e2793270c269853d58a8c
parent 760272 a4b3c2b24e977eb263140c73140f75c1cc67c094
child 760274 cc147bc11c0e738cc1542532e431272a40155dfe
push id100603
push userjcristau@mozilla.com
push dateTue, 27 Feb 2018 11:10:29 +0000
reviewersjchen
bugs1440428
milestone60.0a1
Bug 1440428 - Remove Proguard JAR entirely. r=jchen The Proguard dependency is now managed by Gradle. MozReview-Commit-ID: EOvKSE5z28P
build/moz.configure/java.configure
mobile/android/config/mozconfigs/common
python/mozbuild/mozbuild/test/configure/test_checks_configure.py
taskcluster/ci/build/android-stuff.yml
taskcluster/ci/build/android.yml
taskcluster/ci/l10n/kind.yml
taskcluster/ci/nightly-l10n/kind.yml
taskcluster/ci/toolchain/linux.yml
taskcluster/scripts/misc/repack-proguard-jar.sh
--- a/build/moz.configure/java.configure
+++ b/build/moz.configure/java.configure
@@ -39,17 +39,17 @@ def check_java_tool(tool):
             die("The program %s was not found.  Set $JAVA_HOME to your Java "
                 "SDK directory or use '--with-java-bin-path={java-bin-dir}'"
                 % tool)
         return result
 
     return require_tool
 
 
-java = check_java_tool('java')
+check_java_tool('java')
 check_java_tool('javah')
 check_java_tool('jar')
 check_java_tool('jarsigner')
 check_java_tool('keytool')
 javac = check_java_tool('javac')
 
 
 @depends(javac)
@@ -61,64 +61,8 @@ def javac_version(javac):
                                          stderr=subprocess.STDOUT).rstrip()
         version = Version(output.split(' ')[-1])
         if version < '1.8':
             die('javac 1.8 or higher is required (found %s). '
                 'Check the JAVA_HOME environment variable.' % version)
         return version
     except subprocess.CalledProcessError as e:
         die('Failed to get javac version: %s', e.output)
-
-
-# Proguard detection
-# ========================================================
-@depends('--help')
-@imports('os')
-def proguard_jar_default(_):
-    # By default, look for proguard.jar in the location to which `mach
-    # bootstrap` or `mach artifact toolchain` will install Proguard.
-    default = os.path.expanduser(os.path.join('~', '.mozbuild'))
-    mozbuild_state_dir = os.environ.get('MOZBUILD_STATE_PATH', default)
-    return os.path.join(mozbuild_state_dir, 'proguard', 'lib', 'proguard.jar')
-
-
-# Proguard is really required; we provide a good error message when
-# validating.
-option(env='PROGUARD_JAR', nargs=1, default=proguard_jar_default,
-       help='Path to proguard.jar')
-
-
-@depends(java, 'PROGUARD_JAR')
-@checking('for proguard.jar version')
-# Do not change, this is fragile!  This form works with the test
-# configure sandbox.
-@imports(_from='os', _import='path')
-@imports('subprocess')
-def valid_proguard(java, proguard_jar):
-    if not proguard_jar or not path.isfile(proguard_jar[0]):
-        die('proguard.jar 5.3.3 or higher is required (looked for {}). '
-            'Run |mach artifact toolchain --from-build proguard-jar && mv '
-            'proguard ~/.mozbuild/| or add `export PROGUARD_JAR=/path/to/'
-            'proguard.jar` to your mozconfig.'
-            .format(proguard_jar[0]))
-
-    try:
-        output = subprocess.check_output([java, '-jar', proguard_jar[0]])
-        # Exit code zero shouldn't happen.
-        die('Expected `java -jar {}` to fail (with version in output) '
-            'but got exit code 0'
-            .format(proguard_jar[0]))
-
-    except subprocess.CalledProcessError as e:
-        # Exit code is non zero and output is like
-        # ProGuard, version 5.3.3
-        # Usage: java proguard.ProGuard [options ...]
-        output = e.output
-
-    version = Version(output.splitlines()[0].split(' ')[-1])
-    if version < '5.3.3':
-        die('proguard.jar 5.3.3 or higher is required (found %s). '
-            'Run |mach bootstrap| to upgrade. ' % version)
-
-    return proguard_jar[0]
-
-
-set_config('PROGUARD_JAR', valid_proguard)
--- a/mobile/android/config/mozconfigs/common
+++ b/mobile/android/config/mozconfigs/common
@@ -82,10 +82,8 @@ else
 fi
 
 # Package js shell.
 export MOZ_PACKAGE_JSSHELL=1
 
 . "$topsrcdir/build/unix/mozconfig.stdcxx"
 
 JS_BINARY="$topsrcdir/mobile/android/config/js_wrapper.sh"
-
-export PROGUARD_JAR="$topsrcdir/proguard/lib/proguard.jar"
--- a/python/mozbuild/mozbuild/test/configure/test_checks_configure.py
+++ b/python/mozbuild/mozbuild/test/configure/test_checks_configure.py
@@ -476,258 +476,199 @@ class TestChecksConfigure(unittest.TestC
             checking for a... 
             DEBUG: a: Trying known-a
             ERROR: Paths provided to find_program must be a list of strings, not %r
         ''' % mozpath.dirname(self.OTHER_A)))
 
     def test_java_tool_checks(self):
         includes = ('util.configure', 'checks.configure', 'java.configure')
 
+        def mock_valid_javac(_, args):
+            if len(args) == 1 and args[0] == '-version':
+                return 0, '1.8', ''
+            self.fail("Unexpected arguments to mock_valid_javac: %s" % args)
+
         # A valid set of tools in a standard location.
         java = mozpath.abspath('/usr/bin/java')
         javah = mozpath.abspath('/usr/bin/javah')
         javac = mozpath.abspath('/usr/bin/javac')
         jar = mozpath.abspath('/usr/bin/jar')
         jarsigner = mozpath.abspath('/usr/bin/jarsigner')
         keytool = mozpath.abspath('/usr/bin/keytool')
-        proguard_jar = mozpath.abspath('/path/to/proguard.jar')
-        old_proguard_jar = mozpath.abspath('/path/to/old_proguard.jar')
-
-        def mock_valid_java(_, args):
-            # Yield valid proguard.jar output with a version based on the given path.
-            stdout = \
-                 'ProGuard, version {version}' + \
-                 'Usage: java proguard.ProGuard [options ...]'
-            args = tuple(args)
-            if args == ('-jar', proguard_jar):
-                return 1, stdout.format(version="5.3.3"), ''
-            elif args == ('-jar', old_proguard_jar):
-                return 1, stdout.format(version="4.2"), ''
-            self.fail("Unexpected arguments to mock_valid_java: %s" % args)
-
-        def mock_valid_javac(_, args):
-            if len(args) == 1 and args[0] == '-version':
-                return 0, '1.8', ''
-            self.fail("Unexpected arguments to mock_valid_javac: %s" % args)
 
         paths = {
-            java: mock_valid_java,
+            java: None,
             javah: None,
             javac: mock_valid_javac,
             jar: None,
             jarsigner: None,
             keytool: None,
-            proguard_jar: mock_valid_java,
         }
 
-        config, out, status = self.get_result(includes=includes, extra_paths=paths,
-                                              environ={
-                                                  'PROGUARD_JAR': proguard_jar,
-                                              })
+        config, out, status = self.get_result(includes=includes, extra_paths=paths)
+        self.assertEqual(status, 0)
+        self.assertEqual(config, {
+            'JAVA': java,
+            'JAVAH': javah,
+            'JAVAC': javac,
+            'JAR': jar,
+            'JARSIGNER': jarsigner,
+            'KEYTOOL': keytool,
+        })
         self.assertEqual(out, textwrap.dedent('''\
              checking for java... %s
              checking for javah... %s
              checking for jar... %s
              checking for jarsigner... %s
              checking for keytool... %s
              checking for javac... %s
              checking for javac version... 1.8
-             checking for proguard.jar version... %s
-        ''' % (java, javah, jar, jarsigner, keytool, javac, proguard_jar)))
-        self.assertEqual(status, 0)
-        self.assertEqual(config, {
-            'JAVA': java,
-            'JAVAH': javah,
-            'JAVAC': javac,
-            'JAR': jar,
-            'JARSIGNER': jarsigner,
-            'KEYTOOL': keytool,
-            'PROGUARD_JAR': proguard_jar,
-        })
+        ''' % (java, javah, jar, jarsigner, keytool, javac)))
 
         # An alternative valid set of tools referred to by JAVA_HOME.
         alt_java = mozpath.abspath('/usr/local/bin/java')
         alt_javah = mozpath.abspath('/usr/local/bin/javah')
         alt_javac = mozpath.abspath('/usr/local/bin/javac')
         alt_jar = mozpath.abspath('/usr/local/bin/jar')
         alt_jarsigner = mozpath.abspath('/usr/local/bin/jarsigner')
         alt_keytool = mozpath.abspath('/usr/local/bin/keytool')
         alt_java_home = mozpath.dirname(mozpath.dirname(alt_java))
 
         paths.update({
-            alt_java: mock_valid_java,
+            alt_java: None,
             alt_javah: None,
             alt_javac: mock_valid_javac,
             alt_jar: None,
             alt_jarsigner: None,
             alt_keytool: None,
         })
 
         config, out, status = self.get_result(includes=includes,
                                               extra_paths=paths,
                                               environ={
                                                   'JAVA_HOME': alt_java_home,
-                                                  'PATH': mozpath.dirname(java),
-                                                  'PROGUARD_JAR': proguard_jar,
+                                                  'PATH': mozpath.dirname(java)
                                               })
-        self.assertEqual(out, textwrap.dedent('''\
-             checking for java... %s
-             checking for javah... %s
-             checking for jar... %s
-             checking for jarsigner... %s
-             checking for keytool... %s
-             checking for javac... %s
-             checking for javac version... 1.8
-             checking for proguard.jar version... %s
-        ''' % (alt_java, alt_javah, alt_jar, alt_jarsigner,
-               alt_keytool, alt_javac, proguard_jar)))
         self.assertEqual(status, 0)
         self.assertEqual(config, {
             'JAVA': alt_java,
             'JAVAH': alt_javah,
             'JAVAC': alt_javac,
             'JAR': alt_jar,
             'JARSIGNER': alt_jarsigner,
             'KEYTOOL': alt_keytool,
-            'PROGUARD_JAR': proguard_jar,
         })
+        self.assertEqual(out, textwrap.dedent('''\
+             checking for java... %s
+             checking for javah... %s
+             checking for jar... %s
+             checking for jarsigner... %s
+             checking for keytool... %s
+             checking for javac... %s
+             checking for javac version... 1.8
+        ''' % (alt_java, alt_javah, alt_jar, alt_jarsigner,
+               alt_keytool, alt_javac)))
 
         # We can use --with-java-bin-path instead of JAVA_HOME to similar
         # effect.
         config, out, status = self.get_result(
             args=['--with-java-bin-path=%s' % mozpath.dirname(alt_java)],
             includes=includes,
             extra_paths=paths,
             environ={
-                'PATH': mozpath.dirname(java),
-                'PROGUARD_JAR': proguard_jar,
+                'PATH': mozpath.dirname(java)
             })
+        self.assertEqual(status, 0)
+        self.assertEqual(config, {
+            'JAVA': alt_java,
+            'JAVAH': alt_javah,
+            'JAVAC': alt_javac,
+            'JAR': alt_jar,
+            'JARSIGNER': alt_jarsigner,
+            'KEYTOOL': alt_keytool,
+        })
         self.assertEqual(out, textwrap.dedent('''\
              checking for java... %s
              checking for javah... %s
              checking for jar... %s
              checking for jarsigner... %s
              checking for keytool... %s
              checking for javac... %s
              checking for javac version... 1.8
-             checking for proguard.jar version... %s
         ''' % (alt_java, alt_javah, alt_jar, alt_jarsigner,
-               alt_keytool, alt_javac, proguard_jar)))
-        self.assertEqual(status, 0)
-        self.assertEqual(config, {
-            'JAVA': alt_java,
-            'JAVAH': alt_javah,
-            'JAVAC': alt_javac,
-            'JAR': alt_jar,
-            'JARSIGNER': alt_jarsigner,
-            'KEYTOOL': alt_keytool,
-            'PROGUARD_JAR': proguard_jar,
-        })
+               alt_keytool, alt_javac)))
 
         # If --with-java-bin-path and JAVA_HOME are both set,
         # --with-java-bin-path takes precedence.
         config, out, status = self.get_result(
             args=['--with-java-bin-path=%s' % mozpath.dirname(alt_java)],
             includes=includes,
             extra_paths=paths,
             environ={
                 'PATH': mozpath.dirname(java),
                 'JAVA_HOME': mozpath.dirname(mozpath.dirname(java)),
-                'PROGUARD_JAR': proguard_jar,
             })
-        self.assertEqual(out, textwrap.dedent('''\
-             checking for java... %s
-             checking for javah... %s
-             checking for jar... %s
-             checking for jarsigner... %s
-             checking for keytool... %s
-             checking for javac... %s
-             checking for javac version... 1.8
-             checking for proguard.jar version... %s
-        ''' % (alt_java, alt_javah, alt_jar, alt_jarsigner,
-               alt_keytool, alt_javac, proguard_jar)))
         self.assertEqual(status, 0)
         self.assertEqual(config, {
             'JAVA': alt_java,
             'JAVAH': alt_javah,
             'JAVAC': alt_javac,
             'JAR': alt_jar,
             'JARSIGNER': alt_jarsigner,
             'KEYTOOL': alt_keytool,
-            'PROGUARD_JAR': proguard_jar,
         })
-
-        def mock_old_javac(_, args):
-            if len(args) == 1 and args[0] == '-version':
-                return 0, '1.6.9', ''
-            self.fail("Unexpected arguments to mock_old_javac: %s" % args)
-
-        # An old proguard JAR is fatal.
-        config, out, status = self.get_result(includes=includes,
-                                              extra_paths=paths,
-                                              environ={
-                                                  'PATH': mozpath.dirname(java),
-                                                  'PROGUARD_JAR': old_proguard_jar,
-                                              })
         self.assertEqual(out, textwrap.dedent('''\
              checking for java... %s
              checking for javah... %s
              checking for jar... %s
              checking for jarsigner... %s
              checking for keytool... %s
              checking for javac... %s
              checking for javac version... 1.8
-             checking for proguard.jar version... 
-             ERROR: proguard.jar 5.3.3 or higher is required (looked for %s). Run |mach artifact toolchain --from-build proguard-jar && mv proguard ~/.mozbuild/| or add `export PROGUARD_JAR=/path/to/proguard.jar` to your mozconfig.
-        ''' % (java, javah, jar, jarsigner, keytool, javac, old_proguard_jar)))
+        ''' % (alt_java, alt_javah, alt_jar, alt_jarsigner,
+               alt_keytool, alt_javac)))
+
+        def mock_old_javac(_, args):
+            if len(args) == 1 and args[0] == '-version':
+                return 0, '1.6.9', ''
+            self.fail("Unexpected arguments to mock_old_javac: %s" % args)
+
+        # An old javac is fatal.
+        paths[javac] = mock_old_javac
+        config, out, status = self.get_result(includes=includes,
+                                              extra_paths=paths,
+                                              environ={
+                                                  'PATH': mozpath.dirname(java)
+                                              })
         self.assertEqual(status, 1)
         self.assertEqual(config, {
             'JAVA': java,
             'JAVAH': javah,
             'JAVAC': javac,
             'JAR': jar,
             'JARSIGNER': jarsigner,
             'KEYTOOL': keytool,
         })
-
-        # An old javac is fatal.
-        paths[javac] = mock_old_javac
-        config, out, status = self.get_result(includes=includes,
-                                              extra_paths=paths,
-                                              environ={
-                                                  'PATH': mozpath.dirname(java),
-                                                  'PROGUARD_JAR': proguard_jar,
-                                              })
         self.assertEqual(out, textwrap.dedent('''\
              checking for java... %s
              checking for javah... %s
              checking for jar... %s
              checking for jarsigner... %s
              checking for keytool... %s
              checking for javac... %s
              checking for javac version... 
              ERROR: javac 1.8 or higher is required (found 1.6.9). Check the JAVA_HOME environment variable.
         ''' % (java, javah, jar, jarsigner, keytool, javac)))
-        self.assertEqual(status, 1)
-        self.assertEqual(config, {
-            'JAVA': java,
-            'JAVAH': javah,
-            'JAVAC': javac,
-            'JAR': jar,
-            'JARSIGNER': jarsigner,
-            'KEYTOOL': keytool,
-        })
 
         # Any missing tool is fatal when these checks run.
         del paths[jarsigner]
         config, out, status = self.get_result(includes=includes,
                                               extra_paths=paths,
                                               environ={
-                                                  'PATH': mozpath.dirname(java),
-                                                  'PROGUARD_JAR': proguard_jar,
+                                                  'PATH': mozpath.dirname(java)
                                               })
         self.assertEqual(status, 1)
         self.assertEqual(config, {
             'JAVA': java,
             'JAVAH': javah,
             'JAR': jar,
             'JARSIGNER': ':',
         })
--- a/taskcluster/ci/build/android-stuff.yml
+++ b/taskcluster/ci/build/android-stuff.yml
@@ -33,17 +33,16 @@ android-test/opt:
             - disable_signing.py
         script: "mozharness/scripts/fx_desktop_build.py"
         secrets: true
         custom-build-variant-cfg: android-test
         tooltool-downloads: internal
     toolchains:
         - android-gradle-dependencies
         - android-sdk-linux
-        - proguard-jar
     optimization:
         skip-unless-changed:
             - "mobile/android/base/**"
             - "mobile/android/config/**"
             - "mobile/android/gradle.configure"
             - "mobile/android/tests/background/junit4/**"
             - "**/*.gradle"
 
@@ -85,17 +84,16 @@ android-lint/opt:
             - disable_signing.py
         script: "mozharness/scripts/fx_desktop_build.py"
         secrets: true
         custom-build-variant-cfg: android-lint
         tooltool-downloads: internal
     toolchains:
         - android-gradle-dependencies
         - android-sdk-linux
-        - proguard-jar
     optimization:
         skip-unless-changed:
             - "mobile/android/**/*.java"
             - "mobile/android/**/*.jpeg"
             - "mobile/android/**/*.jpg"
             - "mobile/android/**/*.png"
             - "mobile/android/**/*.svg"
             - "mobile/android/**/*.xml"
@@ -140,17 +138,16 @@ android-checkstyle/opt:
             - disable_signing.py
         script: "mozharness/scripts/fx_desktop_build.py"
         secrets: true
         custom-build-variant-cfg: android-checkstyle
         tooltool-downloads: internal
     toolchains:
         - android-gradle-dependencies
         - android-sdk-linux
-        - proguard-jar
     optimization:
         skip-unless-changed:
             - "mobile/android/**/checkstyle.xml"
             - "mobile/android/**/*.java"
             - "mobile/android/**/Makefile.in"
             - "mobile/android/config/**"
             - "mobile/android/gradle.configure"
             - "mobile/android/**/moz.build"
@@ -191,17 +188,16 @@ android-findbugs/opt:
             - disable_signing.py
         script: "mozharness/scripts/fx_desktop_build.py"
         secrets: true
         custom-build-variant-cfg: android-findbugs
         tooltool-downloads: internal
     toolchains:
         - android-gradle-dependencies
         - android-sdk-linux
-        - proguard-jar
     optimization:
         skip-unless-changed:
             - "mobile/android/**/*.java"
             - "mobile/android/**/Makefile.in"
             - "mobile/android/config/**"
             - "mobile/android/gradle.configure"
             - "mobile/android/**/moz.build"
             - "**/*.gradle"
@@ -237,14 +233,13 @@ android-geckoview-docs/opt:
             - disable_signing.py
         script: "mozharness/scripts/fx_desktop_build.py"
         secrets: true
         custom-build-variant-cfg: android-geckoview-docs
         tooltool-downloads: internal
     toolchains:
         - android-gradle-dependencies
         - android-sdk-linux
-        - proguard-jar
     optimization:
         skip-unless-changed:
             - "mobile/android/**/*.java"
             - "mobile/android/gradle.configure"
             - "**/*.gradle"
--- a/taskcluster/ci/build/android.yml
+++ b/taskcluster/ci/build/android.yml
@@ -38,17 +38,16 @@ android-api-16/debug:
         tooltool-downloads: internal
     toolchains:
         - android-gradle-dependencies
         - android-ndk-linux
         - android-sdk-linux
         - linux64-clang
         - linux64-rust-android
         - linux64-sccache
-        - proguard-jar
 
 android-x86/opt:
     description: "Android 4.2 x86 Opt"
     index:
         product: mobile
         job-name: android-x86-opt
     treeherder:
         platform: android-4-2-x86/opt
@@ -90,17 +89,16 @@ android-x86/opt:
         tooltool-downloads: internal
     toolchains:
         - android-gradle-dependencies
         - android-ndk-linux
         - android-sdk-linux
         - linux64-clang
         - linux64-rust-android
         - linux64-sccache
-        - proguard-jar
 
 android-x86-nightly/opt:
     description: "Android 4.2 x86 Nightly"
     attributes:
         nightly: true
     shipping-phase: promote
     shipping-product: fennec
     index:
@@ -148,17 +146,16 @@ android-x86-nightly/opt:
         tooltool-downloads: internal
     toolchains:
         - android-gradle-dependencies
         - android-ndk-linux
         - android-sdk-linux
         - linux64-clang
         - linux64-rust-android
         - linux64-sccache
-        - proguard-jar
 
 android-api-16/opt:
     description: "Android 4.0 api-16+ Opt"
     index:
         product: mobile
         job-name: android-api-16-opt
     treeherder:
         platform: android-4-0-armv7-api16/opt
@@ -195,17 +192,16 @@ android-api-16/opt:
         tooltool-downloads: internal
     toolchains:
         - android-gradle-dependencies
         - android-ndk-linux
         - android-sdk-linux
         - linux64-clang
         - linux64-rust-android
         - linux64-sccache
-        - proguard-jar
 
 android-api-16-without-google-play-services/opt:
     description: "Android 4.0 api-16+ (without Google Play Services) Opt"
     index:
         product: mobile
         job-name: android-api-16-without-google-play-services-opt
     treeherder:
         platform: android-4-0-armv7-api16/opt
@@ -244,17 +240,16 @@ android-api-16-without-google-play-servi
     run-on-projects: ['mozilla-central']
     toolchains:
         - android-gradle-dependencies
         - android-ndk-linux
         - android-sdk-linux
         - linux64-clang
         - linux64-rust-android
         - linux64-sccache
-        - proguard-jar
 
 android-api-16-nightly/opt:
     description: "Android 4.0 api-16+ Nightly"
     attributes:
         nightly: true
     shipping-phase: promote
     shipping-product: fennec
     index:
@@ -297,17 +292,16 @@ android-api-16-nightly/opt:
         tooltool-downloads: internal
     toolchains:
         - android-gradle-dependencies
         - android-ndk-linux
         - android-sdk-linux
         - linux64-clang
         - linux64-rust-android
         - linux64-sccache
-        - proguard-jar
 
 android-x86-old-id/opt:
     description: "Android 4.2 x86 Opt OldId"
     index:
         product: mobile
         job-name: android-x86-old-id-opt
     treeherder:
         platform: android-4-2-x86-old-id/opt
@@ -350,17 +344,16 @@ android-x86-old-id/opt:
     run-on-projects: ['mozilla-central']
     toolchains:
         - android-gradle-dependencies
         - android-ndk-linux
         - android-sdk-linux
         - linux64-clang
         - linux64-rust-android
         - linux64-sccache
-        - proguard-jar
 
 android-x86-old-id-nightly/opt:
     description: "Android 4.2 x86 OldId Nightly"
     attributes:
         nightly: true
     index:
         product: mobile
         job-name: android-x86-old-id-opt
@@ -407,17 +400,16 @@ android-x86-old-id-nightly/opt:
     run-on-projects: ['mozilla-central']
     toolchains:
         - android-gradle-dependencies
         - android-ndk-linux
         - android-sdk-linux
         - linux64-clang
         - linux64-rust-android
         - linux64-sccache
-        - proguard-jar
 
 android-api-16-old-id/opt:
     description: "Android 4.0 api-16+ Opt OldId"
     index:
         product: mobile
         job-name: android-api-16-old-id-opt
     treeherder:
         platform: android-4-0-armv7-api16-old-id/opt
@@ -455,17 +447,16 @@ android-api-16-old-id/opt:
     run-on-projects: ['mozilla-central']
     toolchains:
         - android-gradle-dependencies
         - android-ndk-linux
         - android-sdk-linux
         - linux64-clang
         - linux64-rust-android
         - linux64-sccache
-        - proguard-jar
 
 android-api-16-old-id-nightly/opt:
     description: "Android 4.0 api-16+ OldId Nightly"
     attributes:
         nightly: true
     index:
         product: mobile
         job-name: android-api-16-old-id-opt
@@ -507,17 +498,16 @@ android-api-16-old-id-nightly/opt:
     run-on-projects: ['mozilla-central']
     toolchains:
         - android-gradle-dependencies
         - android-ndk-linux
         - android-sdk-linux
         - linux64-clang
         - linux64-rust-android
         - linux64-sccache
-        - proguard-jar
 
 android-aarch64/opt:
     description: "Android 5.0 AArch64 Opt"
     index:
         product: mobile
         job-name: android-aarch64-opt
     treeherder:
         platform: android-5-0-aarch64/opt
@@ -554,17 +544,16 @@ android-aarch64/opt:
         tooltool-downloads: internal
     toolchains:
         - android-gradle-dependencies
         - android-ndk-linux
         - android-sdk-linux
         - linux64-clang
         - linux64-rust-android
         - linux64-sccache
-        - proguard-jar
 
 android-aarch64-nightly/opt:
     description: "Android 5.0 AArch64 Nightly"
     attributes:
         nightly: true
     shipping-phase: promote
     shipping-product: fennec
     index:
@@ -607,9 +596,8 @@ android-aarch64-nightly/opt:
         tooltool-downloads: internal
     toolchains:
         - android-gradle-dependencies
         - android-ndk-linux
         - android-sdk-linux
         - linux64-clang
         - linux64-rust-android
         - linux64-sccache
-        - proguard-jar
--- a/taskcluster/ci/l10n/kind.yml
+++ b/taskcluster/ci/l10n/kind.yml
@@ -52,17 +52,16 @@ job-template:
       by-build-platform:
          default: []
          macosx64:
             - linux64-libdmg
             - linux64-hfsplus
          android-api-16-l10n:
             - android-gradle-dependencies
             - android-sdk-linux
-            - proguard-jar
    tooltool:
       by-build-platform:
          default: public
          android-api-16-l10n: internal
          macosx64-nightly: internal
    worker-type:
       by-build-platform:
          default: aws-provisioner-v1/gecko-{level}-b-linux
--- a/taskcluster/ci/nightly-l10n/kind.yml
+++ b/taskcluster/ci/nightly-l10n/kind.yml
@@ -63,17 +63,16 @@ job-template:
       by-build-platform:
          default: []
          macosx64.*:
             - linux64-libdmg
             - linux64-hfsplus
          android-api-16-nightly:
             - android-gradle-dependencies
             - android-sdk-linux
-            - proguard-jar
    tooltool:
       by-build-platform:
          default: public
          android-api-16-nightly: internal
          macosx64-nightly: internal
          macosx64-devedition-nightly: internal
          win32-nightly: internal
          win32-devedition-nightly: internal
--- a/taskcluster/ci/toolchain/linux.yml
+++ b/taskcluster/ci/toolchain/linux.yml
@@ -283,32 +283,16 @@ linux64-libdmg:
     worker-type: aws-provisioner-v1/gecko-{level}-b-linux
     worker:
         max-run-time: 36000
     run:
         using: toolchain-script
         script: build-libdmg-hfsplus.sh
         toolchain-artifact: public/build/dmg.tar.xz
 
-linux64-proguard-jar-repack:
-    description: "proguard.jar repack toolchain build"
-    treeherder:
-        kind: build
-        platform: toolchains/opt
-        symbol: TL(proguard-jar)
-        tier: 1
-    worker-type: aws-provisioner-v1/gecko-{level}-b-linux
-    worker:
-        max-run-time: 36000
-    run:
-        using: toolchain-script
-        script: repack-proguard-jar.sh
-        toolchain-artifact: public/build/proguard-jar.tar.xz
-        toolchain-alias: proguard-jar
-
 linux64-android-sdk-linux-repack:
     description: "Android SDK (Linux) repack toolchain build"
     treeherder:
         kind: build
         platform: toolchains/opt
         symbol: TL(android-sdk-linux)
         tier: 1
     worker-type: aws-provisioner-v1/gecko-{level}-b-linux
@@ -375,17 +359,16 @@ linux64-android-gradle-dependencies:
             - 'mobile/android/config/mozconfigs/android-api-16-gradle-dependencies/**'
             - 'mobile/android/config/mozconfigs/common*'
             - 'mobile/android/gradle.configure'
         toolchain-artifact: public/build/android-gradle-dependencies.tar.xz
         toolchain-alias: android-gradle-dependencies
     toolchains:
         # Aliases aren't allowed for toolchains depending on toolchains.
         - linux64-android-sdk-linux-repack
-        - linux64-proguard-jar-repack
 
 linux64-rust-1.24:
     description: "rust repack"
     treeherder:
         kind: build
         platform: toolchains/opt
         symbol: TL(rust)
         tier: 1
deleted file mode 100755
--- a/taskcluster/scripts/misc/repack-proguard-jar.sh
+++ /dev/null
@@ -1,37 +0,0 @@
-#!/bin/bash
-set -x -e -v
-
-# This script is for repacking Proguard to get the `proguard.jar`
-# needed to shrink Android packages.
-
-WORKSPACE=$HOME/workspace
-STAGE=$WORKSPACE/proguard
-UPLOAD_DIR=$HOME/artifacts
-
-VERSION=5.3.3
-URL=https://newcontinuum.dl.sourceforge.net/project/proguard/proguard/5.3/proguard$VERSION.tar.gz
-ARCHIVE=proguard$VERSION.tar.gz
-DIR=proguard$VERSION
-SHA256SUM=95bf9580107f00d0e26f01026dcfe9e7a772e5449488b03ba832836c3760b3af
-
-mkdir -p $UPLOAD_DIR $STAGE
-
-cd $WORKSPACE
-wget --progress=dot:mega $URL
-echo "$SHA256SUM  $ARCHIVE" | sha256sum -c -
-
-# Just the file we need.
-tar --wildcards -zxvf $ARCHIVE '*/proguard.jar'
-
-# The archive is to satisfy source distribution requirements.
-mv $ARCHIVE $UPLOAD_DIR
-
-# This leaves us with $STAGE/lib/proguard.jar.
-mv $DIR/lib $STAGE
-
-cat >$STAGE/README<<EOF
-proguard.jar extracted from ${URL}.
-That archive, which includes source, is available as a taskcluster artifact:
-https://queue.taskcluster.net/v1/task/$TASK_ID/artifacts/public/$ARCHIVE
-EOF
-tar cf - -C $WORKSPACE `basename $STAGE` | xz > $UPLOAD_DIR/proguard-jar.tar.xz