Update openjdk:11 ebuild and switch sources to github.

This commit is contained in:
Andrius Štikonas 2024-03-02 00:43:37 +00:00
parent 7ded94d0b8
commit 2358d7dd96
3 changed files with 77 additions and 91 deletions

View File

@ -75,7 +75,8 @@ AUX patches/9/jdk-currency-timebomb.patch 467 BLAKE2B e543e95b184504e54c99eedde0
AUX patches/9/make-4.3.patch 740 BLAKE2B c155e808f69221c6720841c6ce9bb2fb58b413ad2864fd5b5b3e661e57796d75ac5740d2873d9222174045015c8ad96e6b3b966b3361a3a7cd164ad0968552e0 SHA512 8460dde4d40d57254f14e995090bc4255ee7662d18c19f127d56a1d12d53ec56731574a784ed5d68e89aef1133da760f30ae0982389cf1512ccab1d5f62c4b75
AUX patches/9/pointer-comparison.patch 1162 BLAKE2B 048b67bfe50d658bb0e4756b66a307fb680d0e1c6f18458eff3a666334f5d94425138ba343907247b284402f47d78a6fc85df5aa6381ad78b3d7a7e116d822c7 SHA512 8d92d8be4a3a0227d602b99e581f05a16f54ad633111abf3355bd933db344c726e22e285b33f936d6e70c7da9087bc113477aba78554f37b273a70e784aaca5a
DIST openjdk-10.0.2_p13.tar.gz 111178953 BLAKE2B c5572768ce068048afb106ab17e23d8f90bbca1a1d06b71fc1ace7e209088b37df5372b977648716464363c5500af749830a37e647c217f1d6270fd8b6d4a849 SHA512 8d8e47006308d9a794090f1051a4f1fad1eabe609736e9039f29a60a9593d6c415759d607ee4557cceb18d6ce76b30d6d186b9453525fd4a2e6d158848cfd30c
DIST openjdk-11.0.9_p11.tar.bz2 91638327 BLAKE2B a04b7fb5ebde3b6c024e5f3931a2efe796e08ad66c0190cddfa4268d5181f46f24685d9d51ae328547916e8ece723967bf653feeac87347ee14ecbe213ad657a SHA512 a0a6726d5adbe95904b78d8b4319bc4386c594a563f80f63d59072cf72d00928b451163b91258b44193a80851400ce8b8d142fecfd2bd902ff7a5e47cb4a9976
DIST openjdk-11.0.18-riscv.patch.xz 272672 BLAKE2B b079612032a5bf135b05bdd1da16f2823772a5d9a18447a435f191daf78c5429a15c2e9ea64758dc9b26ee2a88275532b4f27714b2a7e4489f920c0ed2f5003b SHA512 c0426f243c5aa581d90366cb01ce811e34883a9d8a0298cab420378470e8eb427a56932ca1fbb5ed57e7430be2b38c6bc4491028ebaa25be0a938ba0bb2baf45
DIST openjdk-11.0.20.1_p1.tar.gz 116165519 BLAKE2B 3f3627d6535770c6654226ca2c188ac4aa0f332c7f66d79ab1991274e019ee4aee5194b285bace03175593543017a2ec75494e8e50b5488df82c7d437bf31398 SHA512 765f90a24629e5db5afb23b09edc38a3d460ba27d1de53980942e711783fe9fdf1c4ef29a75d2ffd6d93864611ffce60d515e032180917cd053967a0d4ecfc69
DIST openjdk-12.0.2_p01.tar.bz2 83912905 BLAKE2B cf81872dc9a68758bd46a0c486893321461323872d204028b84c36fdd8f9de54c88bb70d4f0c50b7370f589a424852e74a383dea71e17c227ac740283dd933e4 SHA512 53c66ae9bdc6aa47b05f57845d696edf55c5e5eeb6c7dd6cd46b9a0cfad9864db846ac88e00aefbc86ff9ffa77ab9bcf9cf3c73b7f3b797ad68d9e8609438dd9
DIST openjdk-13.0.4_p01.tar.gz 107539608 BLAKE2B b6887819aa2cb7c90be019fa0a7b11c6e65f2f307e36062ef95f38ec85b279ad55bdfd398343405b834ce59e56249bf2653856265752c3e00fdb94fa230c02a9 SHA512 c5c1a961be02f9cd5eac8b7ce0d28024e6b7aa55ec45fb9bb2b62d8b4c2eec874098e74dbb4d19fb8525b097900f91eb900e5309bebeb4297f168f92321a0918
DIST openjdk-14.0.2_p01.tar.bz2 83827689 BLAKE2B acd8a61156800941781a2f4c2d3acc61d7124254ec573b6e4eb45e0e031b4b4403475bec617c4130715b5764982a0d2bf990c07e8593817524093ed7fc86a2c8 SHA512 fb129d2e0f3b007d249073c6a0f20fe9c2917eafbae1c4a6c51126180a70e5debb348c3770a785b54576f2a338cb10fdfbd1fca5879e49f80a4fa5c190338fa9
@ -88,8 +89,8 @@ DIST openjdk-20.0.2_p09.tar.gz 109625812 BLAKE2B ea3e9e306c2a5e1593977095db7c775
DIST openjdk-21.0.0_p35.tar.gz 112178860 BLAKE2B 03a81df4c2e16194c66299109e70a61093eec6885b615d8a1a4bff34139474876a290889b46f51065f473a5b0ab37aff1c1cf166d067f0dca16096fe67d06aae SHA512 97800cf55dc03fb1baa8da65ed5d991033c0023d4e9ada65ea79ebc2b2cb691add8e093b18efea238a95dab47daff21fcf29cca993fa7d11516ece72478383c8
DIST openjdk-8.272_p10.tar.gz 87119338 BLAKE2B 71ba8cc5c76d71047a555357e51789defaab7a316185aadb05a4666e64dc780cfe193aa754176891ce63c05fd64885d654c8328389822b5e7de82027b0b9a88e SHA512 e0d16cde4668dc006aaf9bdc6e7dfdc1685e3c4d6e0b8e07dc01300dd953251b84e8cc4fe96116ea26f2acae0166c65bf9944c689a34f4c268e7e15836023755
DIST openjdk-9.0.4_p12.tar.gz 110286927 BLAKE2B 50bfd023b11d2af6b3a0282e861c55d6b355134e3091e3f019beeff0b943f8894b8f0a173ea6c17a54b38efe409c786371c17d1073576d3e04d3919ccd2f6987 SHA512 999e7b726941db7ecbefb9d1d7b113fe39bd3b62e71b4250031bb24c056bc8cdb39ab30e930c8d8977c871ec1faaf6e489d61ceecf44ecc1245040f663400b22
EBUILD openjdk-10.0.2_p13.ebuild 8785 BLAKE2B 6521eaeb6894da11a86b451f9ff2e27b601981af5d522cb83f7fbaf0c58813bbce6e234d13ac4c5aad350b09bde65fdace6ed165d314e5cb055032482fb09cfa SHA512 232b93e2639f7c0c7ad447de95e0a1c52cd8a0d950923dd23c52b2495f59cc1219470eee0a4372b385c139fb1e0cb00205046e4b1c3446e1bd0d754c8759a3bf
EBUILD openjdk-11.0.9_p11.ebuild 8321 BLAKE2B 68259ff36688d96c9f48989ea9f015e41d47562307b65d0191e997779c92342d1e8be40a0210df69bacec5fcf9ee9d3c5a4a6c60234c9c7c14f6d3eff88e017c SHA512 404d35e206d34eb6aa67450a65ef9d694a7c9cf73521e7d7c390f2107fbdea5f6f65e21cb24225df357258fcecbd5a4e5f37034b8a8a61ee98a92b42faf321ab
EBUILD openjdk-10.0.2_p13.ebuild 8787 BLAKE2B a2f498ff8bbe49267980dd55df4249df869c04b9fec4156c15d924ead43fb53f541ed39677db8aab68efcd9b43cc3e7adbe0a84e682a693d3d645c2bd2b19b10 SHA512 77bcd7cce94ee747f13d1774d5f8f696a1cc9af9c35f4c1b62bbae300e33b6c29324da6808e170526b71bf22fc838c59d3798386333b589a6960bd2e7bdb04a7
EBUILD openjdk-11.0.20.1_p1.ebuild 7685 BLAKE2B 8a20baa3fd625ee50d83e7906708ec64473d71896c6579e7031d2f6a3dfc988e252fc7fa89b06d9a5378000a873c7b24a2e2cd6f23f43163f494762697982407 SHA512 8bfc8559c014fb519632f2130f5f0ae0563df0df8c8c6a0d27ebdbc5284ed2f1a3561b291a06d23a15395aa56c7c40e5636851ecf7d690e614408f1341186880
EBUILD openjdk-12.0.2_p01.ebuild 8827 BLAKE2B 108c522f5b57698485914945e6b4e17e689cb6944441d0e54aef5abfaef897f9b36338cd4af026d6f31b2316bcdc0cc8e70c48ee0e49d86ee779cfdbdfb5615f SHA512 56cec08b9625453c4a7e7c34203a35aa09efe9c146c9dda16fe0f8b02a8133b2b47eeb71dc1a30666b67181982719d69cee99780d201c65bea6770bb0db964a0
EBUILD openjdk-13.0.4_p01.ebuild 8296 BLAKE2B 1c1eeda18af3408cb18bdd8854aadba35c248d9ebcc8a3b6a8f84e31cc20d57bd6d4944070050d7ff5b5753c5bcb82d5f6dc9ce2221ec66f4405dcbec200a3fb SHA512 42a2ecc5d0abf65b848029e421af0fd11f82c878d86bc5c592cc28cf5ac90d7d3d0594c46564513333aac0f57021a21a5042cfc7707a777ef383df8eedd5875f
EBUILD openjdk-14.0.2_p01.ebuild 8298 BLAKE2B 50baebff02087e9572ba0f9b66c7063276f987d911e5f4a6e971132303d776f2070a37b718bd3167f0f93ffff6630a4429d0af10097e5f5c368a554c126a4076 SHA512 d65621ab03b6b1854528b8abfe185f5a2d658d9abe19b22bb61a0e9507a6a82a1a0046b4e803d03a30191bde8d6cd5994e36bed8d11d5c0a23cf966d14353c20

