summaryrefslogtreecommitdiff
path: root/dev-java
diff options
context:
space:
mode:
authorVolkmar W. Pogatzki <gentoo@pogatzki.net>2026-08-06 19:06:35 +0200
committerMiroslav Šulc <fordfrog@gentoo.org>2026-09-01 21:55:58 +0200
commitc7d0a7dffee88c925e95f830db6b205b4b568a38 (patch)
treeabf2a2f60fbe72d181387e33dd084e76c9ac740d /dev-java
parent7c68d2e3d7051bc03890a72ff85218b14116b79e (diff)
dev-java/openjdk: add 25.0.4.1_p1
Bug: https://bugs.gentoo.org/981054 Signed-off-by: Volkmar W. Pogatzki <gentoo@pogatzki.net> Part-of: https://codeberg.org/gentoo/gentoo/pulls/1696 Signed-off-by: Miroslav Šulc <fordfrog@gentoo.org>
Diffstat (limited to 'dev-java')
-rw-r--r--dev-java/openjdk/Manifest1
-rw-r--r--dev-java/openjdk/openjdk-25.0.4.1_p1.ebuild345
2 files changed, 346 insertions, 0 deletions
diff --git a/dev-java/openjdk/Manifest b/dev-java/openjdk/Manifest
index e70269477aac..c3e06dedf47c 100644
--- a/dev-java/openjdk/Manifest
+++ b/dev-java/openjdk/Manifest
@@ -6,6 +6,7 @@ DIST openjdk-17.0.20_p8.tar.gz 108361148 BLAKE2B b3fe2c0a33c6c5e90230a7b454f9cf8
DIST openjdk-21.0.11_p10.tar.gz 114063372 BLAKE2B 3c5542b2169c6aa9c597a0a20ae879ab4890e7e39466d01c639e05653e90aa8198378f6fe6d9daa6d9ad7237f09cdd2320db517b83d4886f292c25d15c1dba4e SHA512 a2283a4bb07018d89b45b8dfabb34b058a3279f3cc96cddbd17c351df3e137ada401d2940d55f59f75bc5483c645415542a3af01658fbc82754e5f454055956a
DIST openjdk-21.0.12_p8.tar.gz 114138339 BLAKE2B ec0757e617ff218eb3811e19b415d4ff92f33d5d5a10e09aa27ed658aff50f0d3ac3e953839c7a6a3c8ebf67c124ece10c1a638107cf7a91b2348c4f8bf03949 SHA512 47bd054adc8ca52ba68d212375a0d4f32b822dcbbf54bfde902b1ab09b7117cca03e5f54d07f62ed9b5be5b8b88aac225e0881a7a2b6ea653a89fa64193a937d
DIST openjdk-25.0.3_p9.tar.gz 119542671 BLAKE2B 51d04064ceb052cc09133f4f406ed04fe5d0bb72ada943ec663c9e6405dd6a5ac41e9edd2a5e7079282de717b62db437c41c75dd959ddfdb57852cec6f0f7f34 SHA512 3784667a41df9faf8e9da96a6f83f03372fb362a3c1878a4d368816996c20b2efddc3154ba42ab6e0b180b981f1202debcb93ef67117d96dcdfa1b8dd51f8709
+DIST openjdk-25.0.4.1_p1.tar.gz 119672034 BLAKE2B 1242502393f2666265f20cc316e37c7458b9e100bdf3504a5d78b7fa9c6c10a3eadea8dce26a60ff6393d869110d7e6d2268df72387fd1c6983ae70c72aed266 SHA512 54e2e97893895b7edc881b425328fbefa51e21d90b887b531cf7bf15f7bde58ce79e50247be8619b9b9402d3d5b03a657554a6855b35bdc6567b40552f4b9c09
DIST openjdk-25.0.4_p7.tar.gz 119669964 BLAKE2B f3314ac0197b30609db25a40825f90ce208fc19412a07dfe0bead2db185a04f1fbfb8230fbe44ea6279b39f16fcc8a1d0b132df1acbaa72a41ab12bd734d32fc SHA512 904b1a621fe0031ae4eed9b25ebc4bb977e07822dbd4796e40eefe3d25e8c1c5f86f33037ec1c5364e66dfe1f098415db6c7fc6f488a93c9b298c52461d3683b
DIST openjdk-27_beta35.tar.gz 121508800 BLAKE2B 41194b5a08ddc9bc1214d6caaef0d4728e50a88de1a994560ee4670fd261174a4125aa3e4edd90f1693d29096af2d30c27c544eaffd45b56869d173da7b8a1eb SHA512 73c92ff127014357db4bf12f8c543e47cc6ea26893381eed617827c02edd68d43f99fea0524a183c7bb7135dac2b962a06a37fe2ed9efb75d36847760eee276a
DIST openjdk-28_alpha12.tar.gz 119959680 BLAKE2B be801d45da6a066231fac5a96b2a537e67fb99870038cac2bb8b83b07a671d0ecb6e1a6e885f14a1b662b396bfd6f8c9f31744a523315fe21a1115bfa13262ae SHA512 3f6fa34aa0b18f3a7fe16aa9c5d970b9af47f15206d83abd3152c711bb5155fdfb8056038f36964a4c515026b8e44864d8a6b3489dfc9f7309785e4d9f78d9c9
diff --git a/dev-java/openjdk/openjdk-25.0.4.1_p1.ebuild b/dev-java/openjdk/openjdk-25.0.4.1_p1.ebuild
new file mode 100644
index 000000000000..580433e4d6a5
--- /dev/null
+++ b/dev-java/openjdk/openjdk-25.0.4.1_p1.ebuild
@@ -0,0 +1,345 @@
+# Copyright 1999-2026 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+inherit check-reqs dot-a 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://distfiles.gentoo.org/pub/dev/arthurzam@gentoo.org/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 +jbootstrap selinux source static-libs +system-bootstrap systemtap"
+
+REQUIRED_USE="
+ !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:=
+ !headless-awt? (
+ x11-libs/libX11
+ x11-libs/libXext
+ x11-libs/libXi
+ x11-libs/libXrandr
+ x11-libs/libXrender
+ x11-libs/libXt
+ x11-libs/libXtst
+ )
+ 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
+ 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
+ !headless-awt? ( x11-base/xorg-proto )
+ 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
+
+ if use static-libs ; then
+ lto-guarantee-fat
+ fi
+
+ # 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" )
+
+ # 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
+ # Respect user -O<value>, bug #969169
+ OPTIMIZATION=
+ JVM_OPTIMIZATION=
+ NICE= # Use PORTAGE_NICENESS, don't adjust further down
+ $(usex doc docs '')
+ $(usex jbootstrap bootcycle-images product-images)
+ $(usev static-libs static-libs-image)
+ )
+ 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
+
+ if use static-libs ; then
+ cd "${S}"/build/*-release/images/static-libs || die
+ cp -pPR * "${ddest}" || die
+ strip-lto-bytecode "${ddest}" || die
+ fi
+}
+
+pkg_postinst() {
+ java-vm-2_pkg_postinst
+}