commit:     a7d0c6e86b4b6dcd54aac24b38fa94721963e720
Author:     Volkmar W. Pogatzki <gentoo <AT> pogatzki <DOT> net>
AuthorDate: Tue Jan 20 22:00:24 2026 +0000
Commit:     Miroslav Šulc <fordfrog <AT> gentoo <DOT> org>
CommitDate: Fri Jan 23 19:52:37 2026 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=a7d0c6e8

dev-java/openjdk: add 25.0.2_p10

Signed-off-by: Volkmar W. Pogatzki <gentoo <AT> pogatzki.net>
Signed-off-by: Miroslav Šulc <fordfrog <AT> gentoo.org>

 dev-java/openjdk/Manifest                  |   1 +
 dev-java/openjdk/openjdk-25.0.2_p10.ebuild | 352 +++++++++++++++++++++++++++++
 2 files changed, 353 insertions(+)

diff --git a/dev-java/openjdk/Manifest b/dev-java/openjdk/Manifest
index be6691245a43..794e9fafb1f5 100644
--- a/dev-java/openjdk/Manifest
+++ b/dev-java/openjdk/Manifest
@@ -3,6 +3,7 @@ DIST openjdk-11.0.29_p7.tar.gz 116622259 BLAKE2B 
9b4b2abe361914e4e9c44ff27b53dbc
 DIST openjdk-17.0.17_p10.tar.gz 107966134 BLAKE2B 
638ddbcab4a958c54b9aab4bb2d1deabd313bf0f2c9944465ed8b5d5c9b0e890af04ada7180c0a3608d21604cda67b5568e79fb1d840b4b91e905b79893c601a
 SHA512 
ddb409fe2c8714af081e1174df2b1febcb05097dd83eed60abe9cdaf6b9cfb9a960626480ff4f8719e8890480274ca5ce2abb449317aeb617d9bfe964b33ad29
 DIST openjdk-21.0.9_p10.tar.gz 113806114 BLAKE2B 
b6511bd023d022bbc21a11acc173257ec8b015e89ee148be94dad9a7bd71e711f576b74d4e94dac8e06bc19c54745b134d7b0da4284e4de424a1e1489c071ae6
 SHA512 
f209839c830e5db7080613b5d5e7c33ccd6a55cb72a2e6237bb26646569691a34a7b93349c9fa219a3496e111e156c2d24abda3b389056b16625668e8756aed0
 DIST openjdk-25.0.1_p8.tar.gz 119363842 BLAKE2B 
24fcb7607cf7847c743cc5f538b1ae11f8fd551e5c75777ae68a58efb7bcba67a02ef0b02b0123c715a5dabe0d68c9dd49e51678b73e3fe232009bc6a834b4b5
 SHA512 
002ca3cbd9b581bed8c01e2bbda7647845b88d165f638460870aee510feffcc014588b6c5315e77467458682b049e7d2bb1c6be8728f8cf5067539f5d8233352
+DIST openjdk-25.0.2_p10.tar.gz 119406560 BLAKE2B 
e3461d09ab68b15aab06645df1cb6dfd1090ed46cbe9c14c2cbc39c06468f483de9d79815817c6c6fc521e37d422e007d4a5e80c7d42ec9d1b6b943ceeb5c807
 SHA512 
a1435cf8493c9498abfa98ac4ef4c5dc67892b95010c167cbda03b7ceb154f466d84ea3daf4242102f71b74233930e880f422768660a30f48658321255483907
 DIST openjdk-26_beta28.tar.gz 121524950 BLAKE2B 
5ad807bf475335b9866579104a2b8d5fa9ccb0a9d24c7b57682d036d2ac0422fc9a5a468c322d357f172539b039a43d67d6452c84f240232201fd9eb56d8728e
 SHA512 
5046ead222d09ca494979c7767d5bfc7a4e55035a48404bce17665e1e01c671410124121a1039b11c6e72435fde1b3d500479114f4b363710c1ad9d0f7a9bae6
 DIST openjdk-27_alpha3.tar.gz 121599758 BLAKE2B 