View File

@ -258,7 +258,7 @@ src_install() {
dodir "${dest}"
cp -pPR * "${ddest}" || die
dosym "${EPREFIX}"/etc/ssl/certs/java/cacerts "${dest}"/lib/security/cacerts
dosym8 "${EPREFIX}"/etc/ssl/certs/java/cacerts "${dest}"/lib/security/cacerts
# must be done before running itself
java-vm_set-pax-markings "${ddest}"
@ -273,7 +273,7 @@ src_install() {
if use doc ; then
insinto /usr/share/doc/"${PF}"/html
doins -r "${S}"/build/*-release/images/docs/*
dosym /usr/share/doc/"${PF}" /usr/share/doc/"${PN}-${SLOT}"
dosym8 /usr/share/doc/"${PF}" /usr/share/doc/"${PN}-${SLOT}"
fi
}

View File

@ -1,32 +1,52 @@
# Copyright 1999-2022 Gentoo Authors
# Copyright 1999-2024 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=6
EAPI=7
inherit autotools check-reqs flag-o-matic java-pkg-2 java-vm-2 multiprocessing pax-utils toolchain-funcs
inherit eapi8-dosym check-reqs flag-o-matic java-pkg-2 java-vm-2 multiprocessing toolchain-funcs
# 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.
# we need -ga tag to fetch tarball and unpack it, but exact number everywhere else to
# set build version properly
MY_PV="${PV%_p*}-ga"
SLOT="${MY_PV%%[.+]*}"
# variable name format: <UPPERCASE_KEYWORD>_XPAK
PPC64_XPAK="11.0.13_p8" # big-endian bootstrap tarball
RISCV_XPAK="11.0.14_p9" # lp64d bootstrap tarball
X86_XPAK="11.0.13_p8"
DESCRIPTION="Open source implementation of the Java programming language"
HOMEPAGE="https://openjdk.java.net"
SRC_URI="https://hg.${PN}.java.net/jdk-updates/jdk${SLOT}u/archive/jdk-${MY_PV}.tar.bz2 -> ${P}.tar.bz2"
HOMEPAGE="https://openjdk.org"
SRC_URI="
https://github.com/${PN}/jdk${SLOT}u/archive/refs/tags/jdk-${MY_PV}.tar.gz
-> ${P}.tar.gz
riscv? ( https://dev.gentoo.org/~arthurzam/distfiles/dev-java/openjdk/openjdk-11.0.18-riscv.patch.xz )
"
LICENSE="GPL-2"
KEYWORDS="amd64 ~arm arm64 ~ppc64"
LICENSE="GPL-2-with-classpath-exception"
KEYWORDS="amd64 ~arm arm64 ppc64 ~riscv x86"
IUSE="alsa cups debug doc examples gentoo-vm headless-awt javafx pch selinux source systemtap"
IUSE="alsa big-endian cups debug doc examples headless-awt javafx lto selinux source systemtap"
REQUIRED_USE="
javafx? ( alsa !headless-awt )
"
COMMON_DEPEND="
media-libs/freetype:2=
media-libs/giflib:0/7
media-libs/harfbuzz:=
media-libs/libpng:0=
media-libs/lcms:2=
sys-libs/zlib
virtual/jpeg:0=
systemtap? ( dev-util/systemtap )
media-libs/libjpeg-turbo:0=
systemtap? ( dev-debug/systemtap )
"
# Many libs are required to build, but not to run, make is possible to remove
@ -68,8 +88,6 @@ DEPEND="
)
"
REQUIRED_USE="javafx? ( alsa !headless-awt )"
S="${WORKDIR}/jdk${SLOT}u-jdk-${MY_PV}"
# The space required to build varies wildly depending on USE flags,
@ -95,88 +113,60 @@ pkg_setup() {
openjdk_check_requirements
java-vm-2_pkg_setup
[[ ${MERGE_TYPE} == "binary" ]] && return
JAVA_PKG_WANT_BUILD_VM="openjdk-${SLOT} openjdk-$((SLOT-1))"
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 ${EPREFIX}/usr/lib/jvm/${vm} ]]; then
if [[ -d ${BROOT}/usr/lib/jvm/${vm} ]]; then
java-pkg-2_pkg_setup
return
fi
done
if has_version --host-root dev-java/openjdk:${SLOT}; then
export JDK_HOME=${EPREFIX}/usr/$(get_libdir)/openjdk-${SLOT}
else
if [[ ${MERGE_TYPE} != "binary" ]]; then
JDK_HOME=$(best_version --host-root dev-java/openjdk-bin:${SLOT})
[[ -n ${JDK_HOME} ]] || die "Build VM not found!"
JDK_HOME=${JDK_HOME#*/}
JDK_HOME=${EPREFIX}/opt/${JDK_HOME%-r*}
export JDK_HOME
fi
fi
}
src_prepare() {
use riscv && eapply "${WORKDIR}"/openjdk-11.0.18-riscv.patch
default
# Delete pre-built files
find . -name '*.jar' -type f -delete
find . -name '*.bin' -type f -delete
find . -name '*.exe' -type f -delete
# conditionally apply patches for musl compatibility
if use elibc_musl; then
eapply "${FILESDIR}/musl/${SLOT}/build.patch"
eapply "${FILESDIR}/musl/${SLOT}/fix-bootjdk-check.patch"
eapply "${FILESDIR}/musl/${SLOT}/ppc64le.patch"
eapply "${FILESDIR}/musl/${SLOT}/aarch64.patch"
fi
# conditionally remove not compilable module (hotspot jdk.hotspot.agent)
# this needs libthread_db which is only provided by glibc
#
# haven't found any way to disable this module so just remove it.
if use elibc_musl; then
rm -rf "${S}"/src/jdk.hotspot.agent || die "failed to remove HotSpot agent"
fi
chmod +x configure || die
}
src_configure() {
# Work around stack alignment issue, bug #647954. in case we ever have x86
# Work around stack alignment issue, bug #647954.
use x86 && append-flags -mincoming-stack-boundary=2
# Work around -fno-common ( GCC10 default ), bug #713180
append-flags -fcommon
# Strip some flags users may set, but should not. #818502
filter-flags -fexceptions
# Strip lto related flags, we rely on USE=lto and --with-jvm-features=link-time-opt
# https://bugs.gentoo.org/833097
# https://bugs.gentoo.org/833098
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.
local myconf=(
--disable-ccache
--disable-precompiled-headers
--enable-full-docs=no
--with-boot-jdk="${JDK_HOME}"
--with-extra-cflags="${CFLAGS}"
--with-extra-cxxflags="${CXXFLAGS}"
--with-extra-ldflags="${LDFLAGS}"
--with-giflib=system
--with-lcms=system
--with-libjpeg=system
--with-libpng=system
--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-native-debug-symbols=$(usex debug internal none)
--with-vendor-name="Gentoo"
--with-vendor-url="https://gentoo.org"
@ -186,13 +176,22 @@ src_configure() {
--with-version-pre=""
--with-version-string="${PV%_p*}"
--with-version-build="${PV#*_p}"
--with-zlib=system
--with-zlib="${XPAK_BOOTSTRAP:-system}"
--enable-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-jvm-features=shenandoahgc )
use lto && myconf+=( --with-jvm-features=link-time-opt )
if use javafx; then
local zip="${EROOT%/}/usr/$(get_libdir)/openjfx-${SLOT}/javafx-exports.zip"
# this is not useful for users, just for upstream developers
# build system compares mesa version in md file
# https://bugs.gentoo.org/822612
export LEGAL_EXCLUDES=mesa3d.md
local zip="${EPREFIX}/usr/$(get_libdir)/openjfx-${SLOT}/javafx-exports.zip"
if [[ -r ${zip} ]]; then
myconf+=( --with-import-modules="${zip}" )
else
@ -200,13 +199,6 @@ src_configure() {
fi
fi
# PaX breaks pch, bug #601016
if use pch && ! host-is-pax; then
myconf+=( --enable-precompiled-headers )
else
myconf+=( --disable-precompiled-headers )
fi
(
unset _JAVA_OPTIONS JAVA JAVA_TOOL_OPTIONS JAVAC XARGS
CFLAGS= CXXFLAGS= LDFLAGS= \
@ -216,10 +208,15 @@ src_configure() {
}
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 '')
product-images
)
@ -228,7 +225,7 @@ src_compile() {
src_install() {
local dest="/usr/$(get_libdir)/${PN}-${SLOT}"
local ddest="${ED}${dest#/}"
local ddest="${ED}/${dest#/}"
cd "${S}"/build/*-release/images/jdk || die
@ -256,7 +253,7 @@ src_install() {
dodir "${dest}"
cp -pPR * "${ddest}" || die
dosym ../../../../../etc/ssl/certs/java/cacerts "${dest}"/lib/security/cacerts
dosym8 -r /etc/ssl/certs/java/cacerts "${dest}"/lib/security/cacerts
# must be done before running itself
java-vm_set-pax-markings "${ddest}"
@ -264,29 +261,17 @@ src_install() {
einfo "Creating the Class Data Sharing archives and disabling usage tracking"
"${ddest}/bin/java" -server -Xshare:dump -Djdk.disableLastUsageTracking || die
use gentoo-vm && java-vm_install-env "${FILESDIR}"/${PN}-${SLOT}.env.sh
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/*
dosym ../../../usr/share/doc/"${PF}" /usr/share/doc/"${PN}-${SLOT}"
dosym8 -r /usr/share/doc/"${PF}" /usr/share/doc/"${PN}-${SLOT}"
fi
}
pkg_postinst() {
java-vm-2_pkg_postinst
if use gentoo-vm ; then
ewarn "WARNING! You have enabled the gentoo-vm USE flag, making this JDK"
ewarn "recognised by the system. This will almost certainly break"
ewarn "many java ebuilds as they are not ready for openjdk-11"
else
ewarn "The experimental gentoo-vm USE flag has not been enabled so this JDK"
ewarn "will not be recognised by the system. For example, simply calling"
ewarn "\"java\" will launch a different JVM. This is necessary until Gentoo"
ewarn "fully supports Java ${SLOT}. This JDK must therefore be invoked using its"
ewarn "absolute location under ${EPREFIX}/usr/$(get_libdir)/${PN}-${SLOT}."
fi
}