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