Include the custom conversions when building machine configuration

Fixes: b/243382545
Change-Id: Ieb4178db048ac6b30d8bb64cfb995259e39aea2c
diff --git a/tools/create_maven_release.py b/tools/create_maven_release.py
index fc7eafb..7d73a93 100755
--- a/tools/create_maven_release.py
+++ b/tools/create_maven_release.py
@@ -391,13 +391,15 @@
     make_archive(destination, 'zip', tmp_dir)
     move(destination + '.zip', destination)
 
-def convert_desugar_configuration(configuration, machine_configuration):
+def convert_desugar_configuration(
+    configuration, conversions, implementation, machine_configuration):
   cmd = [jdk.GetJavaExecutable(),
       '-cp',
       utils.R8_JAR,
       'com.android.tools.r8.ir.desugar.desugaredlibrary.specificationconversion.DesugaredLibraryConverter',
       configuration,
-      utils.DESUGAR_IMPLEMENTATION_JDK11,
+      implementation,
+      conversions,
       utils.get_android_jar(33),
       machine_configuration]
   subprocess.check_call(cmd)
@@ -410,7 +412,7 @@
 
     if (not version.startswith("1.")):
       machine_configuration = join(tmp_dir, "machine.json")
-      convert_desugar_configuration(configuration, machine_configuration)
+      convert_desugar_configuration(configuration, conversions, implementation, machine_configuration)
       configuration = machine_configuration
 
     # Generate the pom file.
diff --git a/tools/desugar_jdk_libs_repository.py b/tools/desugar_jdk_libs_repository.py
index 4417255..7cb7a19 100755
--- a/tools/desugar_jdk_libs_repository.py
+++ b/tools/desugar_jdk_libs_repository.py
@@ -11,8 +11,10 @@
 import subprocess
 import sys
 
+import gradle
 import utils
 import create_maven_release
+import archive_desugar_jdk_libs
 
 class Variant(Enum):
     jdk8 = 'jdk8'
@@ -114,6 +116,7 @@
       version_file = 'VERSION_JDK11_NIO.txt'
       implementation_build_target = ':maven_release_jdk11_nio'
       implementation_build_output = join('bazel-bin', 'desugar_jdk_libs_jdk11_nio.zip')
+  gradle.RunGradle([utils.R8])
   with utils.TempDir(delete=False) as tmp_dir:
     (name, version) = utils.desugar_configuration_name_and_version(configuration, False)
     # Checkout desugar_jdk_libs from GitHub
@@ -167,11 +170,24 @@
           '--spawn_strategy=local',
           '--verbose_failures',
           implementation_build_target])
+
+    # Undesugar desugared library if needed.
+    undesugared_if_needed = join(checkout_dir, implementation_build_output)
+    if (args.variant == Variant.jdk11_minimal
+        or args.variant == Variant.jdk11
+        or args.variant == Variant.jdk11_nio):
+      undesugared_if_needed = join(tmp_dir, 'undesugared.zip')
+      archive_desugar_jdk_libs.Undesugar(
+        str(args.variant),
+        join(checkout_dir, implementation_build_output),
+        version,
+        undesugared_if_needed)
+
     unzip_dir = join(tmp_dir, 'desugar_jdk_libs_unzipped')
     cmd = [
         'unzip',
         '-q',
-        join(checkout_dir, implementation_build_output),
+        undesugared_if_needed,
         '-d',
         unzip_dir]
     subprocess.check_call(cmd)
@@ -204,7 +220,7 @@
     print("    changing = true")
     print("  }")
     print()
-    print('If not using the !changing" propertyRemember to run gradle with '
+    print('If not using the "changing" propertyRemember to run gradle with '
       + " --refresh-dependencies (./gradlew --refresh-dependencies ...) "
       + "to ensure the cache is not used when the same version is published."
       + "multiple times.")