summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorGeorgy Yakovlev <gyakovlev@gentoo.org>2019-01-27 19:12:52 -0800
committerGeorgy Yakovlev <gyakovlev@gentoo.org>2019-01-27 19:23:10 -0800
commitef3753f1b7bf08b4ef3d5261953a38b496746da6 (patch)
tree48d6ce01954b3e513abf8127ba115225c1222ad0 /dev-java
parentdev-java/openjdk-bin: drop 11_p28 (diff)
downloadgentoo-ef3753f1b7bf08b4ef3d5261953a38b496746da6.tar.gz
gentoo-ef3753f1b7bf08b4ef3d5261953a38b496746da6.tar.bz2
gentoo-ef3753f1b7bf08b4ef3d5261953a38b496746da6.zip
dev-java/openjdk: bump to 11.0.2+7
make cups optional. it's still required to build, but can be removed later. Removed jvm variants support. It was incomplete and overly complex. Greater flexibility can be achieved via features. If you want to enable or disable certain features you can pass --with-jvm-features=[-feature|feature] to ebuild via EXTRA_ECONF The following JVM features are available: compiler1 compiler2 zero minimal dtrace jvmti jvmci graal vm-structs jni-check services management cmsgc epsilongc g1gc parallelgc serialgc zgc nmt cds static-build link-time-opt aot jfr Which are valid to use depends on the target platform Note: in this version zgc (zero garbage collector) is not enabled yet. It will be enabled by default on supported arches starting with 11.0.3 https://wiki.openjdk.java.net/display/zgc/Main to enable it for this build pass --with-jvm-features=zgc via EXTRA_ECONF Package-Manager: Portage-2.3.58, Repoman-2.3.12 Signed-off-by: Georgy Yakovlev <gyakovlev@gentoo.org>
Diffstat (limited to 'dev-java')
-rw-r--r--dev-java/openjdk/Manifest1
-rw-r--r--dev-java/openjdk/openjdk-11.0.2_p7.ebuild211
2 files changed, 212 insertions, 0 deletions
diff --git a/dev-java/openjdk/Manifest b/dev-java/openjdk/Manifest
index 351991ab4ea9..ad45e64d341b 100644
--- a/dev-java/openjdk/Manifest
+++ b/dev-java/openjdk/Manifest
@@ -1 +1,2 @@
DIST jdk-11.0.1+13.tar.bz2 90134818 BLAKE2B c79f32dc5b531a06317afb87ef15495267e914b9b292a1d434514a90298d8234e7e0ba92659416b15d9392c7513d976a0c81411953cb6706a27ee57c965e36fb SHA512 c534c2fa8dcd4fdebef6f00473d5ceaae4a33bd1e1a417846508e25f154b1ded649a73468c8c71ac0c1e27bab5f641a3b480a264b532a0c30be2869c3d11a15d
+DIST jdk-11.0.2+7.tar.bz2 90189455 BLAKE2B 37473a8db4c6ad6789ea67b44f4dda94b9f59143c681a206aa0931b3a2a376fbc480c0c5a6b617072cf9ce1faca34a6c5c5e56cfec9fbf5482b82520fb2463c4 SHA512 03214d9fc920c04f3057594efa78ff588a630e6c594e5bbcc24b4c327fa08273ce060063d98720cdc04bc6978a3d04e172f38ba7a3bcabf02dd5dad397fd9952
diff --git a/dev-java/openjdk/openjdk-11.0.2_p7.ebuild b/dev-java/openjdk/openjdk-11.0.2_p7.ebuild
new file mode 100644
index 000000000000..1a48fa81cb9c
--- /dev/null
+++ b/dev-java/openjdk/openjdk-11.0.2_p7.ebuild
@@ -0,0 +1,211 @@
+# Copyright 1999-2019 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
+
+MY_PV=${PV/_p/+}
+SLOT=${MY_PV%%[.+]*}
+
+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"
+
+LICENSE="GPL-2"
+KEYWORDS="~amd64 ~arm64 ~ppc64"
+
+IUSE="alsa cups debug doc examples gentoo-vm headless-awt +jbootstrap nsplugin +pch selinux source systemtap +webstart"
+
+CDEPEND="
+ media-libs/freetype:2=
+ sys-libs/zlib
+ systemtap? ( dev-util/systemtap )
+ !headless-awt? (
+ x11-libs/libX11
+ x11-libs/libXext
+ x11-libs/libXi
+ x11-libs/libXrender
+ x11-libs/libXt
+ x11-libs/libXtst
+ )
+"
+
+# cups and alsa required to build, but not to run, make is possible to remove
+RDEPEND="
+ ${CDEPEND}
+ alsa? ( media-libs/alsa-lib )
+ cups? ( net-print/cups )
+ selinux? ( sec-policy/selinux-java )
+"
+
+DEPEND="
+ ${CDEPEND}
+ app-arch/zip
+ media-libs/alsa-lib
+ net-print/cups
+ !headless-awt? (
+ x11-base/xorg-proto
+ )
+ || (
+ dev-java/openjdk-bin:${SLOT}
+ dev-java/openjdk:${SLOT}
+ )
+"
+
+PDEPEND="webstart? ( >=dev-java/icedtea-web-1.6.1:0 )
+ nsplugin? ( >=dev-java/icedtea-web-1.6.1:0[nsplugin] )"
+
+S="${WORKDIR}/jdk${SLOT}u-jdk-${MY_PV}"
+
+# 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
+}
+
+pkg_setup() {
+ openjdk_check_requirements
+ java-vm-2_pkg_setup
+
+ 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 ${EPREFIX}/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
+ 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
+}
+
+src_prepare() {
+ default
+ 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
+
+ # 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.
+ # currently it still bundles lcms libpng giflib and libjpeg.
+
+ 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-native-debug-symbols=$(usex debug internal none)
+ --with-version-pre=gentoo
+ --with-version-string=${MY_PV%+*}
+ --with-version-build=${MY_PV#*+}
+ --with-zlib=system
+ --enable-dtrace=$(usex systemtap yes no)
+ --enable-headless-only=$(usex headless-awt yes no)
+ )
+
+ # PaX breaks pch, bug #601016
+ if use pch && ! host-is-pax; then
+ myconf+=( --enable-precompiled-headers )
+ else
+ myconf+=( --disable-precompiled-headers )
+ fi
+
+ (
+ unset JAVA JAVAC XARGS
+ CFLAGS= CXXFLAGS= LDFLAGS= \
+ CONFIG_SITE=/dev/null \
+ econf "${myconf[@]}"
+ )
+}
+
+src_compile() {
+ emake -j1 \
+ $(usex jbootstrap bootcycle-images product-images) $(usex doc docs '') \
+ JOBS=$(makeopts_jobs) LOG=debug CFLAGS_WARNINGS_ARE_ERRORS= # No -Werror
+}
+
+src_install() {
+ local dest="/usr/$(get_libdir)/${PN}-${SLOT}"
+ local ddest="${ED}${dest#/}"
+
+ cd "${S}"/build/*-release/images/jdk || 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
+
+ dodir "${dest}"
+ cp -pPR * "${ddest}" || die
+
+ use gentoo-vm && java-vm_install-env "${FILESDIR}"/${PN}-${SLOT}.env.sh
+ java-vm_set-pax-markings "${ddest}"
+ java-vm_revdep-mask
+ java-vm_sandbox-predict /dev/random /proc/self/coredump_filter
+
+ if use doc ; then
+ insinto /usr/share/doc/${PF}/html
+ doins -r "${S}"/build/*-release/images/docs/*
+ 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 things."
+ 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
+}