diff options
| author | Palica <palica+gitlab@liguros.net> | 2020-06-23 22:35:08 +0200 |
|---|---|---|
| committer | Palica <palica+gitlab@liguros.net> | 2020-06-23 22:35:08 +0200 |
| commit | ecdac123787b96ce6649f0f91da12ea6458cc2b1 (patch) | |
| tree | b89c74d9e6fe6e8aebc4c77bcbeb4ab73214127d /dev-java/openjdk | |
| parent | 1be72aa41cf41dedadeecf59dca9f01de6381f5e (diff) | |
| download | baldeagleos-repo-ecdac123787b96ce6649f0f91da12ea6458cc2b1.tar.gz baldeagleos-repo-ecdac123787b96ce6649f0f91da12ea6458cc2b1.tar.xz baldeagleos-repo-ecdac123787b96ce6649f0f91da12ea6458cc2b1.zip | |
Updating liguros repo
Diffstat (limited to 'dev-java/openjdk')
| -rw-r--r-- | dev-java/openjdk/Manifest | 9 | ||||
| -rw-r--r-- | dev-java/openjdk/files/openjdk-11.0.7_p10-sigsegv.patch | 55 | ||||
| -rw-r--r-- | dev-java/openjdk/files/openjdk-11.env.sh | 16 | ||||
| -rw-r--r-- | dev-java/openjdk/files/openjdk-8-detect-gcc10.patch | 49 | ||||
| -rw-r--r-- | dev-java/openjdk/files/openjdk-8.env.sh | 16 | ||||
| -rw-r--r-- | dev-java/openjdk/metadata.xml | 30 | ||||
| -rw-r--r-- | dev-java/openjdk/openjdk-11.0.7_p10.ebuild | 280 | ||||
| -rw-r--r-- | dev-java/openjdk/openjdk-8.252_p09.ebuild | 231 |
8 files changed, 686 insertions, 0 deletions
diff --git a/dev-java/openjdk/Manifest b/dev-java/openjdk/Manifest new file mode 100644 index 000000000000..0062a4f8d08a --- /dev/null +++ b/dev-java/openjdk/Manifest @@ -0,0 +1,9 @@ +DIST openjdk-11.0.7_p10.tar.bz2 91317054 BLAKE2B 113f6d0b1ea97aa6c3a619a3f4183b72f5e0448422d17b6ffc4d778ce50eee68e4495d610845d1f3aace2e5660703dad96583203c6d12b5528e0f33f78df7cec SHA512 c6776bd05e2cbb42134ccf5cd522e4b73d1662e3cf136a8718c5d302b9c44e76b74a554b81aa14c5deda20bee76abc80a144f5c2e1941b70c9503579c325aa12 +DIST openjdk-8.252_p09.tar.bz2 454656 BLAKE2B 7132af72a09da9ded1759ccf92da6237a24e3fd15209b8d5aecb7011b890cd3484b4724f6b6a144e4bc5cb41931076985f75a9089c178938be62ac1a1d2a7f07 SHA512 0f03f1549dea1577cb01895d4e34721d16443977c5e7b3f0744af9cf2c0b09e60cb6d91b35a5e474c593d518d5610fb4c14fc4b9a907a7e13bb2351cea51bd06 +DIST openjdk-corba-8.252_p09.tar.bz2 1034367 BLAKE2B d281a0b2e092c637adae4a206ac4b3f7beeb65f0fce5862f996ac71a814c5c3ee3261dd1145660cb50fde0398e42ca1e8c86d6aad07e43b44aa1f903c204b21c SHA512 08f348849eeadefee3dce9658b519091a14b9f972a1ee1dc51c37a3cd766e5265faed1931b967410ebff2132dd18cedf8840277d804b402ee43a862e37575ab1 +DIST openjdk-hotspot-8.252_p09.tar.bz2 7954548 BLAKE2B a791d3c3385be3c8543bea1fc8d5bee9b3de873122ec850c3ad0082430083ec9dff2aa7c0cae33e628047a18a76fca8146b68aa52f32845cf7a61a45fdc8d9eb SHA512 53079cc255f75f246a67937bdf2b7715882f9baf8bcbc46ab2963c259359b1008642aeeae7ba7705c39f7a04e69ba286421a83b90294e81071f8e630db48ba7c +DIST openjdk-jaxp-8.252_p09.tar.bz2 2736174 BLAKE2B c198f144be7d0e7439e2184768db8649973f9e6869e67d3a950abd4872584160f4aaec1f4bec727f0d38830d34a4be7bd2f3e897b8ca10c758212262fa1672c3 SHA512 8027676e2928087a7d396c4f1edd3366336aaf8e3f201e2006cb7ddf91e518c9258d7ab6cc1c4fcc27e3e87bcecd96c55b2550d49f28b98beabf7553ea54ba3f +DIST openjdk-jaxws-8.252_p09.tar.bz2 2542417 BLAKE2B cf898e0c56269ea1f468c6b9e6cfbdf552caea562f833ade234d207f05be6f39f86d9d6794cc8b365ed3fde4bac5df41949e76cbaef61553f5557ec86dd593e6 SHA512 cadeec8825073db1fea13f1d83903ba2799324cfa8e25012c5dc98ec31976bd91b22526f98fc871d0ee01156943f4fc4ec115f7a81feb10e9f7d96f3f39a9313 +DIST openjdk-jdk-8.252_p09.tar.bz2 47507382 BLAKE2B 4638256df52aa48a1ccace15fe65b284cb2a1e3a3c45f32ae69a807ae4bd9b9ce3cf9f464a9b8a87d07c49f2d7c48c8516b43d9d4372f578ad1cd4dfa17abb80 SHA512 96188acc8078c312c7118abfbc39874429f71e63c2e282fef2da9df29731ee13396bda28a8a1041b17b50da4bb00b1fe88404d682b0a850e5db10e59e39994f2 +DIST openjdk-langtools-8.252_p09.tar.bz2 2399354 BLAKE2B aa3f0cb647986490612b9574fb0c78955f5ffb8969dbd06dfae5406436d6fecdbbb09896bdb0acc18d56f51bcd4ad1eadb19cc544185762ad623a47fde2e4a85 SHA512 d84ff97294ac612cd4e49deb2d7470026a564208c0e1fa23d5692db45efaaf564483966921ce642506a97aa90a2a8593617f944ebc6d18c9db5a808fd3946864 +DIST openjdk-nashorn-8.252_p09.tar.bz2 2852104 BLAKE2B 570fbe605ed27c4b3a5db5f6e9dbb4269ad2c895654a989d366a4a6f238ea06fec398140563ca2700303856dfa795ae40dbf9485dd9e9a46ef438f5418fd8b8b SHA512 996e7068d8c6f8ca192e6037eaf7f98ff94188c02670caadf1042e4e0909a3d51835a8cd2250d1f0a8bbdedb107f3713b614466ba4d2915b955e19fdcc2cbb91 diff --git a/dev-java/openjdk/files/openjdk-11.0.7_p10-sigsegv.patch b/dev-java/openjdk/files/openjdk-11.0.7_p10-sigsegv.patch new file mode 100644 index 000000000000..04c61c06589e --- /dev/null +++ b/dev-java/openjdk/files/openjdk-11.0.7_p10-sigsegv.patch @@ -0,0 +1,55 @@ + +# HG changeset patch +# User ccheung +# Date 1564075552 25200 +# Node ID f1332f6025515e4fc9e42fbf79f983d782abaaf0 +# Parent 966fc6d784a737ec25cd0b1be48109a4a3fa02ad +8228407: JVM crashes with shared archive file mismatch +Summary: Stop processing other header fields if initial header check has failed. +Reviewed-by: dholmes, jiangli + +diff -r 966fc6d784a7 -r f1332f602551 src/hotspot/share/memory/filemap.cpp +--- a/src/hotspot/share/memory/filemap.cpp Mon Mar 02 12:30:59 2020 +0100 ++++ b/src/hotspot/share/memory/filemap.cpp Thu Jul 25 10:25:52 2019 -0700 +@@ -1287,7 +1287,9 @@ + } + + init_from_file(_fd); +- if (!validate_header()) { ++ // UseSharedSpaces could be disabled if the checking of some of the header fields in ++ // init_from_file has failed. ++ if (!UseSharedSpaces || !validate_header()) { + return false; + } + return true; +diff -r 966fc6d784a7 -r f1332f602551 test/hotspot/jtreg/runtime/appcds/SharedArchiveConsistency.java +--- a/test/hotspot/jtreg/runtime/appcds/SharedArchiveConsistency.java Mon Mar 02 12:30:59 2020 +0100 ++++ b/test/hotspot/jtreg/runtime/appcds/SharedArchiveConsistency.java Thu Jul 25 10:25:52 2019 -0700 +@@ -385,8 +385,16 @@ + output.shouldNotContain("Checksum verification failed"); + + copyFile(orgJsaFile, jsa); ++ // modify _jvm_ident and run with -Xshare:auto ++ System.out.println("\n2b. Corrupt _jvm_ident run with -Xshare:auto\n"); ++ modifyJvmIdent(); ++ output = TestCommon.execAuto(execArgs); ++ output.shouldContain("The shared archive file was created by a different version or build of HotSpot"); ++ output.shouldContain("Hello World"); ++ ++ copyFile(orgJsaFile, jsa); + // modify _magic and _paths_misc_info_size, test should fail +- System.out.println("\n2b. Corrupt _magic and _paths_misc_info_size, should fail\n"); ++ System.out.println("\n2c. Corrupt _magic and _paths_misc_info_size, should fail\n"); + modifyHeaderIntField(offset_magic, 0x00000000); + modifyHeaderIntField(offset_paths_misc_info_size, Integer.MAX_VALUE); + output = TestCommon.execCommon(execArgs); +@@ -395,7 +403,7 @@ + + copyFile(orgJsaFile, jsa); + // modify _version and _paths_misc_info_size, test should fail +- System.out.println("\n2c. Corrupt _version and _paths_misc_info_size, should fail\n"); ++ System.out.println("\n2d. Corrupt _version and _paths_misc_info_size, should fail\n"); + modifyHeaderIntField(offset_version, 0x00000000); + modifyHeaderIntField(offset_paths_misc_info_size, Integer.MAX_VALUE); + output = TestCommon.execCommon(execArgs); + diff --git a/dev-java/openjdk/files/openjdk-11.env.sh b/dev-java/openjdk/files/openjdk-11.env.sh new file mode 100644 index 000000000000..96c4be79c33f --- /dev/null +++ b/dev-java/openjdk/files/openjdk-11.env.sh @@ -0,0 +1,16 @@ +# Copyright 1999-2018 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +VERSION="OpenJDK ${PV}" +JAVA_HOME="${EPREFIX}/usr/$(get_libdir)/${PN}-${SLOT}" +JDK_HOME="${EPREFIX}/usr/$(get_libdir)/${PN}-${SLOT}" +JAVAC="\${JAVA_HOME}/bin/javac" +PATH="\${JAVA_HOME}/bin" +ROOTPATH="\${JAVA_HOME}/bin" +LDPATH="\${JAVA_HOME}/lib/:\${JAVA_HOME}/lib/server/" +MANPATH="" +PROVIDES_TYPE="JDK JRE" +PROVIDES_VERSION="${SLOT}" +BOOTCLASSPATH="" +GENERATION="2" +ENV_VARS="JAVA_HOME JDK_HOME JAVAC PATH ROOTPATH LDPATH MANPATH" diff --git a/dev-java/openjdk/files/openjdk-8-detect-gcc10.patch b/dev-java/openjdk/files/openjdk-8-detect-gcc10.patch new file mode 100644 index 000000000000..b47e012d4a39 --- /dev/null +++ b/dev-java/openjdk/files/openjdk-8-detect-gcc10.patch @@ -0,0 +1,49 @@ +From 6d96aaac5662f734b0a933397ebb8cd4ff66606d Mon Sep 17 00:00:00 2001 +From: Georgy Yakovlev <gyakovlev@gentoo.org> +Date: Sat, 23 May 2020 20:48:10 -0700 +Subject: [PATCH] backport gcc10 fix + +https://hg.openjdk.java.net/jdk8u/jdk8u/rev/39a7914e14a0 +--- + common/autoconf/generated-configure.sh | 4 ++-- + common/autoconf/toolchain.m4 | 2 +- + 2 files changed, 3 insertions(+), 3 deletions(-) + +diff --git a/common/autoconf/generated-configure.sh b/common/autoconf/generated-configure.sh +index 5e71c50..90c017d 100644 +--- a/common/autoconf/generated-configure.sh ++++ b/common/autoconf/generated-configure.sh +@@ -27955,7 +27955,7 @@ $as_echo "$as_me: The result from running with --version was: \"$COMPILER_VERSIO + COMPILER_VERSION_STRING=`$ECHO $COMPILER_VERSION_OUTPUT | \ + $SED -e 's/ *Copyright .*//'` + COMPILER_VERSION_NUMBER=`$ECHO $COMPILER_VERSION_OUTPUT | \ +- $SED -e 's/^.* \([1-9]\.[0-9.]*\) .*$/\1/'` ++ $SED -e 's/^.* \([1-9][0-9]*\.[0-9.]*\) .*$/\1/'` + elif test "x$TOOLCHAIN_TYPE" = xclang; then + # clang --version output typically looks like + # Apple LLVM version 5.0 (clang-500.2.79) (based on LLVM 3.3svn) +@@ -29696,7 +29696,7 @@ $as_echo "$as_me: The result from running with --version was: \"$COMPILER_VERSIO + COMPILER_VERSION_STRING=`$ECHO $COMPILER_VERSION_OUTPUT | \ + $SED -e 's/ *Copyright .*//'` + COMPILER_VERSION_NUMBER=`$ECHO $COMPILER_VERSION_OUTPUT | \ +- $SED -e 's/^.* \([1-9]\.[0-9.]*\) .*$/\1/'` ++ $SED -e 's/^.* \([1-9][0-9]*\.[0-9.]*\) .*$/\1/'` + elif test "x$TOOLCHAIN_TYPE" = xclang; then + # clang --version output typically looks like + # Apple LLVM version 5.0 (clang-500.2.79) (based on LLVM 3.3svn) +diff --git a/common/autoconf/toolchain.m4 b/common/autoconf/toolchain.m4 +index e3a82c8..c0a4af5 100644 +--- a/common/autoconf/toolchain.m4 ++++ b/common/autoconf/toolchain.m4 +@@ -433,7 +433,7 @@ AC_DEFUN([TOOLCHAIN_EXTRACT_COMPILER_VERSION], + COMPILER_VERSION_STRING=`$ECHO $COMPILER_VERSION_OUTPUT | \ + $SED -e 's/ *Copyright .*//'` + COMPILER_VERSION_NUMBER=`$ECHO $COMPILER_VERSION_OUTPUT | \ +- $SED -e 's/^.* \(@<:@1-9@:>@\.@<:@0-9.@:>@*\) .*$/\1/'` ++ $SED -e 's/^.* \(@<:@1-9@:>@@<:@0-9@:>@*\.@<:@0-9.@:>@*\) .*$/\1/'` + elif test "x$TOOLCHAIN_TYPE" = xclang; then + # clang --version output typically looks like + # Apple LLVM version 5.0 (clang-500.2.79) (based on LLVM 3.3svn) +-- +2.26.2 + diff --git a/dev-java/openjdk/files/openjdk-8.env.sh b/dev-java/openjdk/files/openjdk-8.env.sh new file mode 100644 index 000000000000..e85a08ce4a8b --- /dev/null +++ b/dev-java/openjdk/files/openjdk-8.env.sh @@ -0,0 +1,16 @@ +# Copyright 1999-2019 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +VERSION="OpenJDK ${PV}" +JAVA_HOME="${EPREFIX}/usr/$(get_libdir)/${PN}-${SLOT}" +JDK_HOME="${EPREFIX}/usr/$(get_libdir)/${PN}-${SLOT}" +JAVAC="\${JAVA_HOME}/bin/javac" +PATH="\${JAVA_HOME}/bin" +ROOTPATH="\${JAVA_HOME}/bin" +LDPATH="\${JAVA_HOME}/lib/:\${JAVA_HOME}/lib/server/" +MANPATH="\${JAVA_HOME}/man" +PROVIDES_TYPE="JDK JRE" +PROVIDES_VERSION="1.${SLOT}" +BOOTCLASSPATH="\${JAVA_HOME}/jre/lib/resources.jar:\${JAVA_HOME}/jre/lib/rt.jar:\${JAVA_HOME}/jre/lib/jsse.jar:\${JAVA_HOME}/jre/lib/jce.jar:\${JAVA_HOME}/jre/lib/charsets.jar:\${JAVA_HOME}/jre/lib/jfr.jar" +GENERATION="2" +ENV_VARS="JAVA_HOME JDK_HOME JAVAC PATH ROOTPATH LDPATH MANPATH" diff --git a/dev-java/openjdk/metadata.xml b/dev-java/openjdk/metadata.xml new file mode 100644 index 000000000000..c00c93f44562 --- /dev/null +++ b/dev-java/openjdk/metadata.xml @@ -0,0 +1,30 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd"> +<pkgmetadata> + <maintainer type="person"> + <email>gyakovlev@gentoo.org</email> + <name>Georgy Yakovlev</name> + </maintainer> + <maintainer type="project"> + <email>java@gentoo.org</email> + <name>Java</name> + </maintainer> + <longdescription> + Java™ is the world's leading programming language and platform. + The code for Java is open source and available at OpenJDK™. + </longdescription> + <slots> + <slot name="8">Java™ 8 is Java™ 1.8, where 8 is the version number, and 1.8 is the version string</slot> + <slot name="11">Java™ version 11</slot> + </slots> + <use> + <flag name="headless-awt">Don't install the X backend for AWT, needed by some GUIs</flag> + <flag name="gentoo-vm">Allow this JDK to be recognised by Gentoo (package manager, eselect, java-config, EXPERIMENTAL!)</flag> + <flag name="javafx" restrict=">=dev-java/openjdk-11">Import OpenJFX modules at build time, via <pkg>dev-java/openjfx</pkg></flag> + <flag name="jbootstrap">Build OpenJDK twice, the second time using the result of the first</flag> + <flag name="source">Install JVM sources</flag> + <flag name="systemtap" restrict=">=dev-java/openjdk-11">Enable SystemTAP/DTrace tracing</flag> + <flag name="webstart">Provide javaws command through symlink to icedtea-web</flag> + </use> + <origin>gentoo-staging</origin> +</pkgmetadata> diff --git a/dev-java/openjdk/openjdk-11.0.7_p10.ebuild b/dev-java/openjdk/openjdk-11.0.7_p10.ebuild new file mode 100644 index 000000000000..b5d448dd9e84 --- /dev/null +++ b/dev-java/openjdk/openjdk-11.0.7_p10.ebuild @@ -0,0 +1,280 @@ +# 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 + +# 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%%[.+]*}" + +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" + +LICENSE="GPL-2" +KEYWORDS="~amd64 ~arm ~arm64 ~ppc64" + +IUSE="alsa cups debug doc examples gentoo-vm headless-awt javafx +jbootstrap nsplugin +pch selinux source systemtap webstart" + +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 ) +" + +# 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}= ) + || ( + 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] ) +" + +REQUIRED_USE="javafx? ( alsa !headless-awt )" + +S="${WORKDIR}/jdk${SLOT}u-jdk-${MY_PV}" + +PATCHES=( + "${FILESDIR}/${P}-sigsegv.patch" +) + +# 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}" + fi +} + +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 + 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() { + 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 + + # Work around -fno-common ( GCC10 default ), bug #713180 + append-flags -fcommon + + # 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-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-string="${PV%_p*}" + --with-version-build="${PV#*_p}" + --with-zlib=system + --enable-dtrace=$(usex systemtap yes no) + --enable-headless-only=$(usex headless-awt yes no) + ) + + 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) + LOG=debug + CFLAGS_WARNINGS_ARE_ERRORS= # No -Werror + $(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}" + + 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_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/openjdk/openjdk-8.252_p09.ebuild b/dev-java/openjdk/openjdk-8.252_p09.ebuild new file mode 100644 index 000000000000..45c3e3cc90ca --- /dev/null +++ b/dev-java/openjdk/openjdk-8.252_p09.ebuild @@ -0,0 +1,231 @@ +# Copyright 1999-2020 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=6 + +inherit check-reqs eapi7-ver flag-o-matic java-pkg-2 java-vm-2 multiprocessing pax-utils toolchain-funcs + +# we need latest -ga tag from hg, but want to keep build number as well +# as _p component of the gentoo version string. + +MY_PV=$(ver_rs 1 'u' 2 '-' ${PV%_p*}-ga) + +BASE_URI="https://hg.${PN}.java.net/jdk8u/jdk8u" + +DESCRIPTION="Open source implementation of the Java programming language" +HOMEPAGE="https://openjdk.java.net" +SRC_URI=" + ${BASE_URI}/archive/jdk${MY_PV}.tar.bz2 -> ${P}.tar.bz2 + ${BASE_URI}/corba/archive/jdk${MY_PV}.tar.bz2 -> ${PN}-corba-${PV}.tar.bz2 + ${BASE_URI}/hotspot/archive/jdk${MY_PV}.tar.bz2 -> ${PN}-hotspot-${PV}.tar.bz2 + ${BASE_URI}/jaxp/archive/jdk${MY_PV}.tar.bz2 -> ${PN}-jaxp-${PV}.tar.bz2 + ${BASE_URI}/jaxws/archive/jdk${MY_PV}.tar.bz2 -> ${PN}-jaxws-${PV}.tar.bz2 + ${BASE_URI}/jdk/archive/jdk${MY_PV}.tar.bz2 -> ${PN}-jdk-${PV}.tar.bz2 + ${BASE_URI}/langtools/archive/jdk${MY_PV}.tar.bz2 -> ${PN}-langtools-${PV}.tar.bz2 + ${BASE_URI}/nashorn/archive/jdk${MY_PV}.tar.bz2 -> ${PN}-nashorn-${PV}.tar.bz2 +" + +LICENSE="GPL-2" +SLOT="$(ver_cut 1)" +KEYWORDS="amd64 ppc64 ~x86" +IUSE="alsa debug cups doc examples headless-awt +jbootstrap nsplugin +pch selinux source webstart" + +COMMON_DEPEND=" + media-libs/freetype:2= + media-libs/giflib:0/7 + sys-libs/zlib +" +# 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/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/libXrender + x11-libs/libXt + x11-libs/libXtst + || ( + dev-java/openjdk-bin:${SLOT} + dev-java/icedtea-bin:${SLOT} + dev-java/openjdk:${SLOT} + dev-java/icedtea:${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}" + +# bug 721970, JDK-8244760 +PATCHES=( + "${FILESDIR}/openjdk-8-detect-gcc10.patch" +) + +# 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 debug 3 1) * $M )) + M=$(( $(usex jbootstrap 2 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_PKG_WANT_BUILD_VM="openjdk-${SLOT} openjdk-bin-${SLOT} icedtea-${SLOT} icedtea-bin-${SLOT}" + JAVA_PKG_WANT_SOURCE="${SLOT}" + JAVA_PKG_WANT_TARGET="${SLOT}" + + java-vm-2_pkg_setup + java-pkg-2_pkg_setup +} + +src_prepare() { + default + chmod +x configure || die + local repo + for repo in corba hotspot jdk jaxp jaxws langtools nashorn; do + ln -s ../"${repo}-jdk${MY_PV}" "${repo}" || die + done + # new warnings in new gcc https://bugs.gentoo.org/685426 + sed -i '/^WARNINGS_ARE_ERRORS/ s/-Werror/-Wno-error/' \ + hotspot/make/linux/makefiles/gcc.make || die +} + +src_configure() { + # general build info found here: + #https://hg.openjdk.java.net/jdk8/jdk8/raw-file/tip/README-builds.html + + # Work around stack alignment issue, bug #647954. + use x86 && append-flags -mincoming-stack-boundary=2 + + # Work around -fno-common ( GCC10 default ), bug #706638 + append-flags -fcommon + + local myconf=( + --disable-ccache + --enable-unlimited-crypto + --with-boot-jdk="${JDK_HOME}" + --with-extra-cflags="${CFLAGS}" + --with-extra-cxxflags="${CXXFLAGS}" + --with-extra-ldflags="${LDFLAGS}" + --with-giflib=system + --with-jtreg=no + --with-jobs=1 + --with-num-cores=1 + --with-update-version="$(ver_cut 2)" + --with-build-number="b$(ver_cut 4)" + --with-milestone="fcs" # magic variable that means "release version" + --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-zlib=system + --with-native-debug-symbols=$(usex debug internal none) + $(usex headless-awt --disable-headful '') + ) + + # 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) + LOG=debug + $(usex doc docs '') + $(usex jbootstrap bootcycle-images images) + ) + emake "${myemakeargs[@]}" -j1 #nowarn +} + +src_install() { + local dest="/usr/$(get_libdir)/${PN}-${SLOT}" + local ddest="${ED%/}/${dest#/}" + + cd "${S}"/build/*-release/images/j2sdk-image || die + + if ! use alsa; then + rm -v jre/lib/$(get_system_arch)/libjsoundalsa.* || die + fi + + # stupid build system does not remove that + if use headless-awt ; then + rm -fvr jre/lib/$(get_system_arch)/lib*{[jx]awt,splashscreen}* \ + {,jre/}bin/policytool bin/appletviewer || die + fi + + if ! use examples ; then + rm -vr demo/ || die + fi + + if ! use source ; then + rm -v src.zip || die + fi + + dodir "${dest}" + cp -pPR * "${ddest}" || die + + dosym ../../../../../../etc/ssl/certs/java/cacerts "${dest}"/jre/lib/security/cacerts + + 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 + docinto html + dodoc -r "${S}"/build/*-release/docs/* + fi +} + +pkg_postinst() { + java-vm-2_pkg_postinst +} |
