From d4630f1223ba8cef0f9767d22f70999f1292cbcf Mon Sep 17 00:00:00 2001 From: Jason Penilla <11360596+jpenilla@users.noreply.github.com> Date: Thu, 5 Dec 2024 15:10:10 -0700 Subject: [PATCH] Fix broken joml metadata resulting in kotlin being included on compile/runtime classpath (#11712) --- build.gradle.kts | 2 +- patches/api/0001-Convert-project-to-Gradle.patch | 8 +++++--- patches/api/0002-Build-system-changes.patch | 14 +++++++------- patches/api/0003-Test-changes.patch | 6 +++--- patches/api/0004-Code-Generation.patch | 6 +++--- patches/api/0005-Add-FastUtil-to-Bukkit.patch | 4 ++-- patches/api/0006-Adventure.patch | 10 +++++----- patches/api/0008-Use-ASM-for-event-executors.patch | 4 ++-- patches/api/0009-Paper-Plugins.patch | 6 +++--- ...67-Allow-plugins-to-use-SLF4J-for-logging.patch | 6 +++--- patches/api/0464-Brigadier-based-command-API.patch | 4 ++-- settings.gradle.kts | 2 +- 12 files changed, 37 insertions(+), 35 deletions(-) diff --git a/build.gradle.kts b/build.gradle.kts index 930326a321..cce2a91f72 100644 --- a/build.gradle.kts +++ b/build.gradle.kts @@ -11,7 +11,7 @@ import kotlin.io.path.* plugins { java `maven-publish` - id("io.papermc.paperweight.core") version "1.7.6" + id("io.papermc.paperweight.core") version "1.7.7" } allprojects { diff --git a/patches/api/0001-Convert-project-to-Gradle.patch b/patches/api/0001-Convert-project-to-Gradle.patch index 59b180fddd..82d092d456 100644 --- a/patches/api/0001-Convert-project-to-Gradle.patch +++ b/patches/api/0001-Convert-project-to-Gradle.patch @@ -27,10 +27,10 @@ index 5dd700a956e915c00b25d91dea8d6f285ddab72b..97e78e27ee0eea2c8b24886eeb19164d +/.factorypath diff --git a/build.gradle.kts b/build.gradle.kts new file mode 100644 -index 0000000000000000000000000000000000000000..8ec976de73d8fe6e4d46007649f2c9089e8bdd9c +index 0000000000000000000000000000000000000000..dfb490fe94c1f543cc75e9f5ca76f8254bff9159 --- /dev/null +++ b/build.gradle.kts -@@ -0,0 +1,91 @@ +@@ -0,0 +1,93 @@ +plugins { + `java-library` + `maven-publish` @@ -50,7 +50,9 @@ index 0000000000000000000000000000000000000000..8ec976de73d8fe6e4d46007649f2c908 + api("com.google.code.gson:gson:2.11.0") + api("net.md-5:bungeecord-chat:$bungeeCordChatVersion") + api("org.yaml:snakeyaml:2.2") -+ api("org.joml:joml:1.10.8") ++ api("org.joml:joml:1.10.8") { ++ isTransitive = false // https://github.com/JOML-CI/JOML/issues/352 ++ } + + compileOnly("org.apache.maven:maven-resolver-provider:3.9.6") + compileOnly("org.apache.maven.resolver:maven-resolver-connector-basic:1.9.18") diff --git a/patches/api/0002-Build-system-changes.patch b/patches/api/0002-Build-system-changes.patch index 24b0253137..8ef831d434 100644 --- a/patches/api/0002-Build-system-changes.patch +++ b/patches/api/0002-Build-system-changes.patch @@ -5,13 +5,13 @@ Subject: [PATCH] Build system changes diff --git a/build.gradle.kts b/build.gradle.kts -index 8ec976de73d8fe6e4d46007649f2c9089e8bdd9c..2229758d9da373519a42f58e4ca17120c5272530 100644 +index dfb490fe94c1f543cc75e9f5ca76f8254bff9159..3667f27baa87c82e071cc14ca20491d38feee255 100644 --- a/build.gradle.kts +++ b/build.gradle.kts -@@ -18,15 +18,27 @@ dependencies { - api("net.md-5:bungeecord-chat:$bungeeCordChatVersion") - api("org.yaml:snakeyaml:2.2") - api("org.joml:joml:1.10.8") +@@ -20,15 +20,27 @@ dependencies { + api("org.joml:joml:1.10.8") { + isTransitive = false // https://github.com/JOML-CI/JOML/issues/352 + } + // Paper start + api("com.googlecode.json-simple:json-simple:1.1.1") { + isTransitive = false // includes junit @@ -37,7 +37,7 @@ index 8ec976de73d8fe6e4d46007649f2c9089e8bdd9c..2229758d9da373519a42f58e4ca17120 testImplementation("org.apache.commons:commons-lang3:3.12.0") testImplementation("org.junit.jupiter:junit-jupiter:5.10.2") testImplementation("org.hamcrest:hamcrest:2.2") -@@ -69,8 +81,13 @@ tasks.withType { +@@ -71,8 +83,13 @@ tasks.withType { options.links( "https://guava.dev/releases/33.3.1-jre/api/docs/", "https://javadoc.io/doc/org.yaml/snakeyaml/2.2/", @@ -52,7 +52,7 @@ index 8ec976de73d8fe6e4d46007649f2c9089e8bdd9c..2229758d9da373519a42f58e4ca17120 ) options.tags("apiNote:a:API Note:") -@@ -89,3 +106,14 @@ tasks.withType { +@@ -91,3 +108,14 @@ tasks.withType { tasks.test { useJUnitPlatform() } diff --git a/patches/api/0003-Test-changes.patch b/patches/api/0003-Test-changes.patch index 4b9bdb3ceb..41dfb8bc77 100644 --- a/patches/api/0003-Test-changes.patch +++ b/patches/api/0003-Test-changes.patch @@ -14,7 +14,7 @@ Co-authored-by: Jake Potrebic Co-authored-by: Yannick Lamprecht diff --git a/build.gradle.kts b/build.gradle.kts -index 2229758d9da373519a42f58e4ca17120c5272530..1860fc52cb7de590184b828d615ff75683ae69ca 100644 +index 3667f27baa87c82e071cc14ca20491d38feee255..73aaa8a341565626556327cda6a73f98c318863a 100644 --- a/build.gradle.kts +++ b/build.gradle.kts @@ -11,6 +11,18 @@ java { @@ -36,7 +36,7 @@ index 2229758d9da373519a42f58e4ca17120c5272530..1860fc52cb7de590184b828d615ff756 dependencies { // api dependencies are listed transitively to API consumers api("com.google.guava:guava:33.3.1-jre") -@@ -44,6 +56,7 @@ dependencies { +@@ -46,6 +58,7 @@ dependencies { testImplementation("org.hamcrest:hamcrest:2.2") testImplementation("org.mockito:mockito-core:5.14.1") testImplementation("org.ow2.asm:asm-tree:9.7.1") @@ -44,7 +44,7 @@ index 2229758d9da373519a42f58e4ca17120c5272530..1860fc52cb7de590184b828d615ff756 } configure { -@@ -105,8 +118,19 @@ tasks.withType { +@@ -107,8 +120,19 @@ tasks.withType { tasks.test { useJUnitPlatform() diff --git a/patches/api/0004-Code-Generation.patch b/patches/api/0004-Code-Generation.patch index 8ab0fca8cf..2cb22cc016 100644 --- a/patches/api/0004-Code-Generation.patch +++ b/patches/api/0004-Code-Generation.patch @@ -7,7 +7,7 @@ Currently includes generated key holder classes for types used in the Registry Modification API diff --git a/build.gradle.kts b/build.gradle.kts -index 1860fc52cb7de590184b828d615ff75683ae69ca..c5478e937eddb39be27306dae34353a4dedfcbdf 100644 +index 73aaa8a341565626556327cda6a73f98c318863a..a214483db535890a4b89e35a8c50cfd709df36d4 100644 --- a/build.gradle.kts +++ b/build.gradle.kts @@ -1,6 +1,7 @@ @@ -18,7 +18,7 @@ index 1860fc52cb7de590184b828d615ff75683ae69ca..c5478e937eddb39be27306dae34353a4 } java { -@@ -59,6 +60,22 @@ dependencies { +@@ -61,6 +62,22 @@ dependencies { mockitoAgent("org.mockito:mockito-core:5.14.1") { isTransitive = false } // Paper - configure mockito agent that is needed in newer java versions } @@ -41,7 +41,7 @@ index 1860fc52cb7de590184b828d615ff75683ae69ca..c5478e937eddb39be27306dae34353a4 configure { publications.create("maven") { from(components["java"]) -@@ -141,3 +158,14 @@ tasks.check { +@@ -143,3 +160,14 @@ tasks.check { dependsOn(scanJar) } // Paper end diff --git a/patches/api/0005-Add-FastUtil-to-Bukkit.patch b/patches/api/0005-Add-FastUtil-to-Bukkit.patch index 86fcfc4b0e..b5a3ecfd35 100644 --- a/patches/api/0005-Add-FastUtil-to-Bukkit.patch +++ b/patches/api/0005-Add-FastUtil-to-Bukkit.patch @@ -6,10 +6,10 @@ Subject: [PATCH] Add FastUtil to Bukkit Doesn't expose to plugins, just allows Paper-API to use it for optimization diff --git a/build.gradle.kts b/build.gradle.kts -index c5478e937eddb39be27306dae34353a4dedfcbdf..6457e9e11620b9b77f067e2d45d7fb45235f23d3 100644 +index a214483db535890a4b89e35a8c50cfd709df36d4..e1acfa9abed37e5332edf6b6cf66e3b9b926b366 100644 --- a/build.gradle.kts +++ b/build.gradle.kts -@@ -35,6 +35,7 @@ dependencies { +@@ -37,6 +37,7 @@ dependencies { api("com.googlecode.json-simple:json-simple:1.1.1") { isTransitive = false // includes junit } diff --git a/patches/api/0006-Adventure.patch b/patches/api/0006-Adventure.patch index 85e754d099..0ee6e81107 100644 --- a/patches/api/0006-Adventure.patch +++ b/patches/api/0006-Adventure.patch @@ -8,7 +8,7 @@ Co-authored-by: Jake Potrebic Co-authored-by: Yannick Lamprecht diff --git a/build.gradle.kts b/build.gradle.kts -index 6457e9e11620b9b77f067e2d45d7fb45235f23d3..64f7695cf37e9e60712f8b56d3aee0256e71c8e6 100644 +index e1acfa9abed37e5332edf6b6cf66e3b9b926b366..ed5d58d7569300c917dd52b11953a63fae6878d4 100644 --- a/build.gradle.kts +++ b/build.gradle.kts @@ -11,6 +11,18 @@ java { @@ -41,9 +41,9 @@ index 6457e9e11620b9b77f067e2d45d7fb45235f23d3..64f7695cf37e9e60712f8b56d3aee025 + } + // Paper - adventure api("org.yaml:snakeyaml:2.2") - api("org.joml:joml:1.10.8") - // Paper start -@@ -36,6 +52,13 @@ dependencies { + api("org.joml:joml:1.10.8") { + isTransitive = false // https://github.com/JOML-CI/JOML/issues/352 +@@ -38,6 +54,13 @@ dependencies { isTransitive = false // includes junit } api("it.unimi.dsi:fastutil:8.5.15") @@ -57,7 +57,7 @@ index 6457e9e11620b9b77f067e2d45d7fb45235f23d3..64f7695cf37e9e60712f8b56d3aee025 // Paper end compileOnly("org.apache.maven:maven-resolver-provider:3.9.6") -@@ -113,15 +136,32 @@ tasks.withType { +@@ -115,15 +138,32 @@ tasks.withType { "https://guava.dev/releases/33.3.1-jre/api/docs/", "https://javadoc.io/doc/org.yaml/snakeyaml/2.2/", "https://javadoc.io/doc/org.jetbrains/annotations/$annotationsVersion/", // Paper - we don't want Java 5 annotations diff --git a/patches/api/0008-Use-ASM-for-event-executors.patch b/patches/api/0008-Use-ASM-for-event-executors.patch index 9785ffdf7d..31a3b5a44b 100644 --- a/patches/api/0008-Use-ASM-for-event-executors.patch +++ b/patches/api/0008-Use-ASM-for-event-executors.patch @@ -6,10 +6,10 @@ Subject: [PATCH] Use ASM for event executors. Uses method handles for private or static methods. diff --git a/build.gradle.kts b/build.gradle.kts -index 64f7695cf37e9e60712f8b56d3aee0256e71c8e6..3a026fc8671fee2b99ea0a23a4278453c7fab267 100644 +index ed5d58d7569300c917dd52b11953a63fae6878d4..43086f7d201c0988086ef06cfe5a0f866d130961 100644 --- a/build.gradle.kts +++ b/build.gradle.kts -@@ -59,6 +59,9 @@ dependencies { +@@ -61,6 +61,9 @@ dependencies { apiAndDocs("net.kyori:adventure-text-serializer-legacy") apiAndDocs("net.kyori:adventure-text-serializer-plain") apiAndDocs("net.kyori:adventure-text-logger-slf4j") diff --git a/patches/api/0009-Paper-Plugins.patch b/patches/api/0009-Paper-Plugins.patch index d1787fdb4b..afecfce3b3 100644 --- a/patches/api/0009-Paper-Plugins.patch +++ b/patches/api/0009-Paper-Plugins.patch @@ -5,10 +5,10 @@ Subject: [PATCH] Paper Plugins diff --git a/build.gradle.kts b/build.gradle.kts -index 3a026fc8671fee2b99ea0a23a4278453c7fab267..7529e7ccec282e576a3a297ed870915822f8fedb 100644 +index 43086f7d201c0988086ef06cfe5a0f866d130961..305c2f3226f59e36ab1059b52e111178790aa6e8 100644 --- a/build.gradle.kts +++ b/build.gradle.kts -@@ -64,7 +64,7 @@ dependencies { +@@ -66,7 +66,7 @@ dependencies { implementation("org.ow2.asm:asm-commons:9.7.1") // Paper end @@ -17,7 +17,7 @@ index 3a026fc8671fee2b99ea0a23a4278453c7fab267..7529e7ccec282e576a3a297ed8709158 compileOnly("org.apache.maven.resolver:maven-resolver-connector-basic:1.9.18") compileOnly("org.apache.maven.resolver:maven-resolver-transport-http:1.9.18") -@@ -154,6 +154,7 @@ tasks.withType { +@@ -156,6 +156,7 @@ tasks.withType { "https://jd.advntr.dev/text-serializer-plain/$adventureVersion/", "https://jd.advntr.dev/text-logger-slf4j/$adventureVersion/", // Paper end diff --git a/patches/api/0067-Allow-plugins-to-use-SLF4J-for-logging.patch b/patches/api/0067-Allow-plugins-to-use-SLF4J-for-logging.patch index 2e6321fa4f..1a33aeb2ba 100644 --- a/patches/api/0067-Allow-plugins-to-use-SLF4J-for-logging.patch +++ b/patches/api/0067-Allow-plugins-to-use-SLF4J-for-logging.patch @@ -14,7 +14,7 @@ it without having to shade it in the plugin and going through several layers of logging abstraction. diff --git a/build.gradle.kts b/build.gradle.kts -index 7529e7ccec282e576a3a297ed870915822f8fedb..037b94a8b21f8f9408cd833823a1e6e48e22dcd6 100644 +index 305c2f3226f59e36ab1059b52e111178790aa6e8..2b489adc50d45facd347f79c34224d347dc20a75 100644 --- a/build.gradle.kts +++ b/build.gradle.kts @@ -12,6 +12,8 @@ java { @@ -26,7 +26,7 @@ index 7529e7ccec282e576a3a297ed870915822f8fedb..037b94a8b21f8f9408cd833823a1e6e4 val apiAndDocs: Configuration by configurations.creating { attributes { attribute(Category.CATEGORY_ATTRIBUTE, objects.named(Category.DOCUMENTATION)) -@@ -59,6 +61,8 @@ dependencies { +@@ -61,6 +63,8 @@ dependencies { apiAndDocs("net.kyori:adventure-text-serializer-legacy") apiAndDocs("net.kyori:adventure-text-serializer-plain") apiAndDocs("net.kyori:adventure-text-logger-slf4j") @@ -35,7 +35,7 @@ index 7529e7ccec282e576a3a297ed870915822f8fedb..037b94a8b21f8f9408cd833823a1e6e4 implementation("org.ow2.asm:asm:9.7.1") implementation("org.ow2.asm:asm-commons:9.7.1") -@@ -153,6 +157,8 @@ tasks.withType { +@@ -155,6 +159,8 @@ tasks.withType { "https://jd.advntr.dev/text-serializer-legacy/$adventureVersion/", "https://jd.advntr.dev/text-serializer-plain/$adventureVersion/", "https://jd.advntr.dev/text-logger-slf4j/$adventureVersion/", diff --git a/patches/api/0464-Brigadier-based-command-API.patch b/patches/api/0464-Brigadier-based-command-API.patch index f08a4d705d..894baf9ad8 100644 --- a/patches/api/0464-Brigadier-based-command-API.patch +++ b/patches/api/0464-Brigadier-based-command-API.patch @@ -6,7 +6,7 @@ Subject: [PATCH] Brigadier based command API Co-authored-by: Jake Potrebic diff --git a/build.gradle.kts b/build.gradle.kts -index 037b94a8b21f8f9408cd833823a1e6e48e22dcd6..8d76f0a8b6b67f0cae0b2fa23f0f79fc9fe97f30 100644 +index 2b489adc50d45facd347f79c34224d347dc20a75..571534b42cd9c33d6a7bb6fe3bf3a28e33f8e5de 100644 --- a/build.gradle.kts +++ b/build.gradle.kts @@ -39,6 +39,7 @@ abstract class MockitoAgentProvider : CommandLineArgumentProvider { @@ -17,7 +17,7 @@ index 037b94a8b21f8f9408cd833823a1e6e48e22dcd6..8d76f0a8b6b67f0cae0b2fa23f0f79fc // api dependencies are listed transitively to API consumers api("com.google.guava:guava:33.3.1-jre") api("com.google.code.gson:gson:2.11.0") -@@ -106,9 +107,33 @@ sourceSets { +@@ -108,9 +109,33 @@ sourceSets { } } // Paper end diff --git a/settings.gradle.kts b/settings.gradle.kts index 7b0716497a..cdd32ab6ef 100644 --- a/settings.gradle.kts +++ b/settings.gradle.kts @@ -8,7 +8,7 @@ pluginManagement { } plugins { - id("org.gradle.toolchains.foojay-resolver-convention") version "0.8.0" + id("org.gradle.toolchains.foojay-resolver-convention") version "0.9.0" } if (!file(".git").exists()) {