Gentoo Archives: gentoo-commits

From: Georgy Yakovlev <gyakovlev@g.o>
To: gentoo-commits@l.g.o
Subject: [gentoo-commits] repo/gentoo:master commit in: dev-java/openjdk/
Date: Sun, 28 Jul 2019 21:17:10
Message-Id: 1564348604.c60fc30bd94ab8549acee312c475e8655eafcebf.gyakovlev@gentoo
1 commit: c60fc30bd94ab8549acee312c475e8655eafcebf
2 Author: Georgy Yakovlev <gyakovlev <AT> gentoo <DOT> org>
3 AuthorDate: Sun Jul 28 21:08:46 2019 +0000
4 Commit: Georgy Yakovlev <gyakovlev <AT> gentoo <DOT> org>
5 CommitDate: Sun Jul 28 21:16:44 2019 +0000
6 URL: https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=c60fc30b
7
8 dev-java/openjdk: bump to 11.0.4_p11
9
10 Package-Manager: Portage-2.3.69, Repoman-2.3.16
11 Signed-off-by: Georgy Yakovlev <gyakovlev <AT> gentoo.org>
12
13 dev-java/openjdk/Manifest | 1 +
14 dev-java/openjdk/openjdk-11.0.4_p11.ebuild | 267 +++++++++++++++++++++++++++++
15 2 files changed, 268 insertions(+)
16
17 diff --git a/dev-java/openjdk/Manifest b/dev-java/openjdk/Manifest
18 index 4799924a940..73e9722b9c4 100644
19 --- a/dev-java/openjdk/Manifest
20 +++ b/dev-java/openjdk/Manifest
21 @@ -1,4 +1,5 @@
22 DIST jdk-11.0.3+7.tar.bz2 90300528 BLAKE2B db566140028ddbf9f6e10eaaac018ddf3ad13a954500c73abde8aec5c673c375f2cf0e56bc75c410a4ff90e6cb8e9c4580bb5719786e34865f00a92bd3ea8431 SHA512 46c1c13165e7d5ef480052810ccdc1b5d55f6b2b542e10303d3940536df7f17bf3d8a0cf774e73dc25af7cd69432790656a03c66d2df9efaf71cb9e44c2da684
23 +DIST jdk-11.0.4+11.tar.bz2 90420043 BLAKE2B 28e7ea146a14ed4629a42c69721a9d53a1c7d6a0346d96bedf15c7f3472d39b0b1d303ceb0c80dd226ba21236588a3c1222446bf98492235f9c18ca870eae26a SHA512 5211aa3d8b1215574b75137a6645ec1a3dd833a9815065f04cefa00c26d2aa6028074076645a22af2a6ffc1bd39cfa1e5e92d9ee3f24af32f9de914cf36b8056
24 DIST openjdk-8.212_p03.tar.bz2 451800 BLAKE2B f8466a0d99650a07e3ff21e8dc06252ef9d31ce15e22c6ede15fc4c7b1633820e84e67aa501e816101c6bd473293fb897645b2df1530d8f7b81c6e8e6d38ce3a SHA512 ccc642da05aa00cfcc46c1eb759391dd2242218b7392bced77481600aa15b3b1d0a0c03380f59b6a6d038311721f249de1a6b116c6f651193cfb57b89fba4866
25 DIST openjdk-8.222_p10.tar.bz2 452194 BLAKE2B aa5a19245e9b5f79da217ef4e8ff87acaf6b4c7b930a6cd1c7a00d2c6d50bb3168c41da1b18e8beb072a84bca7f3956e939edd9f5fd88899d2cc3fe754ff19f8 SHA512 08f92327732fb54df847fe0b3e49460bcdd25fe2aef7bc9545d75ab6504ab92452f8f5daede6040d28fd9b8347f49d658dc7bf88abc90235d6cf4a72cb44fbba
26 DIST openjdk-corba-8.212_p03.tar.bz2 1033709 BLAKE2B f59b294e62425b63e881ed5534ae9beb3cc51351ff197995503671ec52ad82e34e145f8c9790dc88e4f452b4e09af80143fd0f7e0fda588b00eed08d4b2bc861 SHA512 3a786a372ab6b849a6ccd944cdfdc0aa9994a6a9f4d52afccad7d6b187e46a1fd0be30bde3da1eb03988034c36b4590b55379819245fb6f5ed4d75a958e9caa3
27
28 diff --git a/dev-java/openjdk/openjdk-11.0.4_p11.ebuild b/dev-java/openjdk/openjdk-11.0.4_p11.ebuild
29 new file mode 100644
30 index 00000000000..be67385a603
31 --- /dev/null
32 +++ b/dev-java/openjdk/openjdk-11.0.4_p11.ebuild
33 @@ -0,0 +1,267 @@
34 +# Copyright 1999-2019 Gentoo Authors
35 +# Distributed under the terms of the GNU General Public License v2
36 +
37 +EAPI=6
38 +
39 +inherit autotools check-reqs flag-o-matic java-pkg-2 java-vm-2 multiprocessing pax-utils toolchain-funcs
40 +
41 +MY_PV=${PV/_p/+}
42 +SLOT=${MY_PV%%[.+]*}
43 +
44 +DESCRIPTION="Open source implementation of the Java programming language"
45 +HOMEPAGE="https://openjdk.java.net"
46 +SRC_URI="https://hg.${PN}.java.net/jdk-updates/jdk${SLOT}u/archive/jdk-${MY_PV}.tar.bz2"
47 +
48 +LICENSE="GPL-2"
49 +KEYWORDS="~amd64 ~arm ~arm64 ~ppc64"
50 +
51 +IUSE="alsa cups debug doc examples gentoo-vm headless-awt javafx +jbootstrap nsplugin +pch selinux source systemtap +webstart"
52 +
53 +COMMON_DEPEND="
54 + media-libs/freetype:2=
55 + media-libs/giflib:0/7
56 + media-libs/libpng:0=
57 + media-libs/lcms:2=
58 + sys-libs/zlib
59 + virtual/jpeg:0=
60 + systemtap? ( dev-util/systemtap )
61 +"
62 +
63 +# Many libs are required to build, but not to run, make is possible to remove
64 +# by listing conditionally in RDEPEND unconditionally in DEPEND
65 +RDEPEND="
66 + ${COMMON_DEPEND}
67 + >=sys-apps/baselayout-java-0.1.0-r1
68 + !headless-awt? (
69 + x11-libs/libX11
70 + x11-libs/libXext
71 + x11-libs/libXi
72 + x11-libs/libXrender
73 + x11-libs/libXt
74 + x11-libs/libXtst
75 + )
76 + alsa? ( media-libs/alsa-lib )
77 + cups? ( net-print/cups )
78 + selinux? ( sec-policy/selinux-java )
79 +"
80 +
81 +DEPEND="
82 + ${COMMON_DEPEND}
83 + app-arch/zip
84 + media-libs/alsa-lib
85 + net-print/cups
86 + x11-base/xorg-proto
87 + x11-libs/libX11
88 + x11-libs/libXext
89 + x11-libs/libXi
90 + x11-libs/libXrender
91 + x11-libs/libXt
92 + x11-libs/libXtst
93 + javafx? ( dev-java/openjfx:${SLOT} )
94 + || (
95 + dev-java/openjdk-bin:${SLOT}
96 + dev-java/openjdk:${SLOT}
97 + )
98 +"
99 +
100 +PDEPEND="
101 + webstart? ( >=dev-java/icedtea-web-1.6.1:0 )
102 + nsplugin? ( >=dev-java/icedtea-web-1.6.1:0[nsplugin] )
103 +"
104 +
105 +REQUIRED_USE="javafx? ( alsa !headless-awt )"
106 +
107 +S="${WORKDIR}/jdk${SLOT}u-jdk-${MY_PV}"
108 +
109 +# The space required to build varies wildly depending on USE flags,
110 +# ranging from 2GB to 16GB. This function is certainly not exact but
111 +# should be close enough to be useful.
112 +openjdk_check_requirements() {
113 + local M
114 + M=2048
115 + M=$(( $(usex jbootstrap 2 1) * $M ))
116 + M=$(( $(usex debug 3 1) * $M ))
117 + M=$(( $(usex doc 320 0) + $(usex source 128 0) + 192 + $M ))
118 +
119 + CHECKREQS_DISK_BUILD=${M}M check-reqs_pkg_${EBUILD_PHASE}
120 +}
121 +
122 +pkg_pretend() {
123 + openjdk_check_requirements
124 + has ccache ${FEATURES} && die "FEATURES=ccache doesn't work with ${PN}"
125 +}
126 +
127 +pkg_setup() {
128 + openjdk_check_requirements
129 + java-vm-2_pkg_setup
130 +
131 + JAVA_PKG_WANT_BUILD_VM="openjdk-${SLOT} openjdk-bin-${SLOT}"
132 + JAVA_PKG_WANT_SOURCE="${SLOT}"
133 + JAVA_PKG_WANT_TARGET="${SLOT}"
134 +
135 + # The nastiness below is necessary while the gentoo-vm USE flag is
136 + # masked. First we call java-pkg-2_pkg_setup if it looks like the
137 + # flag was unmasked against one of the possible build VMs. If not,
138 + # we try finding one of them in their expected locations. This would
139 + # have been slightly less messy if openjdk-bin had been installed to
140 + # /opt/${PN}-${SLOT} or if there was a mechanism to install a VM env
141 + # file but disable it so that it would not normally be selectable.
142 +
143 + local vm
144 + for vm in ${JAVA_PKG_WANT_BUILD_VM}; do
145 + if [[ -d ${EPREFIX}/usr/lib/jvm/${vm} ]]; then
146 + java-pkg-2_pkg_setup
147 + return
148 + fi
149 + done
150 +
151 + if has_version --host-root dev-java/openjdk:${SLOT}; then
152 + export JDK_HOME=${EPREFIX}/usr/$(get_libdir)/openjdk-${SLOT}
153 + else
154 + if [[ ${MERGE_TYPE} != "binary" ]]; then
155 + JDK_HOME=$(best_version --host-root dev-java/openjdk-bin:${SLOT})
156 + [[ -n ${JDK_HOME} ]] || die "Build VM not found!"
157 + JDK_HOME=${JDK_HOME#*/}
158 + JDK_HOME=${EPREFIX}/opt/${JDK_HOME%-r*}
159 + export JDK_HOME
160 + fi
161 + fi
162 +}
163 +
164 +src_prepare() {
165 + default
166 + chmod +x configure || die
167 +}
168 +
169 +src_configure() {
170 + # Work around stack alignment issue, bug #647954. in case we ever have x86
171 + use x86 && append-flags -mincoming-stack-boundary=2
172 +
173 + # Enabling full docs appears to break doc building. If not
174 + # explicitly disabled, the flag will get auto-enabled if pandoc and
175 + # graphviz are detected. pandoc has loads of dependencies anyway.
176 +
177 + local myconf=(
178 + --disable-ccache
179 + --enable-full-docs=no
180 + --with-boot-jdk="${JDK_HOME}"
181 + --with-extra-cflags="${CFLAGS}"
182 + --with-extra-cxxflags="${CXXFLAGS}"
183 + --with-extra-ldflags="${LDFLAGS}"
184 + --with-giflib=system
185 + --with-lcms=system
186 + --with-libjpeg=system
187 + --with-libpng=system
188 + --with-native-debug-symbols=$(usex debug internal none)
189 + --with-vendor-name="Gentoo"
190 + --with-vendor-url="https://gentoo.org"
191 + --with-vendor-bug-url="https://bugs.gentoo.org"
192 + --with-vendor-vm-bug-url="https://bugs.openjdk.java.net"
193 + --with-vendor-version-string="${PV}"
194 + --with-version-pre=""
195 + --with-version-string=${MY_PV%+*}
196 + --with-version-build=${MY_PV#*+}
197 + --with-zlib=system
198 + --enable-dtrace=$(usex systemtap yes no)
199 + --enable-headless-only=$(usex headless-awt yes no)
200 + )
201 +
202 + if use javafx; then
203 + local zip="${EROOT%/}/usr/$(get_libdir)/openjfx-${SLOT}/javafx-exports.zip"
204 + if [[ -r ${zip} ]]; then
205 + myconf+=( --with-import-modules="${zip}" )
206 + else
207 + die "${zip} not found or not readable"
208 + fi
209 + fi
210 +
211 + # PaX breaks pch, bug #601016
212 + if use pch && ! host-is-pax; then
213 + myconf+=( --enable-precompiled-headers )
214 + else
215 + myconf+=( --disable-precompiled-headers )
216 + fi
217 +
218 + (
219 + unset _JAVA_OPTIONS JAVA JAVAC XARGS
220 + CFLAGS= CXXFLAGS= LDFLAGS= \
221 + CONFIG_SITE=/dev/null \
222 + econf "${myconf[@]}"
223 + )
224 +}
225 +
226 +src_compile() {
227 + local myemakeargs=(
228 + JOBS=$(makeopts_jobs)
229 + LOG=debug
230 + CFLAGS_WARNINGS_ARE_ERRORS= # No -Werror
231 + $(usex doc docs '')
232 + $(usex jbootstrap bootcycle-images product-images)
233 + )
234 + emake "${myemakeargs[@]}" -j1 #nowarn
235 +}
236 +
237 +src_install() {
238 + local dest="/usr/$(get_libdir)/${PN}-${SLOT}"
239 + local ddest="${ED}${dest#/}"
240 +
241 + cd "${S}"/build/*-release/images/jdk || die
242 +
243 + # Create files used as storage for system preferences.
244 + mkdir .systemPrefs || die
245 + touch .systemPrefs/.system.lock || die
246 + touch .systemPrefs/.systemRootModFile || die
247 +
248 + # Oracle and IcedTea have libjsoundalsa.so depending on
249 + # libasound.so.2 but OpenJDK only has libjsound.so. Weird.
250 + if ! use alsa ; then
251 + rm -v lib/libjsound.* || die
252 + fi
253 +
254 + if ! use examples ; then
255 + rm -vr demo/ || die
256 + fi
257 +
258 + if ! use source ; then
259 + rm -v lib/src.zip || die
260 + fi
261 +
262 + rm -v lib/security/cacerts || die
263 +
264 + dodir "${dest}"
265 + cp -pPR * "${ddest}" || die
266 +
267 + dosym "${EPREFIX}"/etc/ssl/certs/java/cacerts "${dest}"/lib/security/cacerts
268 +
269 + # must be done before running itself
270 + java-vm_set-pax-markings "${ddest}"
271 +
272 + einfo "Creating the Class Data Sharing archives and disabling usage tracking"
273 + "${ddest}/bin/java" -server -Xshare:dump -Djdk.disableLastUsageTracking || die
274 +
275 + use gentoo-vm && java-vm_install-env "${FILESDIR}"/${PN}-${SLOT}.env.sh
276 + java-vm_revdep-mask
277 + java-vm_sandbox-predict /dev/random /proc/self/coredump_filter
278 +
279 + if use doc ; then
280 + insinto /usr/share/doc/"${PF}"/html
281 + doins -r "${S}"/build/*-release/images/docs/*
282 + dosym /usr/share/doc/"${PF}" /usr/share/doc/"${PN}-${SLOT}"
283 + fi
284 +}
285 +
286 +pkg_postinst() {
287 + java-vm-2_pkg_postinst
288 +
289 + if use gentoo-vm ; then
290 + ewarn "WARNING! You have enabled the gentoo-vm USE flag, making this JDK"
291 + ewarn "recognised by the system. This will almost certainly break"
292 + ewarn "many java ebuilds as they are not ready for openjdk-11"
293 + else
294 + ewarn "The experimental gentoo-vm USE flag has not been enabled so this JDK"
295 + ewarn "will not be recognised by the system. For example, simply calling"
296 + ewarn "\"java\" will launch a different JVM. This is necessary until Gentoo"
297 + ewarn "fully supports Java ${SLOT}. This JDK must therefore be invoked using its"
298 + ewarn "absolute location under ${EPREFIX}/usr/$(get_libdir)/${PN}-${SLOT}."
299 + fi
300 +}