82c8ea3d5038a9c43e6317f15d747b5c5fe90e72c6c5972d2faeba8bea7a362eb43b425f6672e7554b2f99b85c20d45b935b6e529f39541eaf936575eb35a709
 SHA512 
9d71a0e70d6e289f8d67e53e4a251b5f71e44e0672e765ba5e8ddc40692a9165054b1fe1471ea00b60bf97fe47530c1ed3f56919e7ef41fc547529cf695bb280
 DIST openjdk-8.472_p08.tar.gz 92827251 BLAKE2B 
5f5c90ef0eeaf934947c943798e2ef035fc2fb6a86c21d5408cf737257e4db63555581278ca688b9dd1cb76913effa22149152986eddaf233b1217f884ca84d1
 SHA512 
1acebcb878d0da98fe9d66040037ddeb10c307c89402a8e2471f074068589f6bcbcaafffd24d2eb94e1aaf25e953430d94e299465e3222869789f252eacc6446

diff --git a/dev-java/openjdk/openjdk-25.0.2_p10.ebuild 
b/dev-java/openjdk/openjdk-25.0.2_p10.ebuild
new file mode 100644
index 000000000000..2db05ab3f2a7
--- /dev/null
+++ b/dev-java/openjdk/openjdk-25.0.2_p10.ebuild
@@ -0,0 +1,352 @@
+# Copyright 1999-2026 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+# Avoid circular dependency
+JAVA_DISABLE_DEPEND_ON_JAVA_DEP_CHECK="true"
+
+inherit check-reqs flag-o-matic java-pkg-2 java-vm-2 multiprocessing 
toolchain-funcs
+
+# variable name format: <UPPERCASE_KEYWORD>_XPAK
+PPC64_XPAK="25_p36" # big-endian bootstrap tarball
+
+# Usage: bootstrap_uri <keyword> <version> [extracond]
+# Example: $(bootstrap_uri ppc64 17.0.1_p12 big-endian)
+# Output: ppc64? ( big-endian? ( https://...17.0.1_p12-ppc64.tar.xz ) )
+bootstrap_uri() {
+       local 
baseuri="https://dev.gentoo.org/~arthurzam/distfiles/dev-java/${PN}/${PN}-bootstrap";
+       local suff="tar.xz"
+       local kw="${1:?${FUNCNAME[0]}: keyword not specified}"
+       local ver="${2:?${FUNCNAME[0]}: version not specified}"
+       local cond="${3-}"
+       [[ ${cond} == elibc_musl* ]] && local musl=yes
+
+       # here be dragons
+       echo "${kw}? ( ${cond:+${cond}? (} 
${baseuri}-${ver}-${kw}${musl:+-musl}.${suff} ${cond:+) })"
+}
+
+# don't change versioning scheme
+# to find correct _p number, look at
+# https://github.com/openjdk/jdk${SLOT}u/tags
+# you will see, for example, jdk-17.0.4.1-ga and jdk-17.0.4.1+1, both point
+# to exact same commit sha. we should always use the full version.
+# -ga tag is just for humans to easily identify General Availability release 
tag.
+# MY_PV="${PV%_p*}-ga"
+
+# Upstream starts new major versions usually in https://github.com/openjdk/jdk.
+# In ebuilds for those early versions, use '_alpha' in the version string.
+# Exapmle: openjdk-26_alpha10.ebuild
+# Later, upstream creates the versioned repository like e.g.
+# https://github.com/openjdk/jdk25u.
+# In ebuilds for those later versions, use '_beta' in the version string.
+# Example: openjdk-25_beta35.ebuild
+if [[ "${PV%_alpha*}" != "${PV}" ]]; then # version string contains "_alpha"
+       MY_PV="${PV/_alpha/+}"
+       JDK_REPO="jdk"
+       MY_VERSION_STRING="${PV%_alpha*}"
+       MY_VERSION_BUILD="${PV#*_alpha}"
+elif [[ "${PV%_beta*}" != "${PV}" ]]; then # version string contains "_beta"
+       MY_PV="${PV/_beta/+}"
+       JDK_REPO="jdk$(ver_cut 1)u"
+       MY_VERSION_STRING="${PV%_beta*}"
+       MY_VERSION_BUILD="${PV#*_beta}"
+else
+       MY_PV="${PV%_p*}-ga"
+       JDK_REPO="jdk$(ver_cut 1)u"
+       MY_VERSION_STRING="${PV%_p*}"
+       MY_VERSION_BUILD="${PV#*_p}"
+fi
+
+DESCRIPTION="Open source implementation of the Java programming language"
+HOMEPAGE="https://openjdk.org";
+SRC_URI="
+       https://github.com/${PN}/${JDK_REPO}/archive/jdk-${MY_PV}.tar.gz
+               -> ${P}.tar.gz
+       !system-bootstrap? (
+               $(bootstrap_uri ppc64 ${PPC64_XPAK} big-endian)
+       )
+"
+S="${WORKDIR}/${JDK_REPO}-jdk-${MY_PV//+/-}"
+
+LICENSE="GPL-2-with-classpath-exception"
+SLOT="$(ver_cut 1)"
+KEYWORDS="~amd64 ~arm64 ~ppc64 ~riscv"
+
+IUSE="alsa big-endian cups debug doc examples headless-awt javafx +jbootstrap 
selinux source +system-bootstrap systemtap"
+
+REQUIRED_USE="
+       javafx? ( alsa !headless-awt )
+       !system-bootstrap? ( jbootstrap )
+       !system-bootstrap? ( ppc64 )
+"
+
+COMMON_DEPEND="
+       media-libs/freetype:2=
+       media-libs/giflib:0/7
+       media-libs/harfbuzz:=
+       media-libs/libpng:0=
+       media-libs/lcms:2=
+       virtual/zlib:=
+       media-libs/libjpeg-turbo:0=
+       systemtap? ( dev-debug/systemtap )
+"
+
+# Many libs are required to build, but not to run, make is possible to remove
+# by listing conditionally in RDEPEND unconditionally in DEPEND
+RDEPEND="
+       ${COMMON_DEPEND}
+       >=sys-apps/baselayout-java-0.1.0-r1
+       !headless-awt? (
+               x11-libs/libX11
+               x11-libs/libXext
+               x11-libs/libXi
+               x11-libs/libXrandr
+               x11-libs/libXrender
+               x11-libs/libXt
+               x11-libs/libXtst
+       )
+       alsa? ( media-libs/alsa-lib )
+       cups? ( net-print/cups )
+       selinux? ( sec-policy/selinux-java )
+"
+
+DEPEND="
+       ${COMMON_DEPEND}
+       app-arch/zip
+       media-libs/alsa-lib
+       net-print/cups
+       x11-base/xorg-proto
+       x11-libs/libX11
+       x11-libs/libXext
+       x11-libs/libXi
+       x11-libs/libXrandr
+       x11-libs/libXrender
+       x11-libs/libXt
+       x11-libs/libXtst
+       javafx? ( dev-java/openjfx:${SLOT}= )
+       system-bootstrap? (
+               || (
+                       dev-java/openjdk-bin:${SLOT}
+                       dev-java/openjdk:${SLOT}
+               )
+       )
+"
+
+# The space required to build varies wildly depending on USE flags,
+# ranging from 2GB to 16GB. This function is certainly not exact but
+# should be close enough to be useful.
+openjdk_check_requirements() {
+       local M
+       M=2048
+       M=$(( $(usex jbootstrap 2 1) * $M ))
+       M=$(( $(usex debug 3 1) * $M ))
+       M=$(( $(usex doc 320 0) + $(usex source 128 0) + 192 + $M ))
+
+       CHECKREQS_DISK_BUILD=${M}M check-reqs_pkg_${EBUILD_PHASE}
+}
+
+pkg_pretend() {
+       openjdk_check_requirements
+       if [[ ${MERGE_TYPE} != binary ]]; then
+               has ccache ${FEATURES} && die "FEATURES=ccache doesn't work 
with ${PN}, bug #677876"
+       fi
+}
+
+pkg_setup() {
+       openjdk_check_requirements
+       java-vm-2_pkg_setup
+
+       [[ ${MERGE_TYPE} == "binary" ]] && return
+
+       JAVA_PKG_WANT_BUILD_VM="openjdk-${SLOT} openjdk-bin-${SLOT}"
+       JAVA_PKG_WANT_SOURCE="${SLOT}"
+       JAVA_PKG_WANT_TARGET="${SLOT}"
+
+       # The nastiness below is necessary while the gentoo-vm USE flag is
+       # masked. First we call java-pkg-2_pkg_setup if it looks like the
+       # flag was unmasked against one of the possible build VMs. If not,
+       # we try finding one of them in their expected locations. This would
+       # have been slightly less messy if openjdk-bin had been installed to
+       # /opt/${PN}-${SLOT} or if there was a mechanism to install a VM env
+       # file but disable it so that it would not normally be selectable.
+
+       local vm
+       for vm in ${JAVA_PKG_WANT_BUILD_VM}; do
+               if [[ -d ${BROOT}/usr/lib/jvm/${vm} ]]; then
+                       java-pkg-2_pkg_setup
+                       return
+               fi
+       done
+}
+
+src_prepare() {
+       default
+       chmod +x configure || die
+}
+
+src_configure() {
+       local myconf=()
+
+       if has_version dev-java/openjdk:${SLOT}; then
+               export JDK_HOME=${BROOT}/usr/$(get_libdir)/openjdk-${SLOT}
+       elif use !system-bootstrap ; then
+               local xpakvar="${ARCH^^}_XPAK"
+               export JDK_HOME="${WORKDIR}/openjdk-bootstrap-${!xpakvar}"
+       else
+               JDK_HOME=$(best_version -b dev-java/openjdk-bin:${SLOT})
+               [[ -n ${JDK_HOME} ]] || die "Build VM not found!"
+               JDK_HOME=${JDK_HOME#*/}
+               JDK_HOME=${BROOT}/opt/${JDK_HOME%-r*}
+               export JDK_HOME
+       fi
+
+       # bug 906987; append-cppflags doesnt work
+       use elibc_musl && append-flags -D_LARGEFILE64_SOURCE
+
+       # Strip some flags users may set, but should not. #818502
+       filter-flags -fexceptions
+
+       # Strip lto related flags, we rely on --with-jvm-features=link-time-opt
+       # See bug #833097 and bug #833098.
+       #
+       # .. but because of -Werror=odr (bug #916735), we disable it
+       # entirely for now.
+       #tc-is-lto && myconf+=( --with-jvm-features=link-time-opt )
+       filter-lto
+       filter-flags -fdevirtualize-at-ltrans
+
+       # Enabling full docs appears to break doc building. If not
+       # explicitly disabled, the flag will get auto-enabled if pandoc and
+       # graphviz are detected. pandoc has loads of dependencies anyway.
+
+       myconf+=(
+               --disable-ccache
+               --disable-precompiled-headers
+               --disable-warnings-as-errors
+               --enable-full-docs=no
+               --with-boot-jdk="${JDK_HOME}"
+               --with-extra-cflags="${CFLAGS}"
+               --with-extra-cxxflags="${CXXFLAGS}"
+               --with-extra-ldflags="${LDFLAGS}"
+               --with-freetype="${XPAK_BOOTSTRAP:-system}"
+               --with-giflib="${XPAK_BOOTSTRAP:-system}"
+               --with-harfbuzz="${XPAK_BOOTSTRAP:-system}"
+               --with-lcms="${XPAK_BOOTSTRAP:-system}"
+               --with-libjpeg="${XPAK_BOOTSTRAP:-system}"
+               --with-libpng="${XPAK_BOOTSTRAP:-system}"
+               --with-stdc++lib=dynamic
+               --with-native-debug-symbols=$(usex debug internal none)
+               --with-vendor-name="Gentoo"
+               --with-vendor-url="https://gentoo.org";
+               --with-vendor-bug-url="https://bugs.gentoo.org";
+               --with-vendor-vm-bug-url="https://bugs.openjdk.java.net";
+               --with-vendor-version-string="${PVR}"
+               --with-version-pre=""
+               --with-version-string="${MY_VERSION_STRING}"
+               --with-version-build="${MY_VERSION_BUILD}"
+               --with-zlib="${XPAK_BOOTSTRAP:-system}"
+               --enable-jvm-feature-dtrace=$(usex systemtap yes no)
+               --enable-headless-only=$(usex headless-awt yes no)
+               $(tc-is-clang && echo "--with-toolchain-type=clang")
+       )
+
+       use riscv && myconf+=( 
--with-boot-jdk-jvmargs="-Djdk.lang.Process.launchMechanism=vfork" )
+
+       if use javafx; then
+               local 
zip="${EPREFIX}/usr/$(get_libdir)/openjfx-${SLOT}/javafx-exports.zip"
+               if [[ -r ${zip} ]]; then
+                       myconf+=( --with-import-modules="${zip}" )
+               else
+                       die "${zip} not found or not readable"
+               fi
+       fi
+
+       # Workaround for bug #938302
+       if use systemtap && has_version 
"dev-debug/systemtap[-dtrace-symlink(+)]" ; then
+               myconf+=( DTRACE="${BROOT}"/usr/bin/stap-dtrace )
+       fi
+
+       if use !system-bootstrap ; then
+               addpredict /dev/random
+               addpredict /proc/self/coredump_filter
+       fi
+
+       (
+               unset _JAVA_OPTIONS JAVA JAVA_TOOL_OPTIONS JAVAC XARGS
+               CFLAGS= CXXFLAGS= LDFLAGS= \
+               CONFIG_SITE=/dev/null \
+               econf "${myconf[@]}"
+       )
+}
+
+src_compile() {
+       # Too brittle - gets confused by e.g. -Oline
+       export MAKEOPTS="-j$(makeopts_jobs) -l$(makeopts_loadavg)"
+       unset GNUMAKEFLAGS MAKEFLAGS
+
+       local myemakeargs=(
+               JOBS=$(makeopts_jobs)
+               LOG=debug
+               CFLAGS_WARNINGS_ARE_ERRORS= # No -Werror
+               NICE= # Use PORTAGE_NICENESS, don't adjust further down
+               $(usex doc docs '')
+               $(usex jbootstrap bootcycle-images product-images)
+       )
+       emake "${myemakeargs[@]}" -j1
+}
+
+src_install() {
+       local dest="/usr/$(get_libdir)/${PN}-${SLOT}"
+       local ddest="${ED}/${dest#/}"
+
+       # https://bugs.gentoo.org/922741
+       docompress "${dest}/man"
+
+       cd "${S}"/build/*-release/images/jdk || die
+
+       # Create files used as storage for system preferences.
+       mkdir .systemPrefs || die
+       touch .systemPrefs/.system.lock || die
+       touch .systemPrefs/.systemRootModFile || die
+
+       # Oracle and IcedTea have libjsoundalsa.so depending on
+       # libasound.so.2 but OpenJDK only has libjsound.so. Weird.
+       if ! use alsa ; then
+               rm -v lib/libjsound.* || die
+       fi
+
+       if ! use examples ; then
+               rm -vr demo/ || die
+       fi
+
+       if ! use source ; then
+               rm -v lib/src.zip || die
+       fi
+
+       rm -v lib/security/cacerts || die
+
+       dodir "${dest}"
+       cp -pPR * "${ddest}" || die
+
+       dosym -r /etc/ssl/certs/java/cacerts "${dest}"/lib/security/cacerts
+
+       # must be done before running itself
+       java-vm_set-pax-markings "${ddest}"
+
+       einfo "Creating the Class Data Sharing archives and disabling usage 
tracking"
+       "${ddest}/bin/java" -server -Xshare:dump -Djdk.disableLastUsageTracking 
|| die
+
+       java-vm_install-env "${FILESDIR}"/${PN}.env.sh
+       java-vm_revdep-mask
+       java-vm_sandbox-predict /dev/random /proc/self/coredump_filter
+
+       if use doc ; then
+               docinto html
+               dodoc -r "${S}"/build/*-release/images/docs/*
+       fi
+}
+
+pkg_postinst() {
+       java-vm-2_pkg_postinst
+}

Reply via email to