From 9a30a33b79a5455d43c06f101edfcae24bd08c54 Mon Sep 17 00:00:00 2001 From: Binu Philip Date: Thu, 5 Mar 2026 18:27:00 +0000 Subject: [PATCH 1/2] workaround(java-21-openjdk-portable): pull spec from earlier snapshot to satisfy version dep We build java-21 with portable sources 21.0.8.0.9. The head version of fed43 delivers 21.0.10.0.7. This will cause stage2 builds to fail. As a workaround pull from an older snapshot from before version was upgraded. By default a bootstrap build of jdk is done to make sure no other version of jdk is used accidentally. Since our stage2 is isolated and we are using the current version of jdk, ie. the one we built in stage1, to build portable sources, we disable bootstrap build. --- .../java-21-openjdk-portable.comp.toml | 13 +++++++++++++ .../java-21-openjdk-portable.comp.toml~ | 13 +++++++++++++ 2 files changed, 26 insertions(+) create mode 100644 base/comps/java-21-openjdk-portable/java-21-openjdk-portable.comp.toml create mode 100644 base/comps/java-21-openjdk-portable/java-21-openjdk-portable.comp.toml~ diff --git a/base/comps/java-21-openjdk-portable/java-21-openjdk-portable.comp.toml b/base/comps/java-21-openjdk-portable/java-21-openjdk-portable.comp.toml new file mode 100644 index 00000000000..22bd8a6ec9a --- /dev/null +++ b/base/comps/java-21-openjdk-portable/java-21-openjdk-portable.comp.toml @@ -0,0 +1,13 @@ +[components.java-21-openjdk-portable] + +# We build java-21 with portable sources 21.0.8.0.9. The head version of fed43 delivers +# 21.0.10.0.7. This will cause stage2 builds to fail. As a workaround pull from an older +# snapshot from before version was upgraded. +spec = { type = "upstream", upstream-distro = { name = "fedora", version = "43", snapshot = "2025-07-22T00:00:00-08:00" } } + +# The build repo has a newer java-21-openjdk (21.0.8+) whose libjava.so references +# JVM_IsContainerized — a symbol not present in the 21.0.7 libjvm.so. The fresh_libjvm +# feature rebuilds libjvm.so from source and swaps it into the boot JDK, causing an ABI +# mismatch. Disable it so the boot JDK uses its own compatible libjvm.so. +[components.java-21-openjdk-portable.build] +without = ["fresh_libjvm"] diff --git a/base/comps/java-21-openjdk-portable/java-21-openjdk-portable.comp.toml~ b/base/comps/java-21-openjdk-portable/java-21-openjdk-portable.comp.toml~ new file mode 100644 index 00000000000..ddbca0ff726 --- /dev/null +++ b/base/comps/java-21-openjdk-portable/java-21-openjdk-portable.comp.toml~ @@ -0,0 +1,13 @@ +[components.java-21-openjdk-portable] + +# We build java-21 with portable sources 21.0.8.0.9. The head version of fed43 delivers +# 21.0.10.0.7. This will cause stage2 builds to fail. As a workaround pull from an older +# snapshot from before version was upgraded. +spec = { type = "upstream", upstream-distro = { name = "fedora", version = "43", snapshot = "2025-07-21T00:00:00-08:00" } } + +# The build repo has a newer java-21-openjdk (21.0.8+) whose libjava.so references +# JVM_IsContainerized — a symbol not present in the 21.0.7 libjvm.so. The fresh_libjvm +# feature rebuilds libjvm.so from source and swaps it into the boot JDK, causing an ABI +# mismatch. Disable it so the boot JDK uses its own compatible libjvm.so. +[components.java-21-openjdk-portable.build] +without = ["fresh_libjvm"] From e3c16805cdf0f648f40f6427492ebbb0864c93d4 Mon Sep 17 00:00:00 2001 From: Binu Philip Date: Fri, 6 Mar 2026 15:41:41 +0000 Subject: [PATCH 2/2] fix: update components toml to reflect the override --- base/comps/components-full.toml | 1 - 1 file changed, 1 deletion(-) diff --git a/base/comps/components-full.toml b/base/comps/components-full.toml index c881bfde195..e5b3fc26296 100644 --- a/base/comps/components-full.toml +++ b/base/comps/components-full.toml @@ -648,7 +648,6 @@ [components.jansi-native] [components.jansi1] [components.jasper] -[components.java-21-openjdk-portable] [components.java-rpm-macros] [components.java_cup] [components.javacc]