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',
]