Update the spdx-gradle-plugin to latest HEAD with patch

The spdx-gradle-plugin is built from https://github.com/spdx/spdx-gradle-plugin
at e935c0c26e09de34977be794435f63b6382c3d33 with the following patch:

diff --git a/gradle.properties b/gradle.properties
index b31ef9a..f24f400 100644

--- a/gradle.properties
+++ b/gradle.properties
@@ -1 +1 @@
-version=0.4.0
+version=0.4.0-r8-patch01
diff --git a/src/main/java/org/spdx/sbom/gradle/utils/SpdxDocumentBuilder.java b/src/main/java/org/spdx/sbom/gradle/utils/SpdxDocumentBuilder.java
index de3214a..af25bf2 100644
--- a/src/main/java/org/spdx/sbom/gradle/utils/SpdxDocumentBuilder.java
+++ b/src/main/java/org/spdx/sbom/gradle/utils/SpdxDocumentBuilder.java
@@ -168,9 +168,56 @@ public class SpdxDocumentBuilder {
                     (file1, file2) -> {
                       if (Objects.equals(file1, file2)) {
                         return file1;
-                      } else
+                      } else {
+                        // In the current R8 build setup we get the following file pairs
+                        // (as of 8c88aa02f7804f5a37ca6aea38cfc7f76c806360);
+                        //
+                        // d8_r8/keepanno/build/classes/java/main
+                        // d8_r8/keepanno/build/classes/kotlin/main
+                        //
+                        // d8_r8/resourceshrinker/build/classes/kotlin/main
+                        // d8_r8/resourceshrinker/build/classes/java/main
+                        //
+                        // d8_r8/keepanno/build/classes/java/main
+                        // d8_r8/keepanno/build/classes/kotlin/main
+                        //
+                        // d8_r8/keepanno/build/classes/java/main
+                        // d8_r8/keepanno/build/libs/keepanno.jar
+                        //
+                        // d8_r8/resourceshrinker/build/classes/java/main
+                        // d8_r8/resourceshrinker/build/libs/resourceshrinker.jar
+                        //
+                        // For now workaround the duplicated by preferring file to directory and
+                        // java directory to kotlin directory when both are directories.
+                        if (!file1.exists()) {
+                          return file2;
+                        }
+                        if (!file2.exists()) {
+                          return file1;
+                        }
+                        if (file1.isFile() && file2.isDirectory()) {
+                          return file1;
+                        }
+                        if (file1.isDirectory() && file2.isFile()) {
+                          return file2;
+                        }
+                        if (file1.isDirectory() && file2.isDirectory()) {
+                          if (file1.getName().equals(file2.getName())) {
+                            String parent1 = file1.getParent();
+                            String parent2 = file2.getParent();
+                            if (parent1.endsWith("classes/java") && parent2.endsWith(
+                                "classes/kotlin")) {
+                              return file1;
+                            }
+                            if (parent2.endsWith("classes/java") && parent1.endsWith(
+                                "classes/kotlin")) {
+                              return file2;
+                            }
+                          }
+                        }
                         throw new IllegalStateException(
                             "cannot merge duplicate " + file1 + " and " + file2);
+                      }
                     }));
     this.mavenArtifactRepositories = mavenArtifactRepositories;
     this.poms = poms;

Built with

  ./gradlew -Pskip.signing -Dmaven.repo.local=/tmp/spdx-gradle-plugin publishToMavenLocal

Added to dependencies with:

  tools/create_local_maven_with_dependencies.py \
    --no-upload \
    --studio <studio-path> \
    --plugin-deps \
    --include-maven-local /tmp/spdx-gradle-plugin

Fixes: b/309083377
Change-Id: I66e33c1e49e113fb4ae9121876f33d6e10eefdb9
diff --git a/d8_r8/main/build.gradle.kts b/d8_r8/main/build.gradle.kts
index ab4f252..c441284 100644
--- a/d8_r8/main/build.gradle.kts
+++ b/d8_r8/main/build.gradle.kts
@@ -21,7 +21,7 @@
   `kotlin-dsl`
   id("dependencies-plugin")
   id("net.ltgt.errorprone") version "3.0.1"
-  id("org.spdx.sbom") version "0.2.0-r8-patch01"
+  id("org.spdx.sbom") version "0.4.0-r8-patch01"
 }
 
 java {
diff --git a/third_party/dependencies_plugin.tar.gz.sha1 b/third_party/dependencies_plugin.tar.gz.sha1
index 73510da..fa66acc 100644
--- a/third_party/dependencies_plugin.tar.gz.sha1
+++ b/third_party/dependencies_plugin.tar.gz.sha1
@@ -1 +1 @@
-577ea397b7e8db5975176c059ce1c5e82e2ea085
\ No newline at end of file
+ebc6c2750dc911f0a974f79395ef28d523c89d09
\ No newline at end of file
diff --git a/tools/create_local_maven_with_dependencies.py b/tools/create_local_maven_with_dependencies.py
index fd06fa4..4f63ef9 100755
--- a/tools/create_local_maven_with_dependencies.py
+++ b/tools/create_local_maven_with_dependencies.py
@@ -104,7 +104,7 @@
 
   # Patched version of org.spdx.sbom:org.spdx.sbom.gradle.plugin:0.2.0.
   # See commit message for a13217f333cc65fb602502ac446698dd74d10b7f.
-  'org.spdx.sbom:org.spdx.sbom.gradle.plugin:0.2.0-r8-patch01',
+  'org.spdx.sbom:org.spdx.sbom.gradle.plugin:0.4.0-r8-patch01',
   # See https://github.com/FasterXML/jackson-core/issues/999.
   'ch.randelshofer:fastdoubleparser:0.8.0',
 ]