From afb9284f1b14866d911748d0932347763cbf11de Mon Sep 17 00:00:00 2001
From: "Alex Xu (Hello71)" <alex_y_xu@yahoo.ca>
Date: Mon, 25 Jan 2021 07:33:05 -0500
Subject: dev-java/*: bump, fixes

---
 dev-java/openj9-openjdk/Manifest                   |   8 +-
 .../files/openjdk-src-doubledollar.patch           |  28 --
 .../openj9-openjdk/openj9-openjdk-11.0.23.0.ebuild | 341 ---------------------
 .../openj9-openjdk/openj9-openjdk-11.0.24.0.ebuild | 341 +++++++++++++++++++++
 .../openj9-openjdk/openj9-openjdk-11.9999.ebuild   |   4 +-
 .../openj9-openjdk/openj9-openjdk-15.0.23.0.ebuild | 300 ------------------
 .../openj9-openjdk/openj9-openjdk-15.0.24.0.ebuild | 299 ++++++++++++++++++
 .../openj9-openjdk/openj9-openjdk-15.9999.ebuild   |   3 +-
 8 files changed, 647 insertions(+), 677 deletions(-)
 delete mode 100644 dev-java/openj9-openjdk/files/openjdk-src-doubledollar.patch
 delete mode 100644 dev-java/openj9-openjdk/openj9-openjdk-11.0.23.0.ebuild
 create mode 100644 dev-java/openj9-openjdk/openj9-openjdk-11.0.24.0.ebuild
 delete mode 100644 dev-java/openj9-openjdk/openj9-openjdk-15.0.23.0.ebuild
 create mode 100644 dev-java/openj9-openjdk/openj9-openjdk-15.0.24.0.ebuild

(limited to 'dev-java/openj9-openjdk')

diff --git a/dev-java/openj9-openjdk/Manifest b/dev-java/openj9-openjdk/Manifest
index 25edd77..52352f6 100644
--- a/dev-java/openj9-openjdk/Manifest
+++ b/dev-java/openj9-openjdk/Manifest
@@ -1,4 +1,4 @@
-DIST openj9-0.23.0.tar.gz 16294665 BLAKE2B 315224fe6fff758cf9994e9673b3ab744f15803ef6ebfb3c68526bff248a8f64dc87102eef3e65702e15ceeda87ca0c5862d0b87867795f183b0ee63bd3e2638 SHA512 ac14e2a77f0c7cc5b637004fd6fa976730b7dc3f95102fee7ccec233d17836c1bf02790a900702d1c72929191f8cbf458a6ebfd85babc7c292fbb173c7f6e2e3
-DIST openj9-omr-0.23.0.tar.gz 7817276 BLAKE2B 541e377043b311deebb0d0bfb67dbb82911582459a21839b392fe1bf25b6bb3727b129e1ffce8a6219b903d27779b208371c709848de747123ed9ecb00c9b58c SHA512 324d0a715aba7a6ad9da534b4214f7d4fff6abefafdf7214acb2722a3e6f8d01dfb9671362c839e6db9aa2d73430887f7a54ed2d393ad56c19cb9c9526968d46
-DIST openj9-openjdk-jdk11-openj9-0.23.0.tar.gz 104445879 BLAKE2B df045eb377c426153a6010ee02dc6f66b525a32453b7f66cbbe65439a65481145d7506391cf4748b534710792f5396c210aa827efc3a85fa28684e8c2839fdc0 SHA512 905abc83a1a6594dcbd1b5e127404e6fcacfa9478000d46ec1211bbc59558825df884d39437d77102029a7b312043920a865e0b5a0d71640ab1efec41d9e3671
-DIST openj9-openjdk-jdk15-openj9-0.23.0.tar.gz 88610962 BLAKE2B 4c201d46765d360efcb219924f5b0c028f036097bf2fa8a8953a8830bb5c88c2eeae735b26ebfec8e63e728c427be9dadfbc80750587d9ac01916ea10982a59c SHA512 7c7d76302ad7674b1ce3d64f0e1184d9150c3fb433ae5c2176bd1e2d5b22f4c7bd0b157ee3900ffdb32a227f1a0e932e34c677038502e270adfdc018eac3918a
+DIST openj9-0.24.0.tar.gz 16399910 BLAKE2B e2f5e03abe0c87fb175bdbdfd4b1b4b7167460eab1d41f4afe9ede962dfb68c60314262c4cb4dc90360787d67c97e8b9a99cf4b167e249038cd6c4dc0392284e SHA512 c42faa4d10a509d20e14fc915c352f52423cf6f2ec0930a43feb12e910bbbd672bd3a8674851252410c80eb8a7a649198167364e5053bdf4649bf6927189bbd0
+DIST openj9-omr-0.24.0.tar.gz 7799995 BLAKE2B b1937e579d4611dc7bd6d9f747f7e443b5ebbdc108ae3346c7dd494023fa998f9c6d2c0cd5f65dd1fb38d6c3212d4a22fca7b05973135f83b29e26babbb5c959 SHA512 c1cf0366fd1f14436bb66b4c928792a1485330940a6d8fc97be9b7a31bc5c5f28c48d06d7600263d203665ad4882955bb66da2af00ee4e59e57d97c811242be0
+DIST openj9-openjdk-jdk11-openj9-0.24.0.tar.gz 108666016 BLAKE2B 683265b1f26ef2d568cd1df8fae7d20e5e612668f5bdbd624d916a8a0017a71102568e222967a63d88796ca574a21a2c1c3d69dc8e29ab207de74a65290b8ba2 SHA512 e75cd99d20fd672695475d53a42e2843fb90d178744e1fd65fc1b52a0f30b13ab9a2bf7c413a01bea9e45136283039095cc108fe7ead9dca7ade7608dea06e7c
+DIST openj9-openjdk-jdk15-openj9-0.24.0.tar.gz 88602073 BLAKE2B b3cc1abe06f18ff6e8e42905be2611b2fe237105e6ecfe5610c6454a50d10a1ed940b89088444567c59aba5d86eace2263d76f72157cb4034c9371dd6cfed256 SHA512 4f08e79422f41b2bb53041b729c0620912b6b714b6318ff78047594e822f9d495412e522f0b760443ef44f7de42a457b6790f2b6d4853fe11da0704ab54be45e
diff --git a/dev-java/openj9-openjdk/files/openjdk-src-doubledollar.patch b/dev-java/openj9-openjdk/files/openjdk-src-doubledollar.patch
deleted file mode 100644
index c1497d5..0000000
--- a/dev-java/openj9-openjdk/files/openjdk-src-doubledollar.patch
+++ /dev/null
@@ -1,28 +0,0 @@
-From 0601ac847afc86e9010685bb85d82a00a33355b5 Mon Sep 17 00:00:00 2001
-From: erikj <erik.joelsson@oracle.com>
-Date: Mon, 2 Nov 2020 06:18:08 -0800
-Subject: [PATCH] Add DoubleDollar call to protect java class file names with
- dollar in them
-
----
- make/common/JavaCompilation.gmk | 6 ++++--
- 1 file changed, 4 insertions(+), 2 deletions(-)
-
-diff --git a/make/common/JavaCompilation.gmk b/make/common/JavaCompilation.gmk
-index 444ded0fc06..bedb971115b 100644
---- a/make/common/JavaCompilation.gmk
-+++ b/make/common/JavaCompilation.gmk
-@@ -311,9 +311,11 @@ define SetupJavaCompilationBody
-   ifneq ($$($1_KEEP_DUPS), true)
-     # Remove duplicate source files by keeping the first found of each duplicate.
-     # This allows for automatic overrides with custom or platform specific versions
--    # source files.
-+    # source files. Need to call DoubleDollar as we have java classes with '$' in
-+    # their names.
-     $1_SRCS := $$(strip $$(foreach s, $$($1_SRCS), \
--        $$(eval relative_src := $$(call remove-prefixes, $$($1_SRC), $$(s))) \
-+        $$(eval relative_src := $$(call remove-prefixes, $$($1_SRC), \
-+            $$(call DoubleDollar, $$(s)))) \
-         $$(if $$($1_$$(relative_src)), \
-           , \
-           $$(eval $1_$$(relative_src) := 1) $$(s))))
diff --git a/dev-java/openj9-openjdk/openj9-openjdk-11.0.23.0.ebuild b/dev-java/openj9-openjdk/openj9-openjdk-11.0.23.0.ebuild
deleted file mode 100644
index 73e6a3e..0000000
--- a/dev-java/openj9-openjdk/openj9-openjdk-11.0.23.0.ebuild
+++ /dev/null
@@ -1,341 +0,0 @@
-# Copyright 1999-2020 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=6
-
-inherit autotools check-reqs flag-o-matic java-pkg-2 java-vm-2 multiprocessing pax-utils toolchain-funcs versionator
-
-SLOT="$(get_major_version)"
-OPENJ9_PV="$(get_version_component_range 2-4)"
-OPENJ9_P=openj9-${OPENJ9_PV}
-FREEMARKER_PV=2.3.30
-
-DESCRIPTION="Open source implementation of the Java programming language"
-HOMEPAGE="https://openjdk.java.net"
-if [[ ${OPENJ9_PV} == 9999 ]]; then
-	inherit git-r3
-	EGIT_REPO_URI="https://github.com/ibmruntimes/openj9-openjdk-jdk${SLOT}.git"
-	OPENJ9_EGIT_REPO_URI="https://github.com/eclipse/openj9.git"
-	OPENJ9_OMR_EGIT_REPO_URI="https://github.com/eclipse/openj9-omr.git"
-else
-	SRC_URI="
-		https://github.com/ibmruntimes/openj9-openjdk-jdk${SLOT}/archive/${OPENJ9_P}.tar.gz -> openj9-openjdk-jdk${SLOT}-${OPENJ9_P}.tar.gz
-		https://github.com/eclipse/openj9/archive/${OPENJ9_P}.tar.gz -> ${OPENJ9_P}.tar.gz
-		https://github.com/eclipse/openj9-omr/archive/${OPENJ9_P}.tar.gz -> openj9-omr-${OPENJ9_PV}.tar.gz
-	"
-fi
-
-LICENSE="GPL-2"
-KEYWORDS="~amd64"
-
-IUSE="alsa cups ddr debug doc examples gentoo-vm headless-awt javafx +jbootstrap large-heap +pch selinux source systemtap"
-
-COMMON_DEPEND="
-	media-libs/freetype:2=
-	media-libs/giflib:0/7
-	media-libs/libpng:0=
-	media-libs/lcms:2=
-	sys-libs/zlib
-	virtual/jpeg:0=
-	systemtap? ( dev-util/systemtap )
-
-	dev-libs/elfutils
-	dev-libs/libdwarf
-	sys-process/numactl
-"
-
-# 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
-	dev-lang/nasm
-	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}= )
-	|| (
-		virtual/jdk:${SLOT}
-		dev-java/openj9-openjdk-bin:${SLOT}
-		dev-java/openj9-openjdk:${SLOT}
-		dev-java/openjdk-bin:${SLOT}
-		dev-java/openjdk:${SLOT}
-	)
-	|| (
-		dev-java/freemarker-bin
-		dev-java/freemarker
-	)
-"
-
-REQUIRED_USE="javafx? ( alsa !headless-awt )"
-
-if [[ ${OPENJ9_PV} == 9999 ]]; then
-	S="${WORKDIR}/openj9-openjdk-jdk${SLOT}"
-else
-	S="${WORKDIR}/openj9-openjdk-jdk${SLOT}-${OPENJ9_P}"
-fi
-
-# The space required to build varies wildly depending on USE flags,
-# ranging from 3GB to 16GB. This function is certainly not exact but
-# should be close enough to be useful.
-openjdk_check_requirements() {
-	local M
-	M=3192
-	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}"
-	fi
-}
-
-pkg_setup() {
-	openjdk_check_requirements
-	java-vm-2_pkg_setup
-
-	JAVA_PKG_WANT_BUILD_VM="openj9-openjdk-${SLOT} openj9-openjdk-bin-${SLOT} 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 ${EPREFIX}/usr/lib/jvm/${vm} ]]; then
-			java-pkg-2_pkg_setup
-			return
-		fi
-	done
-
-	if [[ ${MERGE_TYPE} != binary ]]; then
-		if [[ -z ${JDK_HOME} ]]; then
-			for slot in ${SLOT} $((SLOT-1)); do
-				for variant in openj9- ''; do
-					if has_version --host-root dev-java/${variant}openjdk:${slot}; then
-						JDK_HOME=${EPREFIX}/usr/$(get_libdir)/${variant}openjdk-${slot}
-						break
-					elif has_version --host-root dev-java/${variant}openjdk-bin:${slot}; then
-						JDK_HOME=$(best_version --host-root dev-java/${variant}openjdk-bin:${slot})
-						JDK_HOME=${JDK_HOME#*/}
-						JDK_HOME=${EPREFIX}/opt/${JDK_HOME%-r*}
-						break
-					fi
-				done
-			done
-		fi
-		[[ -n ${JDK_HOME} ]] || die "Build VM not found!"
-		export JDK_HOME
-	fi
-}
-
-src_unpack() {
-	if [[ ${OPENJ9_PV} == 9999 ]]; then
-		EGIT_CHECKOUT_DIR=openj9 EGIT_REPO_URI=${OPENJ9_EGIT_REPO_URI} git-r3_src_unpack
-		EGIT_CHECKOUT_DIR=openj9-omr EGIT_REPO_URI=${OPENJ9_OMR_EGIT_REPO_URI} git-r3_src_unpack
-		# unpack openjdk last to save correct EGIT_VERSION
-		EGIT_CHECKOUT_DIR=${S} git-r3_src_unpack
-	else
-		default
-	fi
-}
-
-src_prepare() {
-	if [[ ${OPENJ9_PV} == 9999 ]]; then
-		ln -s ../openj9 openj9 || die
-		ln -s ../openj9-omr omr || die
-	else
-		ln -s ../openj9-${OPENJ9_P} openj9 || die
-		ln -s ../openj9-omr-${OPENJ9_P} omr || die
-	fi
-
-	default
-
-	eapply -d omr -- "${FILESDIR}/omr-omrstr-iconv-failure-overflow.patch"
-	eapply -d omr -- "${FILESDIR}/omr-fam.patch"
-
-	if [[ ${OPENJ9_PV} != 9999 ]]; then
-		sed -i -e '/^OPENJ9_SHA :=/s/:=.*/:= '${OPENJ9_P}/ \
-			   -e '/^OPENJ9_TAG :=/s/:=.*/:= '${OPENJ9_P}/ \
-			   -e '/^OPENJ9OMR_SHA :=/s/:=.*/:= '${OPENJ9_P}/ \
-			   closed/OpenJ9.gmk
-	fi
-
-	chmod +x configure || die
-}
-
-src_configure() {
-	# Work around stack alignment issue, bug #647954. in case we ever have x86
-	use x86 && append-flags -mincoming-stack-boundary=2
-
-	if has_version dev-java/freemarker; then
-		local freemarker=freemarker
-	else
-		local freemarker=freemarker-bin
-	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.
-
-	local myconf=(
-		--disable-ccache
-		--enable-full-docs=no
-		--with-boot-jdk="${JDK_HOME}"
-		--with-extra-cflags="${CFLAGS}"
-		--with-extra-cxxflags="${CXXFLAGS}"
-		--with-extra-ldflags="${LDFLAGS}"
-		--with-stdc++lib=dynamic
-		--with-giflib=system
-		--with-lcms=system
-		--with-libjpeg=system
-		--with-libpng=system
-		--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-opt=""
-		--with-zlib=system
-		--enable-dtrace=$(usex systemtap yes no)
-		--enable-headless-only=$(usex headless-awt yes no)
-
-		--with-freemarker-jar=$(java-pkg_getjar --build-only $freemarker freemarker.jar)
-		--disable-warnings-as-errors{,-omr,-openj9}
-		$(use_enable ddr)
-		$(use_with large-heap noncompressedrefs)
-	)
-
-	if use javafx; then
-		local zip="${EROOT%/}/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
-
-	# 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= \
-		CONFIG_SITE=/dev/null \
-		econf "${myconf[@]}"
-	)
-}
-
-src_compile() {
-	local myemakeargs=(
-		JOBS=$(makeopts_jobs)
-		# https://github.com/ibmruntimes/openj9-openjdk-jdk14/issues/72
-		#LOG=debug
-		$(usex doc docs '')
-		$(usex jbootstrap bootcycle-images product-images)
-	)
-	emake "${myemakeargs[@]}" -j1 #nowarn
-}
-
-src_install() {
-	local dest="/usr/$(get_libdir)/${PN}-${SLOT}"
-	local ddest="${ED}${dest#/}"
-
-	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 ../../../../../etc/ssl/certs/java/cacerts "${dest}"/lib/security/cacerts
-
-	# must be done before running itself
-	java-vm_set-pax-markings "${ddest}"
-
-	use gentoo-vm && 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}"
-	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
-}
diff --git a/dev-java/openj9-openjdk/openj9-openjdk-11.0.24.0.ebuild b/dev-java/openj9-openjdk/openj9-openjdk-11.0.24.0.ebuild
new file mode 100644
index 0000000..df02e9d
--- /dev/null
+++ b/dev-java/openj9-openjdk/openj9-openjdk-11.0.24.0.ebuild
@@ -0,0 +1,341 @@
+# Copyright 1999-2020 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=6
+
+inherit autotools check-reqs flag-o-matic java-pkg-2 java-vm-2 multiprocessing pax-utils toolchain-funcs versionator
+
+SLOT="$(get_major_version)"
+OPENJ9_PV="$(get_version_component_range 2-4)"
+OPENJ9_P=openj9-${OPENJ9_PV}
+FREEMARKER_PV=2.3.30
+
+DESCRIPTION="Open source implementation of the Java programming language"
+HOMEPAGE="https://openjdk.java.net"
+if [[ ${OPENJ9_PV} == 9999 ]]; then
+	inherit git-r3
+	EGIT_REPO_URI="https://github.com/ibmruntimes/openj9-openjdk-jdk${SLOT}.git"
+	OPENJ9_EGIT_REPO_URI="https://github.com/eclipse/openj9.git"
+	OPENJ9_OMR_EGIT_REPO_URI="https://github.com/eclipse/openj9-omr.git"
+else
+	SRC_URI="
+		https://github.com/ibmruntimes/openj9-openjdk-jdk${SLOT}/archive/v${OPENJ9_PV}-release.tar.gz -> openj9-openjdk-jdk${SLOT}-${OPENJ9_P}.tar.gz
+		https://github.com/eclipse/openj9/archive/${OPENJ9_P}.tar.gz
+		https://github.com/eclipse/openj9-omr/archive/${OPENJ9_P}.tar.gz -> openj9-omr-${OPENJ9_PV}.tar.gz
+	"
+fi
+
+LICENSE="GPL-2"
+KEYWORDS="~amd64"
+
+IUSE="alsa cups ddr debug doc examples gentoo-vm headless-awt javafx +jbootstrap large-heap +pch selinux source systemtap"
+
+COMMON_DEPEND="
+	media-libs/freetype:2=
+	media-libs/giflib:0/7
+	media-libs/libpng:0=
+	media-libs/lcms:2=
+	sys-libs/zlib
+	virtual/jpeg:0=
+	systemtap? ( dev-util/systemtap )
+
+	dev-libs/elfutils
+	dev-libs/libdwarf
+	sys-process/numactl
+"
+
+# 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
+	dev-lang/nasm
+	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}= )
+	|| (
+		virtual/jdk:${SLOT}
+		dev-java/openj9-openjdk-bin:${SLOT}
+		dev-java/openj9-openjdk:${SLOT}
+		dev-java/openjdk-bin:${SLOT}
+		dev-java/openjdk:${SLOT}
+	)
+	|| (
+		dev-java/freemarker-bin
+		dev-java/freemarker
+	)
+"
+
+REQUIRED_USE="javafx? ( alsa !headless-awt )"
+
+if [[ ${OPENJ9_PV} == 9999 ]]; then
+	S="${WORKDIR}/openj9-openjdk-jdk${SLOT}"
+else
+	S="${WORKDIR}/openj9-openjdk-jdk${SLOT}-${OPENJ9_P}"
+fi
+
+# The space required to build varies wildly depending on USE flags,
+# ranging from 3GB to 16GB. This function is certainly not exact but
+# should be close enough to be useful.
+openjdk_check_requirements() {
+	local M
+	M=3192
+	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}"
+	fi
+}
+
+pkg_setup() {
+	openjdk_check_requirements
+	java-vm-2_pkg_setup
+
+	JAVA_PKG_WANT_BUILD_VM="openj9-openjdk-${SLOT} openj9-openjdk-bin-${SLOT} 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 ${EPREFIX}/usr/lib/jvm/${vm} ]]; then
+			java-pkg-2_pkg_setup
+			return
+		fi
+	done
+
+	if [[ ${MERGE_TYPE} != binary ]]; then
+		if [[ -z ${JDK_HOME} ]]; then
+			for slot in ${SLOT} $((SLOT-1)); do
+				for variant in openj9- ''; do
+					if has_version --host-root dev-java/${variant}openjdk:${slot}; then
+						JDK_HOME=${EPREFIX}/usr/$(get_libdir)/${variant}openjdk-${slot}
+						break
+					elif has_version --host-root dev-java/${variant}openjdk-bin:${slot}; then
+						JDK_HOME=$(best_version --host-root dev-java/${variant}openjdk-bin:${slot})
+						JDK_HOME=${JDK_HOME#*/}
+						JDK_HOME=${EPREFIX}/opt/${JDK_HOME%-r*}
+						break
+					fi
+				done
+			done
+		fi
+		[[ -n ${JDK_HOME} ]] || die "Build VM not found!"
+		export JDK_HOME
+	fi
+}
+
+src_unpack() {
+	if [[ ${OPENJ9_PV} == 9999 ]]; then
+		EGIT_CHECKOUT_DIR=openj9 EGIT_REPO_URI=${OPENJ9_EGIT_REPO_URI} git-r3_src_unpack
+		EGIT_CHECKOUT_DIR=openj9-omr EGIT_REPO_URI=${OPENJ9_OMR_EGIT_REPO_URI} git-r3_src_unpack
+		# unpack openjdk last to save correct EGIT_VERSION
+		EGIT_CHECKOUT_DIR=${S} git-r3_src_unpack
+	else
+		default
+	fi
+}
+
+src_prepare() {
+	if [[ ${OPENJ9_PV} == 9999 ]]; then
+		ln -s ../openj9 openj9 || die
+		ln -s ../openj9-omr omr || die
+	else
+		ln -s ../openj9-${OPENJ9_P} openj9 || die
+		ln -s ../openj9-omr-${OPENJ9_P} omr || die
+	fi
+
+	default
+
+	eapply -d omr -- "${FILESDIR}/omr-omrstr-iconv-failure-overflow.patch"
+	eapply -d omr -- "${FILESDIR}/omr-fam.patch"
+
+	if [[ ${OPENJ9_PV} != 9999 ]]; then
+		sed -i -e '/^OPENJ9_SHA :=/s/:=.*/:= '${OPENJ9_P}/ \
+			   -e '/^OPENJ9_TAG :=/s/:=.*/:= '${OPENJ9_P}/ \
+			   -e '/^OPENJ9OMR_SHA :=/s/:=.*/:= '${OPENJ9_P}/ \
+			   closed/OpenJ9.gmk
+	fi
+
+	chmod +x configure || die
+}
+
+src_configure() {
+	# Work around stack alignment issue, bug #647954. in case we ever have x86
+	use x86 && append-flags -mincoming-stack-boundary=2
+
+	if has_version dev-java/freemarker; then
+		local freemarker=freemarker
+	else
+		local freemarker=freemarker-bin
+	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.
+
+	local myconf=(
+		--disable-ccache
+		--enable-full-docs=no
+		--with-boot-jdk="${JDK_HOME}"
+		--with-extra-cflags="${CFLAGS}"
+		--with-extra-cxxflags="${CXXFLAGS}"
+		--with-extra-ldflags="${LDFLAGS}"
+		--with-stdc++lib=dynamic
+		--with-giflib=system
+		--with-lcms=system
+		--with-libjpeg=system
+		--with-libpng=system
+		--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-opt=""
+		--with-zlib=system
+		--enable-dtrace=$(usex systemtap yes no)
+		--enable-headless-only=$(usex headless-awt yes no)
+
+		--with-freemarker-jar=$(java-pkg_getjar --build-only $freemarker freemarker.jar)
+		--disable-warnings-as-errors{,-omr,-openj9}
+		$(use_enable ddr)
+		$(use_with large-heap noncompressedrefs)
+	)
+
+	if use javafx; then
+		local zip="${EROOT%/}/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
+
+	# 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= \
+		CONFIG_SITE=/dev/null \
+		econf "${myconf[@]}"
+	)
+}
+
+src_compile() {
+	local myemakeargs=(
+		JOBS=$(makeopts_jobs)
+		# https://github.com/ibmruntimes/openj9-openjdk-jdk14/issues/72
+		#LOG=debug
+		$(usex doc docs '')
+		$(usex jbootstrap bootcycle-images product-images)
+	)
+	emake "${myemakeargs[@]}" -j1 #nowarn
+}
+
+src_install() {
+	local dest="/usr/$(get_libdir)/${PN}-${SLOT}"
+	local ddest="${ED}${dest#/}"
+
+	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 ../../../../../etc/ssl/certs/java/cacerts "${dest}"/lib/security/cacerts
+
+	# must be done before running itself
+	java-vm_set-pax-markings "${ddest}"
+
+	use gentoo-vm && 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}"
+	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
+}
diff --git a/dev-java/openj9-openjdk/openj9-openjdk-11.9999.ebuild b/dev-java/openj9-openjdk/openj9-openjdk-11.9999.ebuild
index 388a762..ead108a 100644
--- a/dev-java/openj9-openjdk/openj9-openjdk-11.9999.ebuild
+++ b/dev-java/openj9-openjdk/openj9-openjdk-11.9999.ebuild
@@ -19,8 +19,8 @@ if [[ ${OPENJ9_PV} == 9999 ]]; then
 	OPENJ9_OMR_EGIT_REPO_URI="https://github.com/eclipse/openj9-omr.git"
 else
 	SRC_URI="
