Update remotejdk_21 to Zulu 21.0.12 - #370
Conversation
732f672 to
89e653f
Compare
fwiw, it seems like this was always the case, but there used to be |
|
I'm working on a fix the failing test to support this new release |
Instead of looking at just the top level directory, we find the first '/bin' directory (or symlink). Context from #370 `Note that Azul changed the layout of the macOS tar.gz archives after 21.0.9: they now contain a macOS application bundle with the JDK under Contents/Home instead of a flat JDK image (the Zulu 25 macOS archives are still flat). The strip_prefix of the two macOS entries therefore descends into Contents/Home.` (ignore-relnotes) PiperOrigin-RevId: 960249078 Change-Id: I7b4e93dfc395985a672795204cad10fba20fcf93
Done in ed021f9 , please rebase to HEAD. |
89e653f to
b4145b7
Compare
Rebased onto HEAD (on top of ed021f9) — thanks for fixing the check script. Also thanks for the symlink correction: you're right that the bundle layout was always there and it's the root-level bin/lib symlinks into Contents/Home that are gone in the new release. I've updated the commit message accordingly; the diff itself is unchanged (same six pins, same checksums, same two _STRIP_PREFIX_OVERRIDES entries). PTAL. |
|
I'm now having second thoughts about the If we strip all the way to The (dropped) content itself doesn't seem like it would have much use within a Bazel build: but I can't say for sure.
Might it be safer to insert the top-level symlinks instead? |
b4145b7 to
6ca3493
Compare
|
Reworked to the symlink approach you suggested, and it turns out to be the general fix. Now three commits:
That's the argument for handling it this way rather than as a 21-specific tweak: it's not an Azul glitch in one release — they're dropping the (non-standard) root symlinks across lines, and Temurin/Corretto never had them, so this is just the standard macOS .jdk bundle layout. The patch_cmds handling is the general, future-proof fix. I folded the 25.0.4 bump into this PR since it hits the identical change and shares the mechanism — happy to split it into a separate follow-up if you'd rather review the 21 bump alone. Two caveats only CI can confirm: the patch_cmds → JDK-resolution path needs a macOS runner, and patch_cmds_win (PowerShell New-Item -ItemType SymbolicLink, needs Developer Mode) a Windows fetch. The check relaxation itself is pure bash. PTAL. |
|
|
Thanks, that all makes sense — working on it now. Plan:
Will push once it's regenerated and green. |
b0bd168 to
d08e39a
Compare
|
Mirroring requested at bazelbuild/bazel#30634 , once that's done we can proceed with this. |
Reverts the nested-layout bin-finding logic (locate bin/ in the archive and require strip_prefix to be its parent) added in "Fix check_remote_jdk_configs.sh for archives with nested layouts". It is unnecessary: the macOS application-bundle JDKs keep strip_prefix at the archive root and recreate the top-level symlinks with patch_cmds, so the archive's top-level directory already equals strip_prefix. Restore the comparison of strip_prefix to that top-level directory (tar --exclude='*/*' / unzip first entry), keeping the fail helper.
Recent Zulu macOS archives are application bundles: the JDK lives under Contents/Home and Azul no longer ships the top-level bin/lib symlinks. Keep strip_prefix at the archive root (uniform with every other platform) and recreate the top-level symlinks with patch_cmds. Generate the patch_cmds instead of maintaining a hardcoded repo list: _zulu_remote_jdk_repo returns the macOS patch_cmds, _flatten_configs carries them into each config, and dump_remote_jdk_configs emits them into the generated _REMOTE_JDK_CONFIGS_LIST, read back via getattr. Update every Zulu major (8/11/17/21/25) to its latest release and regenerate the list. The 21.0.12 bump also picks up the JDK-8341779 backport missing from 21.0.9, which caused Error Prone false positives such as NullArgumentForNonNullParameter; see google/error-prone#5436. Fixes bazelbuild#369
d08e39a to
c1f5a67
Compare
Bump the remotejdk_21 pins from Zulu 21.46.19 (OpenJDK 21.0.9) to Zulu 21.52.15 (OpenJDK 21.0.12) for all six platforms.
Zulu 21.0.9 lacks the backport of JDK-8341779 (reading type-use annotations on type-variable bounds from class files). This makes recent Error Prone report false positives such as
NullArgumentForNonNullParameter on documented Guava API usage, e.g. Iterables.getFirst(iterable, null), when compiling with the Java 21 toolchain; see google/error-prone#5436 for the analysis by the Error Prone maintainers.
Note that Azul changed the layout of the macOS tar.gz archives after 21.0.9: they now contain a macOS application bundle with the JDK under Contents/Home instead of a flat JDK image (the Zulu 25 macOS archives are still flat). The strip_prefix of the two macOS entries therefore descends into Contents/Home.
SHA-256 checksums are taken from the Azul metadata API; the linux_x64 and macosx_x64 artifacts were additionally downloaded and verified locally.
Fixes #369