From f505b0abac50d058d711a6b106e192583fdace70 Mon Sep 17 00:00:00 2001 From: Thomas Date: Thu, 26 Sep 2024 23:30:17 +0900 Subject: [PATCH 1/4] THRIFT-5775 Kotlin build failed for broken toolchain in docker This PR adds JDK 8 to both docker containers to support the kotlin build. Kotlin requires toolchain 8 and cant build this without the JDK for that language level being present. Also correct readme since docker desktop on Mac also fixes the permissions with volume sharing automatically. --- build/docker/README.md | 4 ++-- build/docker/ubuntu-focal/Dockerfile | 1 + build/docker/ubuntu-jammy/Dockerfile | 1 + 3 files changed, 4 insertions(+), 2 deletions(-) diff --git a/build/docker/README.md b/build/docker/README.md index 2a338b4b4c1..9e972b8d1d8 100644 --- a/build/docker/README.md +++ b/build/docker/README.md @@ -135,11 +135,11 @@ If you do not want to use the same scripts Travis CI does, you can do it manuall Build the image: -Linux/Mac: +Linux: thrift$ docker build --build-arg uid=$(id -u) --build-arg gid=$(id -g) -t thrift build/docker/ubuntu-jammy -Windows: +Windows/Mac: thrift$ docker build -t thrift build/docker/ubuntu-jammy diff --git a/build/docker/ubuntu-focal/Dockerfile b/build/docker/ubuntu-focal/Dockerfile index a29ec69531f..9c508193660 100644 --- a/build/docker/ubuntu-focal/Dockerfile +++ b/build/docker/ubuntu-focal/Dockerfile @@ -197,6 +197,7 @@ RUN apt-get install -y --no-install-recommends \ ant \ ant-optional \ maven \ + openjdk-8-jdk-headless \ openjdk-17-jdk-headless && \ `# Gradle` \ wget https://services.gradle.org/distributions/gradle-$GRADLE_VERSION-bin.zip -q -O /tmp/gradle-$GRADLE_VERSION-bin.zip && \ diff --git a/build/docker/ubuntu-jammy/Dockerfile b/build/docker/ubuntu-jammy/Dockerfile index 5fa6e6f889d..e3d4bc1fc85 100644 --- a/build/docker/ubuntu-jammy/Dockerfile +++ b/build/docker/ubuntu-jammy/Dockerfile @@ -196,6 +196,7 @@ RUN apt-get install -y --no-install-recommends \ ant \ ant-optional \ maven \ + openjdk-8-jdk-headless \ openjdk-17-jdk-headless && \ `# Gradle` \ wget https://services.gradle.org/distributions/gradle-$GRADLE_VERSION-bin.zip -q -O /tmp/gradle-$GRADLE_VERSION-bin.zip && \ From 218fc71cd18b17cf2d5c95d4b1cadc9decb8fa88 Mon Sep 17 00:00:00 2001 From: Thomas Date: Sat, 28 Sep 2024 11:47:25 +0900 Subject: [PATCH 2/4] Remove gradle toolchains from kotlin and set source/target to java 8 --- build/docker/ubuntu-focal/Dockerfile | 1 - build/docker/ubuntu-jammy/Dockerfile | 1 - lib/kotlin/build.gradle.kts | 7 +++---- lib/kotlin/cross-test-client/build.gradle.kts | 11 ++++++++--- lib/kotlin/cross-test-server/build.gradle.kts | 11 ++++++++--- 5 files changed, 19 insertions(+), 12 deletions(-) diff --git a/build/docker/ubuntu-focal/Dockerfile b/build/docker/ubuntu-focal/Dockerfile index 9c508193660..a29ec69531f 100644 --- a/build/docker/ubuntu-focal/Dockerfile +++ b/build/docker/ubuntu-focal/Dockerfile @@ -197,7 +197,6 @@ RUN apt-get install -y --no-install-recommends \ ant \ ant-optional \ maven \ - openjdk-8-jdk-headless \ openjdk-17-jdk-headless && \ `# Gradle` \ wget https://services.gradle.org/distributions/gradle-$GRADLE_VERSION-bin.zip -q -O /tmp/gradle-$GRADLE_VERSION-bin.zip && \ diff --git a/build/docker/ubuntu-jammy/Dockerfile b/build/docker/ubuntu-jammy/Dockerfile index e3d4bc1fc85..5fa6e6f889d 100644 --- a/build/docker/ubuntu-jammy/Dockerfile +++ b/build/docker/ubuntu-jammy/Dockerfile @@ -196,7 +196,6 @@ RUN apt-get install -y --no-install-recommends \ ant \ ant-optional \ maven \ - openjdk-8-jdk-headless \ openjdk-17-jdk-headless && \ `# Gradle` \ wget https://services.gradle.org/distributions/gradle-$GRADLE_VERSION-bin.zip -q -O /tmp/gradle-$GRADLE_VERSION-bin.zip && \ diff --git a/lib/kotlin/build.gradle.kts b/lib/kotlin/build.gradle.kts index 3f8b653ca5a..6450d3043a6 100644 --- a/lib/kotlin/build.gradle.kts +++ b/lib/kotlin/build.gradle.kts @@ -34,10 +34,9 @@ dependencies { testImplementation(kotlin("test")) } -kotlin { - jvmToolchain { - (this as JavaToolchainSpec).languageVersion.set(JavaLanguageVersion.of(8)) - } +java { + sourceCompatibility = JavaVersion.VERSION_1_8 + targetCompatibility = JavaVersion.VERSION_1_8 } tasks.withType { diff --git a/lib/kotlin/cross-test-client/build.gradle.kts b/lib/kotlin/cross-test-client/build.gradle.kts index 8a2c234b823..dc1c92c2b9e 100644 --- a/lib/kotlin/cross-test-client/build.gradle.kts +++ b/lib/kotlin/cross-test-client/build.gradle.kts @@ -50,9 +50,14 @@ dependencies { testImplementation("org.jetbrains.kotlin:kotlin-test-junit") } -kotlin { - jvmToolchain { - (this as JavaToolchainSpec).languageVersion.set(JavaLanguageVersion.of(8)) +java { + sourceCompatibility = JavaVersion.VERSION_1_8 + targetCompatibility = JavaVersion.VERSION_1_8 +} + +tasks.withType { + compilerOptions { + jvmTarget = org.jetbrains.kotlin.gradle.dsl.JvmTarget.JVM_1_8 } } diff --git a/lib/kotlin/cross-test-server/build.gradle.kts b/lib/kotlin/cross-test-server/build.gradle.kts index eda1ebd0c39..22dae34a42e 100644 --- a/lib/kotlin/cross-test-server/build.gradle.kts +++ b/lib/kotlin/cross-test-server/build.gradle.kts @@ -48,9 +48,14 @@ dependencies { testImplementation("org.jetbrains.kotlin:kotlin-test-junit") } -kotlin { - jvmToolchain { - (this as JavaToolchainSpec).languageVersion.set(JavaLanguageVersion.of(8)) +java { + sourceCompatibility = JavaVersion.VERSION_1_8 + targetCompatibility = JavaVersion.VERSION_1_8 +} + +tasks.withType { + compilerOptions { + jvmTarget = org.jetbrains.kotlin.gradle.dsl.JvmTarget.JVM_1_8 } } From b21f43190a377f297c2a6f9b873a02b77fa4dc23 Mon Sep 17 00:00:00 2001 From: Thomas Date: Sat, 28 Sep 2024 15:54:37 +0900 Subject: [PATCH 3/4] Manually set the release target for kotlin, remove overwrites from cross-test-client/server --- lib/kotlin/build.gradle.kts | 7 +++++-- lib/kotlin/cross-test-client/build.gradle.kts | 11 ----------- lib/kotlin/cross-test-server/build.gradle.kts | 13 +------------ 3 files changed, 6 insertions(+), 25 deletions(-) diff --git a/lib/kotlin/build.gradle.kts b/lib/kotlin/build.gradle.kts index 6450d3043a6..7ce0a77eed9 100644 --- a/lib/kotlin/build.gradle.kts +++ b/lib/kotlin/build.gradle.kts @@ -16,6 +16,8 @@ * specific language governing permissions and limitations * under the License. */ +import org.jetbrains.kotlin.gradle.dsl.JvmTarget +import org.jetbrains.kotlin.gradle.tasks.KotlinCompile plugins { kotlin("jvm") @@ -39,9 +41,10 @@ java { targetCompatibility = JavaVersion.VERSION_1_8 } -tasks.withType { +tasks.withType { compilerOptions { - jvmTarget = org.jetbrains.kotlin.gradle.dsl.JvmTarget.JVM_1_8 + jvmTarget = JvmTarget.JVM_1_8 + freeCompilerArgs = listOf("-Xjdk-release=1.8") } } diff --git a/lib/kotlin/cross-test-client/build.gradle.kts b/lib/kotlin/cross-test-client/build.gradle.kts index dc1c92c2b9e..c68f393ac26 100644 --- a/lib/kotlin/cross-test-client/build.gradle.kts +++ b/lib/kotlin/cross-test-client/build.gradle.kts @@ -50,17 +50,6 @@ dependencies { testImplementation("org.jetbrains.kotlin:kotlin-test-junit") } -java { - sourceCompatibility = JavaVersion.VERSION_1_8 - targetCompatibility = JavaVersion.VERSION_1_8 -} - -tasks.withType { - compilerOptions { - jvmTarget = org.jetbrains.kotlin.gradle.dsl.JvmTarget.JVM_1_8 - } -} - tasks { application { applicationName = "TestClient" diff --git a/lib/kotlin/cross-test-server/build.gradle.kts b/lib/kotlin/cross-test-server/build.gradle.kts index 22dae34a42e..57fef4f66d0 100644 --- a/lib/kotlin/cross-test-server/build.gradle.kts +++ b/lib/kotlin/cross-test-server/build.gradle.kts @@ -48,17 +48,6 @@ dependencies { testImplementation("org.jetbrains.kotlin:kotlin-test-junit") } -java { - sourceCompatibility = JavaVersion.VERSION_1_8 - targetCompatibility = JavaVersion.VERSION_1_8 -} - -tasks.withType { - compilerOptions { - jvmTarget = org.jetbrains.kotlin.gradle.dsl.JvmTarget.JVM_1_8 - } -} - tasks { application { applicationName = "TestServer" @@ -73,7 +62,7 @@ tasks { task("compileThrift") { val thriftBin = if (hasProperty("thrift.compiler")) { - file(property("thrift.compiler")) + file(property("thrift.compiler")!!) } else { project.rootDir.resolve("../../compiler/cpp/thrift") } From c4720e58fcd4d71ba99b4c20b1e5490c8dbaf604 Mon Sep 17 00:00:00 2001 From: Thomas Date: Sat, 5 Oct 2024 12:41:19 +0900 Subject: [PATCH 4/4] Set toolchain to 17 on the kotlin lib module --- lib/kotlin/build.gradle.kts | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/lib/kotlin/build.gradle.kts b/lib/kotlin/build.gradle.kts index 7ce0a77eed9..9ac073cecf5 100644 --- a/lib/kotlin/build.gradle.kts +++ b/lib/kotlin/build.gradle.kts @@ -36,6 +36,12 @@ dependencies { testImplementation(kotlin("test")) } +kotlin { + jvmToolchain { + languageVersion.set(JavaLanguageVersion.of(17)) + } +} + java { sourceCompatibility = JavaVersion.VERSION_1_8 targetCompatibility = JavaVersion.VERSION_1_8