Skip to content
xtex edited this page Sep 17, 2024 · 18 revisions

更新

TL;DR

  • https://github.com/openjdk/jdk
  • https://github.com/openjdk/jdkXXu
  • https://github.com/loongson/jdk
  • https://github.com/loongson/jdkXXu (LTS Only)
  • https://salsa.debian.org/openjdk-team/openjdk/tree/openjdk-XX
  • https://git.alpinelinux.org/aports/tree/community/openjdkXX (LTS Only)
  • https://github.com/AOSC-Tracking/jdk/tree/aosc/XX/XXXX
  • default head
  • https://wiki.openjdk.org/display/JDKUpdates

Too Short; Don't Read

  • 从上游拉取对应tag并创建对应分支aosc/VER
  • 拉取 loongson/jdk loongarch-port 分支中,下一个版本的合并提交的第一父提交并squash合并 对于非LTS版本:
    git fetch git@github.com:loongson/jdk.git loongarch-port # 拉取移植上游
    git merge-base FETCH_HEAD HEAD # 查找合并点
    git log FETCH_HEAD --merges | grep -C20 86f9b3f52a06 # 查找合并提交
    git merge 47b2742151965bfe073fba5fc22d2ae7a708a1dd --squash # 挤压合并
    # 检查后提交,消息为 "FROM LOONGSON: loongarch port",请保留自动生成的 squash merge 消息
    git log FETCH_HEAD --first-parent | grep -C150 47b2742 # 查找合并前后提交,一般会包括一些修复
    对于LTS版本,直接在loongson对应的LTS仓库中寻找合并提交并挤压合并。
  • 检查上一版本的patch来源并重新apply上游更新,检查是否仍需要。 对于 FROM AOSC 的 patch,请手动判断是否需要并进行 cherry-pick
  • 检查 Debian 中是否有需要的patch(https://salsa.debian.org/openjdk-team/openjdk/tree/openjdk-XX) 请在patch前添加 FROM DEBIAN: 前缀并在消息中使用 Link: tag 标记来源。
  • 在 JDK BUG SYSTEM 翻找可能需要的patch(https://bugs.openjdk.org/browse/JDK-8332724?jql=project%20%3D%20JDK%20AND%20statusCategory%20%3D%20Done%20AND%20affectedVersion%20~%2023%20AND%20type%20%3D%20Bug%20ORDER%20BY%20updated%20DESC) 请在patch前添加 FROM UPSTREAM: 前缀,由于 OpenJDK 上游提交均有 JDK BUG SYSTEM 的编号,故无需 Link: tag。
  • 对于LTS版本,可查看 Alpine 的 patches (https://git.alpinelinux.org/aports/tree/community/openjdkXX) 请在patch前添加 FROM ALPINE: 前缀并在消息中使用 Link: tag 标记来源。
  • 更新 default branch

自举

AOSC OS

优先使用。

  • 将前一版本 OpenJDK 添加到 defines.stage2BUILDDEP
  • build.stage2 中的 JDKBOOTDIR 设置为该 OpenJDK 的目录
    JDKBOOTDIR="/usr/lib/java"

外部JDK

  • 修改 build.stage2 中的架构映射,并同步更改到 build

外源JDK目前来源有:

  • Temurin (Adoptium): https://github.com/adoptium/temurinXX-binaries/releases/ BOOTSTRAP_ADOPTIUM(JDK 版本),ADOPTIUM_ARCH(架构映射)
  • LoongArchLinux: https://loongarchlinux.org/packages BOOTSTRAP_LOONGARCH64_SUF(包名后缀),BOOTSTRAP_LOONGARCH64(该包的JDK大版本),LOONGARCH64_BOOT(LoongArch架构标识)
  • Debian: https://packages.debian.org/sid/java/ BOOTSTRAP_DEBIAN(Debian 版本,如 sid),DEBIAN_ARCH(架构映射)
  • Alpine: https://pkgs.alpinelinux.org/packages BOOTSTRAP_ALPINE(Alpine 版本,如 edge),ALPINE_ARCH(架构映射) 对于 Alpine 的 JDK,需要添加 musl 作为构建依赖
    # needed for bootstraping from Alpine OpenJDK
    BUILDDEP__RISCV64="${BUILDDEP} musl"
Clone this wiki locally