-		https://github.com/ibmruntimes/openj9-openjdk-jdk${SLOT}/archive/${OPENJ9_P}.tar.gz -> openj9-openjdk-jdk${SLOT}-${OPENJ9_P}.tar.gz
-		https://github.com/eclipse/openj9/archive/${OPENJ9_P}.tar.gz -> ${OPENJ9_P}.tar.gz
+		https://github.com/ibmruntimes/openj9-openjdk-jdk${SLOT}/archive/v${OPENJ9_PV}-release.tar.gz -> openj9-openjdk-jdk${SLOT}-${OPENJ9_P}.tar.gz
+		https://github.com/eclipse/openj9/archive/${OPENJ9_P}.tar.gz
 		https://github.com/eclipse/openj9-omr/archive/${OPENJ9_P}.tar.gz -> openj9-omr-${OPENJ9_PV}.tar.gz
 	"
 fi
diff --git a/dev-java/openj9-openjdk/openj9-openjdk-15.0.23.0.ebuild b/dev-java/openj9-openjdk/openj9-openjdk-15.0.23.0.ebuild
deleted file mode 100644
index 23ae86f..0000000
--- a/dev-java/openj9-openjdk/openj9-openjdk-15.0.23.0.ebuild
+++ /dev/null
@@ -1,300 +0,0 @@
-# Copyright 1999-2020 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=6
-
-inherit autotools check-reqs flag-o-matic java-pkg-2 java-vm-2 multiprocessing pax-utils toolchain-funcs versionator
-
-SLOT="$(get_major_version)"
-OPENJ9_PV="$(get_version_component_range 2-4)"
-OPENJ9_P=openj9-${OPENJ9_PV}
-FREEMARKER_PV=2.3.30
-
-DESCRIPTION="Open source implementation of the Java programming language"
-HOMEPAGE="https://openjdk.java.net"
-if [[ ${OPENJ9_PV} == 9999 ]]; then
-	inherit git-r3
-	EGIT_REPO_URI="https://github.com/ibmruntimes/openj9-openjdk-jdk${SLOT}.git"
-	OPENJ9_EGIT_REPO_URI="https://github.com/eclipse/openj9.git"
-	OPENJ9_OMR_EGIT_REPO_URI="https://github.com/eclipse/openj9-omr.git"
-else
-	SRC_URI="
-		https://github.com/ibmruntimes/openj9-openjdk-jdk${SLOT}/archive/${OPENJ9_P}.tar.gz -> openj9-openjdk-jdk${SLOT}-${OPENJ9_P}.tar.gz
-		https://github.com/eclipse/openj9/archive/${OPENJ9_P}.tar.gz -> ${OPENJ9_P}.tar.gz
-		https://github.com/eclipse/openj9-omr/archive/${OPENJ9_P}.tar.gz -> openj9-omr-${OPENJ9_PV}.tar.gz
-	"
-fi
-
-LICENSE="GPL-2"
-KEYWORDS="~amd64"
-
-IUSE="alsa cups ddr debug doc examples gentoo-vm headless-awt javafx +jbootstrap large-heap +pch selinux source systemtap"
-
-COMMON_DEPEND="
-	media-libs/freetype:2=
-	media-libs/giflib:0/7
-	media-libs/libpng:0=
-	media-libs/lcms:2=
-	sys-libs/zlib
-	virtual/jpeg:0=
-	systemtap? ( dev-util/systemtap )
-
-	dev-libs/elfutils
-	dev-libs/libdwarf
-	sys-process/numactl
-"
-
-# 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
-	dev-lang/nasm
-	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}= )
-	|| (
-		virtual/jdk:${SLOT}
-		virtual/jdk:$((SLOT-1))
-	)
-	|| (
-		dev-java/freemarker-bin
-		dev-java/freemarker
-	)
-"
-
-REQUIRED_USE="javafx? ( alsa !headless-awt )"
-
-if [[ ${OPENJ9_PV} == 9999 ]]; then
-	S="${WORKDIR}/openj9-openjdk-jdk${SLOT}"
-else
-	S="${WORKDIR}/openj9-openjdk-jdk${SLOT}-${OPENJ9_P}"
-fi
-
-# The space required to build varies wildly depending on USE flags,
-# ranging from 3GB to 16GB. This function is certainly not exact but
-# should be close enough to be useful.
-openjdk_check_requirements() {
-	local M
-	M=3192
-	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}"
-	fi
-}
-
-pkg_setup() {
-	openjdk_check_requirements
-	java-vm-2_pkg_setup
-	java-pkg-2_pkg_setup
-}
-
-src_unpack() {
-	if [[ ${OPENJ9_PV} == 9999 ]]; then
-		EGIT_CHECKOUT_DIR=openj9 EGIT_REPO_URI=${OPENJ9_EGIT_REPO_URI} git-r3_src_unpack
-		EGIT_CHECKOUT_DIR=openj9-omr EGIT_REPO_URI=${OPENJ9_OMR_EGIT_REPO_URI} git-r3_src_unpack
-		# unpack openjdk last to save correct EGIT_VERSION
-		EGIT_CHECKOUT_DIR=${S} git-r3_src_unpack
-	else
-		default
-	fi
-}
-
-src_prepare() {
-	if [[ ${OPENJ9_PV} == 9999 ]]; then
-		ln -s ../openj9 openj9 || die
-		ln -s ../openj9-omr omr || die
-	else
-		ln -s ../openj9-${OPENJ9_P} openj9 || die
-		ln -s ../openj9-omr-${OPENJ9_P} omr || die
-	fi
-
-	default
-
-	eapply "${FILESDIR}/openjdk-src-doubledollar.patch"
-	eapply -d omr -- "${FILESDIR}/omr-omrstr-iconv-failure-overflow.patch"
-	eapply -d omr -- "${FILESDIR}/omr-fam.patch"
-
-	if [[ ${OPENJ9_PV} != 9999 ]]; then
-		sed -i -e '/^OPENJ9_SHA :=/s/:=.*/:= '${OPENJ9_P}/ \
-			   -e '/^OPENJ9_TAG :=/s/:=.*/:= '${OPENJ9_P}/ \
-			   -e '/^OPENJ9OMR_SHA :=/s/:=.*/:= '${OPENJ9_P}/ \
-			   closed/OpenJ9.gmk
-	fi
-
-	chmod +x configure || die
-}
-
-src_configure() {
-	# Work around stack alignment issue, bug #647954. in case we ever have x86
-	use x86 && append-flags -mincoming-stack-boundary=2
-
-	if has_version dev-java/freemarker; then
-		local freemarker=freemarker
-	else
-		local freemarker=freemarker-bin
-	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.
-
-	local myconf=(
-		--disable-ccache
-		--enable-full-docs=no
-		--with-boot-jdk="${JDK_HOME}"
-		--with-extra-cflags="${CFLAGS}"
-		--with-extra-cxxflags="${CXXFLAGS}"
-		--with-extra-ldflags="${LDFLAGS}"
-		--with-stdc++lib=dynamic
-		--with-giflib=system
-		--with-lcms=system
-		--with-libjpeg=system
-		--with-libpng=system
-		--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-opt=""
-		--with-zlib=system
-		--enable-dtrace=$(usex systemtap yes no)
-		--enable-headless-only=$(usex headless-awt yes no)
-
-		--with-freemarker-jar=$(java-pkg_getjar --build-only $freemarker freemarker.jar)
-		--disable-warnings-as-errors{,-omr,-openj9}
-		$(use_enable ddr)
-		$(use_with large-heap noncompressedrefs)
-	)
-
-	if use javafx; then
-		local zip="${EROOT%/}/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
-
-	# 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= \
-		CONFIG_SITE=/dev/null \
-		econf "${myconf[@]}"
-	)
-}
-
-src_compile() {
-	local myemakeargs=(
-		JOBS=$(makeopts_jobs)
-		# https://github.com/ibmruntimes/openj9-openjdk-jdk14/issues/72
-		#LOG=debug
-		$(usex doc docs '')
-		$(usex jbootstrap bootcycle-images product-images)
-	)
-	emake "${myemakeargs[@]}" -j1 #nowarn
-}
-
-src_install() {
-	local dest="/usr/$(get_libdir)/${PN}-${SLOT}"
-	local ddest="${ED}${dest#/}"
-
-	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 ../../../../../etc/ssl/certs/java/cacerts "${dest}"/lib/security/cacerts
-
-	# must be done before running itself
-	java-vm_set-pax-markings "${ddest}"
-
-	use gentoo-vm && 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}"
-	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
-}
diff --git a/dev-java/openj9-openjdk/openj9-openjdk-15.0.24.0.ebuild b/dev-java/openj9-openjdk/openj9-openjdk-15.0.24.0.ebuild
new file mode 100644
index 0000000..585f194
--- /dev/null
+++ b/dev-java/openj9-openjdk/openj9-openjdk-15.0.24.0.ebuild
@@ -0,0 +1,299 @@
+# Copyright 1999-2020 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=6
+
+inherit autotools check-reqs flag-o-matic java-pkg-2 java-vm-2 multiprocessing pax-utils toolchain-funcs versionator
+
+SLOT="$(get_major_version)"
+OPENJ9_PV="$(get_version_component_range 2-4)"
+OPENJ9_P=openj9-${OPENJ9_PV}
+FREEMARKER_PV=2.3.30
+
+DESCRIPTION="Open source implementation of the Java programming language"
+HOMEPAGE="https://openjdk.java.net"
+if [[ ${OPENJ9_PV} == 9999 ]]; then
+	inherit git-r3
+	EGIT_REPO_URI="https://github.com/ibmruntimes/openj9-openjdk-jdk${SLOT}.git"
+	OPENJ9_EGIT_REPO_URI="https://github.com/eclipse/openj9.git"
+	OPENJ9_OMR_EGIT_REPO_URI="https://github.com/eclipse/openj9-omr.git"
+else
+	SRC_URI="
+		https://github.com/ibmruntimes/openj9-openjdk-jdk${SLOT}/archive/v${OPENJ9_PV}-release.tar.gz -> openj9-openjdk-jdk${SLOT}-${OPENJ9_P}.tar.gz
+		https://github.com/eclipse/openj9/archive/${OPENJ9_P}.tar.gz -> ${OPENJ9_P}.tar.gz
+		https://github.com/eclipse/openj9-omr/archive/${OPENJ9_P}.tar.gz -> openj9-omr-${OPENJ9_PV}.tar.gz
+	"
+fi
+
+LICENSE="GPL-2"
+KEYWORDS="~amd64"
+
+IUSE="alsa cups ddr debug doc examples gentoo-vm headless-awt javafx +jbootstrap large-heap +pch selinux source systemtap"
+
+COMMON_DEPEND="
+	media-libs/freetype:2=
+	media-libs/giflib:0/7
+	media-libs/libpng:0=
+	media-libs/lcms:2=
+	sys-libs/zlib
+	virtual/jpeg:0=
+	systemtap? ( dev-util/systemtap )
+
+	dev-libs/elfutils
+	dev-libs/libdwarf
+	sys-process/numactl
+"
+
+# 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
+	dev-lang/nasm
+	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}= )
+	|| (
+		virtual/jdk:${SLOT}
+		virtual/jdk:$((SLOT-1))
+	)
+	|| (
+		dev-java/freemarker-bin
+		dev-java/freemarker
+	)
+"
+
+REQUIRED_USE="javafx? ( alsa !headless-awt )"
+
+if [[ ${OPENJ9_PV} == 9999 ]]; then
+	S="${WORKDIR}/openj9-openjdk-jdk${SLOT}"
+else
+	S="${WORKDIR}/openj9-openjdk-jdk${SLOT}-${OPENJ9_P}"
+fi
+
+# The space required to build varies wildly depending on USE flags,
+# ranging from 3GB to 16GB. This function is certainly not exact but
+# should be close enough to be useful.
+openjdk_check_requirements() {
+	local M
+	M=3192
+	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}"
+	fi
+}
+
+pkg_setup() {
+	openjdk_check_requirements
+	java-vm-2_pkg_setup
+	java-pkg-2_pkg_setup
+}
+
+src_unpack() {
+	if [[ ${OPENJ9_PV} == 9999 ]]; then
+		EGIT_CHECKOUT_DIR=openj9 EGIT_REPO_URI=${OPENJ9_EGIT_REPO_URI} git-r3_src_unpack
+		EGIT_CHECKOUT_DIR=openj9-omr EGIT_REPO_URI=${OPENJ9_OMR_EGIT_REPO_URI} git-r3_src_unpack
+		# unpack openjdk last to save correct EGIT_VERSION
+		EGIT_CHECKOUT_DIR=${S} git-r3_src_unpack
+	else
+		default
+	fi
+}
+
+src_prepare() {
+	if [[ ${OPENJ9_PV} == 9999 ]]; then
+		ln -s ../openj9 openj9 || die
+		ln -s ../openj9-omr omr || die
+	else
+		ln -s ../openj9-${OPENJ9_P} openj9 || die
+		ln -s ../openj9-omr-${OPENJ9_P} omr || die
+	fi
+
+	default
+
+	eapply -d omr -- "${FILESDIR}/omr-omrstr-iconv-failure-overflow.patch"
+	eapply -d omr -- "${FILESDIR}/omr-fam.patch"
+
+	if [[ ${OPENJ9_PV} != 9999 ]]; then
+		sed -i -e '/^OPENJ9_SHA :=/s/:=.*/:= '${OPENJ9_P}/ \
+			   -e '/^OPENJ9_TAG :=/s/:=.*/:= '${OPENJ9_P}/ \
+			   -e '/^OPENJ9OMR_SHA :=/s/:=.*/:= '${OPENJ9_P}/ \
+			   closed/OpenJ9.gmk
+	fi
+
+	chmod +x configure || die
+}
+
+src_configure() {
+	# Work around stack alignment issue, bug #647954. in case we ever have x86
+	use x86 && append-flags -mincoming-stack-boundary=2
+
+	if has_version dev-java/freemarker; then
+		local freemarker=freemarker
+	else
+		local freemarker=freemarker-bin
+	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.
+
+	local myconf=(
+		--disable-ccache
+		--enable-full-docs=no
+		--with-boot-jdk="${JDK_HOME}"
+		--with-extra-cflags="${CFLAGS}"
+		--with-extra-cxxflags="${CXXFLAGS}"
+		--with-extra-ldflags="${LDFLAGS}"
+		--with-stdc++lib=dynamic
+		--with-giflib=system
+		--with-lcms=system
+		--with-libjpeg=system
+		--with-libpng=system
+		--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-opt=""
+		--with-zlib=system
+		--enable-dtrace=$(usex systemtap yes no)
+		--enable-headless-only=$(usex headless-awt yes no)
+
+		--with-freemarker-jar=$(java-pkg_getjar --build-only $freemarker freemarker.jar)
+		--disable-warnings-as-errors{,-omr,-openj9}
+		$(use_enable ddr)
+		$(use_with large-heap noncompressedrefs)
+	)
+
+	if use javafx; then
+		local zip="${EROOT%/}/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
+
+	# 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= \
+		CONFIG_SITE=/dev/null \
+		econf "${myconf[@]}"
+	)
+}
+
+src_compile() {
+	local myemakeargs=(
+		JOBS=$(makeopts_jobs)
+		# https://github.com/ibmruntimes/openj9-openjdk-jdk14/issues/72
+		#LOG=debug
+		$(usex doc docs '')
+		$(usex jbootstrap bootcycle-images product-images)
+	)
+	emake "${myemakeargs[@]}" -j1 #nowarn
+}
+
+src_install() {
+	local dest="/usr/$(get_libdir)/${PN}-${SLOT}"
+	local ddest="${ED}${dest#/}"
+
+	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 ../../../../../etc/ssl/certs/java/cacerts "${dest}"/lib/security/cacerts
+
+	# must be done before running itself
+	java-vm_set-pax-markings "${ddest}"
+
+	use gentoo-vm && 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}"
+	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
+}
diff --git a/dev-java/openj9-openjdk/openj9-openjdk-15.9999.ebuild b/dev-java/openj9-openjdk/openj9-openjdk-15.9999.ebuild
index f1ba818..7b02c94 100644
--- a/dev-java/openj9-openjdk/openj9-openjdk-15.9999.ebuild
+++ b/dev-java/openj9-openjdk/openj9-openjdk-15.9999.ebuild
@@ -19,7 +19,7 @@ if [[ ${OPENJ9_PV} == 9999 ]]; then
 	OPENJ9_OMR_EGIT_REPO_URI="https://github.com/eclipse/openj9-omr.git"
 else
 	SRC_URI="
-		https://github.com/ibmruntimes/openj9-openjdk-jdk${SLOT}/archive/${OPENJ9_P}.tar.gz -> openj9-openjdk-jdk${SLOT}-${OPENJ9_P}.tar.gz
+		https://github.com/ibmruntimes/openj9-openjdk-jdk${SLOT}/archive/v${OPENJ9_PV}-release.tar.gz -> openj9-openjdk-jdk${SLOT}-${OPENJ9_P}.tar.gz
 		https://github.com/eclipse/openj9/archive/${OPENJ9_P}.tar.gz -> ${OPENJ9_P}.tar.gz
 		https://github.com/eclipse/openj9-omr/archive/${OPENJ9_P}.tar.gz -> openj9-omr-${OPENJ9_PV}.tar.gz
 	"
@@ -144,7 +144,6 @@ src_prepare() {
 
 	default
 
-	eapply "${FILESDIR}/openjdk-src-doubledollar.patch"
 	eapply -d omr -- "${FILESDIR}/omr-omrstr-iconv-failure-overflow.patch"
 	eapply -d omr -- "${FILESDIR}/omr-fam.patch"
 
-- 
cgit v1.2.3-70-g09d2