forked from andrius/gentoo-bootstrap
Add openjdk:9 and openjdk:10 ebuilds for bootstrapping openjdk:11
This commit is contained in:
commit
f93ae12f30
|
@ -0,0 +1,19 @@
|
||||||
|
AUX bootcycle_jobs.patch 1273 BLAKE2B 4ff4b9f629167230aa0800da4559b1d31028924971850e9067edb35c506ae4e3eeb0fe8a2d593550c49ff0136641b3c9aebad21bb622eafd41244154474ce5b0 SHA512 6f033c2ab8ef5acb516fcd46dd94ba1021b9f3f3f844595341d2984e67dcbfe442af6918041d1d00922d647e2c31e75820835f9f1eeb163abb0f3ab804e4b864
|
||||||
|
AUX generate-cacerts.pl 11051 BLAKE2B e6d54319153735bd4b445581dfbd2b78e2e27a19f3b8a78d2fe6912efa207d133fa550652295648bc0bd1370956f71374d4b42de71776fa253f44d4e9dff2527 SHA512 22d1be675362c09ed61af4dc3ece14cab81e9514937d588ff5d324e61b7eba7d3dd99b26bc5ec0953365de56d099f708b2afdb13cca37bc4ff07fd8ce31fbe97
|
||||||
|
AUX openjdk-10.env.sh 537 BLAKE2B 404aeaf3d4df54b66193b8e09521ad2e55a23dc0603beea9911e4c91ab96e30c0f4aa4a0e96b1982874e055af3b9923689657b58dc02b37f91163659343ed2f9 SHA512 f4a41891b0187048a21b1af43053375e62de249e3ba210c3cfd59178c9f4c667ff83f10ee85f9ae37db097e862ff7233f5136569d0cb1399dbf48cea075cfc6e
|
||||||
|
AUX openjdk-11.env.sh 537 BLAKE2B 404aeaf3d4df54b66193b8e09521ad2e55a23dc0603beea9911e4c91ab96e30c0f4aa4a0e96b1982874e055af3b9923689657b58dc02b37f91163659343ed2f9 SHA512 f4a41891b0187048a21b1af43053375e62de249e3ba210c3cfd59178c9f4c667ff83f10ee85f9ae37db097e862ff7233f5136569d0cb1399dbf48cea075cfc6e
|
||||||
|
AUX openjdk-9.env.sh 537 BLAKE2B 404aeaf3d4df54b66193b8e09521ad2e55a23dc0603beea9911e4c91ab96e30c0f4aa4a0e96b1982874e055af3b9923689657b58dc02b37f91163659343ed2f9 SHA512 f4a41891b0187048a21b1af43053375e62de249e3ba210c3cfd59178c9f4c667ff83f10ee85f9ae37db097e862ff7233f5136569d0cb1399dbf48cea075cfc6e
|
||||||
|
DIST jdk-10.0.2+13.tar.bz2 88365048 BLAKE2B f898a0976cff12cca439ccdba2bf7eff7fcbc5f00709fa41302fd781819a44165fa864d5e551023c507ad18dc957abd24b15744fc6dc5304ee1a26bd4cb8cb86 SHA512 7491da11d5e0013db75d33e09be7a91ac0dbcde6282541a39fe471fd5368d49b15403bc7508b330ca60210b3ca02730743ba280657283a231853f6882a3ca74d
|
||||||
|
DIST jdk-11.0.5+10.tar.bz2 90613232 BLAKE2B 0a3cba851ac967d84f97ae1e7972d3ab593dbc76fb20664c4e7950380ad91acee7e263a2989930b45346cd170da71c500db9d8a0a6ac88982d77607089b95513 SHA512 0d52c78e217b79756be0fc6b3f9204bae254ec7b9ae10b6c3114463a9c028143807f4422711f0c02b81a034ae6e88fa2efc6bed85022720807344230a8aa12a6
|
||||||
|
DIST openjdk-9.0.4_p12.tar.bz2 823756 BLAKE2B f1b457655520b983597b15254323abdb0c39feaff78ce36d88ef556a086d9f9333ceddec63d945ca28bb06f4a06c2bc1344051ac2c1df55a01728016ff7255c1 SHA512 cef3655ae7db657e6c81aa86587e451e58896bb6ee786495f6d757096334435b6a4de26ec3ec927da2487e135f09ce26414f8d6b9b9c508a28d3087be286b1ec
|
||||||
|
DIST openjdk-corba-9.0.4_p12.tar.bz2 1002503 BLAKE2B 789664686432cee36e7e165aa4ac6e9a2ed1a1a85a961cd362d9bbdf59d7c7077b71bd2fc59e03f3e3a8cdbc4443a7e359fbfbbbaebfe29bbd220e3cafc3a298 SHA512 455998437a9e3ff538b921025d57e19e6fb5148b3f124c9c427c3604689884d81b3ce5c9dbd93d88de26bf1b43ce76d75f75afd95e473a94973a668575e41748
|
||||||
|
DIST openjdk-hotspot-9.0.4_p12.tar.bz2 11411231 BLAKE2B a21a5003266f6d8f60adaf78b109d496e46058841d0ab2c8f17256a503124b36e18908240f04fdbb16c056a1f68608f891fed1dbb9c9a0b2bb2326a303a32a4f SHA512 49d93764b13085a5626bec1c3d4e790f8748c24577a4e990e76bd1006721a5b8b9a256c40bf6419df4dda6f6390e457485f90c1b1101c010476a04d9056e9f16
|
||||||
|
DIST openjdk-jaxp-9.0.4_p12.tar.bz2 3215994 BLAKE2B 57061280601277706ef263e19a8a8ff7eadeaa8d60edc9fe195d15669b554684f5b4132d4899d9031888f3140a6acbab8b0d7ba950d304d7e83b1e3f74253259 SHA512 82f28586fd576cc01062e2ff37a917987775838910e4a5ecdfd096abec1c8d23028b77bfc87a38ada53bc30d71d89bde7408c1ae572a43c87a71ced64fd08d3a
|
||||||
|
DIST openjdk-jaxws-9.0.4_p12.tar.bz2 2517916 BLAKE2B 650fbaf93349ce12ba7426e626a6c6e3468183a44f65abb16c139a4b09a2a0d91aed0f9fdfbb7fe779a335a66a003da001229e5504a60396023504ad6c1e3b90 SHA512 459978a5e3ca21910781daed848229e043eea5bd82dcd20e9249934ec97a2a982126c6e37aac1a36719e3b73a5e6c8a92a50b63033149913614d8f3edfc0846e
|
||||||
|
DIST openjdk-jdk-9.0.4_p12.tar.bz2 55469786 BLAKE2B 92f6b30c4c23d99492ff85f61099dcbb4dd1adfc4f4a297801d26e5b0c44be76fb40d482ad0752ac3abdf1d9db0e940a2dd5ba2c5f37d658689147c8eacca26d SHA512 259228d3f439dde239e38cdebb8c3bbb83804ab141d87a9c236310707de9c58cd78cd80ceb4c17755cc1048071f24462839988112c2698f7ec1453a8810610f2
|
||||||
|
DIST openjdk-langtools-9.0.4_p12.tar.bz2 4497608 BLAKE2B 382bfa6119345f1983cf5a168fa0d2e523a6dad5ad35f446cd11d6f6f24bb5850e65d1d0aab7fe8298ba7a2d7fe3ebb8a472c567a46577dff17ab80ea32abae9 SHA512 ef3c70be906a4b0dd9c9195c88da045909ee3ef144941fb7b4495ed66b4162f481095cad87626d2bd38e5a62134b440223cd008dd6123b6b43c00e338610a692
|
||||||
|
DIST openjdk-nashorn-9.0.4_p12.tar.bz2 8961760 BLAKE2B 2ff03adf87a0e0561d52529cf95b8fb827e75773462be7ecddd60dc966e1a229b897eb65a0301a531dfcaff884122e612f1a24b5d5fbc8f0352a8d84218423d7 SHA512 848c6ece418e250561572ad704baeb565580098cfc5f849d4e1a3b41b916aae3487eb4d8d0b319f3a503d122ec064ed4de0678d06821c9a2bdb09c990e589c97
|
||||||
|
EBUILD openjdk-10.0.2_p13.ebuild 7510 BLAKE2B 123267aacd9632669990f59b95bf598f672b99436ef142846fb5be83cdad0213079e9f5adb6c945283d19eaccf5519c9d2e0dbd55683bb3e984ad6b04206ec1d SHA512 c5336b08b0a304d4a444d946c533d521cb146c32657ef40e31f45b176feff20fe4673ea99111ce14b2fd615a20854c4e5c0d396fb11d488f1c816f4216901fe5
|
||||||
|
EBUILD openjdk-11.0.5_p10.ebuild 7643 BLAKE2B 16cfc91d85bce93727017e4acf20624fd6d552746273137b93e14dd4a1739b958c3e1fae8ea4b75d8c52e6bdabba9f567d5a3053cc02eb35ae9328cc55459e2f SHA512 8c180f69a355622f75092ac1624e81eea2ce6bcff563c3eccc6dd2c1b3cf8b20a923dc2db945dfa15771ba813e358f14eed2e211ffe28f46fddc8ac919b1ab95
|
||||||
|
EBUILD openjdk-9.0.4_p12.ebuild 7411 BLAKE2B 929170bca2c09b6f8dd2ad947ba15bafaea1c0753270dec3db89eea797ee0964177e143aea9d9e272bf9458d1e9d0ce9f0425c44810014ae2da3879a94d18031 SHA512 0436e32e791685bd69b539a3b6906ebc566d88225aece87423818a357add820417c8d897970697b394afba489196cdc33799a602813c1f606d2e87e22ce3e8fc
|
||||||
|
MISC metadata.xml 1398 BLAKE2B 7b99e080f6dc261c94314c7f7a0314ee25b48752ca494dd23d1534c5e8e3f930601262a0316ed674786c5fd960dfbc25dd6c6768cd06325ef45c0b41f920eafc SHA512 1747f484c6f784cb551f0969aab9ca1e6c42509c06b6187b72f3e16861ce3e2e71e131deb1ae6ebe2eda1c768276794cd5a0db7918eb419b9502a3c45bf78959
|
|
@ -0,0 +1,25 @@
|
||||||
|
diff -r 21b063d75b3e make/Init.gmk
|
||||||
|
--- jdk9/make/Init.gmk Thu Mar 16 16:34:33 2017 +0000
|
||||||
|
+++ jdk9/make/Init.gmk Tue Apr 04 13:49:37 2017 +0100
|
||||||
|
@@ -303,7 +303,8 @@
|
||||||
|
$(call PrepareSmartJavac)
|
||||||
|
( cd $(TOPDIR) && \
|
||||||
|
$(NICE) $(MAKE) $(MAKE_ARGS) $(OUTPUT_SYNC_FLAG) \
|
||||||
|
- -j $(JOBS) -f make/Main.gmk $(USER_MAKE_VARS) \
|
||||||
|
+ $(if $(DISABLE_JOBS),, -j $(JOBS)) \
|
||||||
|
+ -f make/Main.gmk $(USER_MAKE_VARS) \
|
||||||
|
$(PARALLEL_TARGETS) $(COMPARE_BUILD_MAKE) $(BUILD_LOG_PIPE) || \
|
||||||
|
( exitcode=$$? && \
|
||||||
|
$(PRINTF) "\nERROR: Build failed for $(TARGET_DESCRIPTION) (exit code $$exitcode) \n" \
|
||||||
|
diff -r 21b063d75b3e make/Main.gmk
|
||||||
|
--- jdk9/make/Main.gmk Thu Mar 16 16:34:33 2017 +0000
|
||||||
|
+++ jdk9/make/Main.gmk Tue Apr 04 13:49:37 2017 +0100
|
||||||
|
@@ -320,7 +320,7 @@
|
||||||
|
ifneq ($(COMPILE_TYPE), cross)
|
||||||
|
$(call LogWarn, Boot cycle build step 2: Building a new JDK image using previously built image)
|
||||||
|
+$(MAKE) $(MAKE_ARGS) -f $(SRC_ROOT)/make/Init.gmk PARALLEL_TARGETS=$(BOOTCYCLE_TARGET) \
|
||||||
|
- JOBS= SPEC=$(dir $(SPEC))bootcycle-spec.gmk main
|
||||||
|
+ DISABLE_JOBS=true SPEC=$(dir $(SPEC))bootcycle-spec.gmk main
|
||||||
|
else
|
||||||
|
$(call LogWarn, Boot cycle build disabled when cross compiling)
|
||||||
|
endif
|
|
@ -0,0 +1,358 @@
|
||||||
|
#!/usr/bin/perl
|
||||||
|
|
||||||
|
# Copyright (C) 2007, 2008 Red Hat, Inc.
|
||||||
|
#
|
||||||
|
# This program is free software; you can redistribute it and/or modify
|
||||||
|
# it under the terms of the GNU General Public License as published by
|
||||||
|
# the Free Software Foundation; either version 2 of the License, or
|
||||||
|
# (at your option) any later version.
|
||||||
|
#
|
||||||
|
# This program is distributed in the hope that it will be useful,
|
||||||
|
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
# GNU General Public License for more details.
|
||||||
|
|
||||||
|
# generate-cacerts.pl generates a JKS keystore named 'cacerts' from
|
||||||
|
# OpenSSL's certificate bundle using OpenJDK's keytool.
|
||||||
|
|
||||||
|
# First extract each of OpenSSL's bundled certificates into its own
|
||||||
|
# aliased filename.
|
||||||
|
|
||||||
|
# Downloaded from http://cvs.fedoraproject.org/viewvc/rpms/ca-certificates/F-12/generate-cacerts.pl?revision=1.2
|
||||||
|
# Check and prevention of duplicate aliases added by Vlastimil Babka <caster@gentoo.org>
|
||||||
|
|
||||||
|
$file = $ARGV[1];
|
||||||
|
open(CERTS, $file);
|
||||||
|
@certs = <CERTS>;
|
||||||
|
close(CERTS);
|
||||||
|
|
||||||
|
$pem_file_count = 0;
|
||||||
|
$in_cert_block = 0;
|
||||||
|
$write_current_cert = 1;
|
||||||
|
foreach $cert (@certs)
|
||||||
|
{
|
||||||
|
if ($cert =~ /Issuer: /)
|
||||||
|
{
|
||||||
|
$_ = $cert;
|
||||||
|
if ($cert =~ /personal-freemail/)
|
||||||
|
{
|
||||||
|
$cert_alias = "thawtepersonalfreemailca";
|
||||||
|
}
|
||||||
|
elsif ($cert =~ /personal-basic/)
|
||||||
|
{
|
||||||
|
$cert_alias = "thawtepersonalbasicca";
|
||||||
|
}
|
||||||
|
elsif ($cert =~ /personal-premium/)
|
||||||
|
{
|
||||||
|
$cert_alias = "thawtepersonalpremiumca";
|
||||||
|
}
|
||||||
|
elsif ($cert =~ /server-certs/)
|
||||||
|
{
|
||||||
|
$cert_alias = "thawteserverca";
|
||||||
|
}
|
||||||
|
elsif ($cert =~ /premium-server/)
|
||||||
|
{
|
||||||
|
$cert_alias = "thawtepremiumserverca";
|
||||||
|
}
|
||||||
|
elsif ($cert =~ /Class 1 Public Primary Certification Authority$/)
|
||||||
|
{
|
||||||
|
$cert_alias = "verisignclass1ca";
|
||||||
|
}
|
||||||
|
elsif ($cert =~ /Class 1 Public Primary Certification Authority - G2/)
|
||||||
|
{
|
||||||
|
$cert_alias = "verisignclass1g2ca";
|
||||||
|
}
|
||||||
|
elsif ($cert =~
|
||||||
|
/VeriSign Class 1 Public Primary Certification Authority - G3/)
|
||||||
|
{
|
||||||
|
$cert_alias = "verisignclass1g3ca";
|
||||||
|
}
|
||||||
|
elsif ($cert =~ /Class 2 Public Primary Certification Authority$/)
|
||||||
|
{
|
||||||
|
$cert_alias = "verisignclass2ca";
|
||||||
|
}
|
||||||
|
elsif ($cert =~ /Class 2 Public Primary Certification Authority - G2/)
|
||||||
|
{
|
||||||
|
$cert_alias = "verisignclass2g2ca";
|
||||||
|
}
|
||||||
|
elsif ($cert =~
|
||||||
|
/VeriSign Class 2 Public Primary Certification Authority - G3/)
|
||||||
|
{
|
||||||
|
$cert_alias = "verisignclass2g3ca";
|
||||||
|
}
|
||||||
|
elsif ($cert =~ /Class 3 Public Primary Certification Authority$/)
|
||||||
|
{
|
||||||
|
$cert_alias = "verisignclass3ca";
|
||||||
|
}
|
||||||
|
# Version 1 of Class 3 Public Primary Certification Authority
|
||||||
|
# - G2 is added. Version 3 is excluded. See below.
|
||||||
|
elsif ($cert =~
|
||||||
|
/VeriSign Class 3 Public Primary Certification Authority - G3/)
|
||||||
|
{
|
||||||
|
$cert_alias = "verisignclass3g3ca";
|
||||||
|
}
|
||||||
|
elsif ($cert =~
|
||||||
|
/RSA Data Security.*Secure Server Certification Authority/)
|
||||||
|
{
|
||||||
|
$cert_alias = "verisignserverca";
|
||||||
|
}
|
||||||
|
elsif ($cert =~ /GTE CyberTrust Global Root/)
|
||||||
|
{
|
||||||
|
$cert_alias = "gtecybertrustglobalca";
|
||||||
|
}
|
||||||
|
elsif ($cert =~ /Baltimore CyberTrust Root/)
|
||||||
|
{
|
||||||
|
$cert_alias = "baltimorecybertrustca";
|
||||||
|
}
|
||||||
|
elsif ($cert =~ /www.entrust.net\/Client_CA_Info\/CPS/)
|
||||||
|
{
|
||||||
|
$cert_alias = "entrustclientca";
|
||||||
|
}
|
||||||
|
elsif ($cert =~ /www.entrust.net\/GCCA_CPS/)
|
||||||
|
{
|
||||||
|
$cert_alias = "entrustglobalclientca";
|
||||||
|
}
|
||||||
|
elsif ($cert =~ /www.entrust.net\/CPS_2048/)
|
||||||
|
{
|
||||||
|
$cert_alias = "entrust2048ca";
|
||||||
|
}
|
||||||
|
elsif ($cert =~ /www.entrust.net\/CPS /)
|
||||||
|
{
|
||||||
|
$cert_alias = "entrustsslca";
|
||||||
|
}
|
||||||
|
elsif ($cert =~ /www.entrust.net\/SSL_CPS/)
|
||||||
|
{
|
||||||
|
$cert_alias = "entrustgsslca";
|
||||||
|
}
|
||||||
|
elsif ($cert =~ /The Go Daddy Group/)
|
||||||
|
{
|
||||||
|
$cert_alias = "godaddyclass2ca";
|
||||||
|
}
|
||||||
|
elsif ($cert =~ /Starfield Class 2 Certification Authority/)
|
||||||
|
{
|
||||||
|
$cert_alias = "starfieldclass2ca";
|
||||||
|
}
|
||||||
|
elsif ($cert =~ /ValiCert Class 2 Policy Validation Authority/)
|
||||||
|
{
|
||||||
|
$cert_alias = "valicertclass2ca";
|
||||||
|
}
|
||||||
|
elsif ($cert =~ /GeoTrust Global CA$/)
|
||||||
|
{
|
||||||
|
$cert_alias = "geotrustglobalca";
|
||||||
|
}
|
||||||
|
elsif ($cert =~ /Equifax Secure Certificate Authority/)
|
||||||
|
{
|
||||||
|
$cert_alias = "equifaxsecureca";
|
||||||
|
}
|
||||||
|
elsif ($cert =~ /Equifax Secure eBusiness CA-1/)
|
||||||
|
{
|
||||||
|
$cert_alias = "equifaxsecureebusinessca1";
|
||||||
|
}
|
||||||
|
elsif ($cert =~ /Equifax Secure eBusiness CA-2/)
|
||||||
|
{
|
||||||
|
$cert_alias = "equifaxsecureebusinessca2";
|
||||||
|
}
|
||||||
|
elsif ($cert =~ /Equifax Secure Global eBusiness CA-1/)
|
||||||
|
{
|
||||||
|
$cert_alias = "equifaxsecureglobalebusinessca1";
|
||||||
|
}
|
||||||
|
elsif ($cert =~ /Sonera Class1 CA/)
|
||||||
|
{
|
||||||
|
$cert_alias = "soneraclass1ca";
|
||||||
|
}
|
||||||
|
elsif ($cert =~ /Sonera Class2 CA/)
|
||||||
|
{
|
||||||
|
$cert_alias = "soneraclass2ca";
|
||||||
|
}
|
||||||
|
elsif ($cert =~ /AAA Certificate Services/)
|
||||||
|
{
|
||||||
|
$cert_alias = "comodoaaaca";
|
||||||
|
}
|
||||||
|
elsif ($cert =~ /AddTrust Class 1 CA Root/)
|
||||||
|
{
|
||||||
|
$cert_alias = "addtrustclass1ca";
|
||||||
|
}
|
||||||
|
elsif ($cert =~ /AddTrust External CA Root/)
|
||||||
|
{
|
||||||
|
$cert_alias = "addtrustexternalca";
|
||||||
|
}
|
||||||
|
elsif ($cert =~ /AddTrust Qualified CA Root/)
|
||||||
|
{
|
||||||
|
$cert_alias = "addtrustqualifiedca";
|
||||||
|
}
|
||||||
|
elsif ($cert =~ /UTN-USERFirst-Hardware/)
|
||||||
|
{
|
||||||
|
$cert_alias = "utnuserfirsthardwareca";
|
||||||
|
}
|
||||||
|
elsif ($cert =~ /UTN-USERFirst-Client Authentication and Email/)
|
||||||
|
{
|
||||||
|
$cert_alias = "utnuserfirstclientauthemailca";
|
||||||
|
}
|
||||||
|
elsif ($cert =~ /UTN - DATACorp SGC/)
|
||||||
|
{
|
||||||
|
$cert_alias = "utndatacorpsgcca";
|
||||||
|
}
|
||||||
|
elsif ($cert =~ /UTN-USERFirst-Object/)
|
||||||
|
{
|
||||||
|
$cert_alias = "utnuserfirstobjectca";
|
||||||
|
}
|
||||||
|
elsif ($cert =~ /America Online Root Certification Authority 1/)
|
||||||
|
{
|
||||||
|
$cert_alias = "aolrootca1";
|
||||||
|
}
|
||||||
|
elsif ($cert =~ /DigiCert Assured ID Root CA/)
|
||||||
|
{
|
||||||
|
$cert_alias = "digicertassuredidrootca";
|
||||||
|
}
|
||||||
|
elsif ($cert =~ /DigiCert Global Root CA/)
|
||||||
|
{
|
||||||
|
$cert_alias = "digicertglobalrootca";
|
||||||
|
}
|
||||||
|
elsif ($cert =~ /DigiCert High Assurance EV Root CA/)
|
||||||
|
{
|
||||||
|
$cert_alias = "digicerthighassuranceevrootca";
|
||||||
|
}
|
||||||
|
elsif ($cert =~ /GlobalSign Root CA$/)
|
||||||
|
{
|
||||||
|
$cert_alias = "globalsignca";
|
||||||
|
}
|
||||||
|
elsif ($cert =~ /GlobalSign Root CA - R2/)
|
||||||
|
{
|
||||||
|
$cert_alias = "globalsignr2ca";
|
||||||
|
}
|
||||||
|
elsif ($cert =~ /Elektronik.*Kas.*2005/)
|
||||||
|
{
|
||||||
|
$cert_alias = "extra-elektronikkas2005";
|
||||||
|
}
|
||||||
|
elsif ($cert =~ /Elektronik/)
|
||||||
|
{
|
||||||
|
$cert_alias = "extra-elektronik2005";
|
||||||
|
}
|
||||||
|
# Mozilla does not provide these certificates:
|
||||||
|
# baltimorecodesigningca
|
||||||
|
# gtecybertrust5ca
|
||||||
|
# trustcenterclass2caii
|
||||||
|
# trustcenterclass4caii
|
||||||
|
# trustcenteruniversalcai
|
||||||
|
else
|
||||||
|
{
|
||||||
|
# Generate an alias using the OU and CN attributes of the
|
||||||
|
# Issuer field if both are present, otherwise use only the
|
||||||
|
# CN attribute. The Issuer field must have either the OU
|
||||||
|
# or the CN attribute.
|
||||||
|
$_ = $cert;
|
||||||
|
if ($cert =~ /OU=/)
|
||||||
|
{
|
||||||
|
s/Issuer:.*?OU=//;
|
||||||
|
# Remove other occurrences of OU=.
|
||||||
|
s/OU=.*CN=//;
|
||||||
|
# Remove CN= if there were not other occurrences of OU=.
|
||||||
|
s/CN=//;
|
||||||
|
s/\/emailAddress.*//;
|
||||||
|
s/Certificate Authority/ca/g;
|
||||||
|
s/Certification Authority/ca/g;
|
||||||
|
}
|
||||||
|
elsif ($cert =~ /CN=/)
|
||||||
|
{
|
||||||
|
s/Issuer:.*CN=//;
|
||||||
|
s/\/emailAddress.*//;
|
||||||
|
s/Certificate Authority/ca/g;
|
||||||
|
s/Certification Authority/ca/g;
|
||||||
|
}
|
||||||
|
s/\W//g;
|
||||||
|
tr/A-Z/a-z/;
|
||||||
|
$cert_alias = "extra-$_";
|
||||||
|
|
||||||
|
}
|
||||||
|
while (-e "$cert_alias.pem")
|
||||||
|
{
|
||||||
|
$cert_alias = "$cert_alias" . "_";
|
||||||
|
}
|
||||||
|
}
|
||||||
|
# When it attempts to parse:
|
||||||
|
#
|
||||||
|
# Class 3 Public Primary Certification Authority - G2, Version 3
|
||||||
|
#
|
||||||
|
# keytool says:
|
||||||
|
#
|
||||||
|
# #2: ObjectId: 1.3.6.1.5.5.7.1.1 Criticality=false
|
||||||
|
# Unparseable AuthorityInfoAccess extension due to
|
||||||
|
# java.io.IOException: Invalid encoding of URI
|
||||||
|
#
|
||||||
|
# If we do not exclude this file
|
||||||
|
# openjdk/jdk/test/lib/security/cacerts/VerifyCACerts.java fails
|
||||||
|
# on this cert, printing:
|
||||||
|
#
|
||||||
|
# Couldn't verify: java.security.SignatureException: Signature
|
||||||
|
# does not match.
|
||||||
|
#
|
||||||
|
elsif ($cert =~
|
||||||
|
/A6:0F:34:C8:62:6C:81:F6:8B:F7:7D:A9:F6:67:58:8A:90:3F:7D:36/)
|
||||||
|
{
|
||||||
|
$write_current_cert = 0;
|
||||||
|
$pem_file_count--;
|
||||||
|
}
|
||||||
|
elsif ($cert eq "-----BEGIN CERTIFICATE-----\n")
|
||||||
|
{
|
||||||
|
if ($in_cert_block != 0)
|
||||||
|
{
|
||||||
|
die "$file is malformed.";
|
||||||
|
}
|
||||||
|
$in_cert_block = 1;
|
||||||
|
if ($write_current_cert == 1)
|
||||||
|
{
|
||||||
|
$pem_file_count++;
|
||||||
|
if (-e "$cert_alias.pem")
|
||||||
|
{
|
||||||
|
print "$cert_alias";
|
||||||
|
die "already exists"
|
||||||
|
}
|
||||||
|
open(PEM, ">$cert_alias.pem");
|
||||||
|
print PEM $cert;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
elsif ($cert eq "-----END CERTIFICATE-----\n")
|
||||||
|
{
|
||||||
|
$in_cert_block = 0;
|
||||||
|
if ($write_current_cert == 1)
|
||||||
|
{
|
||||||
|
print PEM $cert;
|
||||||
|
close(PEM);
|
||||||
|
}
|
||||||
|
$write_current_cert = 1
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
if ($in_cert_block == 1 && $write_current_cert == 1)
|
||||||
|
{
|
||||||
|
print PEM $cert;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
# Check that the correct number of .pem files were produced.
|
||||||
|
@pem_files = <*.pem>;
|
||||||
|
if (@pem_files != $pem_file_count)
|
||||||
|
{
|
||||||
|
print "$pem_file_count";
|
||||||
|
die "Number of .pem files produced does not match".
|
||||||
|
" number of certs read from $file.";
|
||||||
|
}
|
||||||
|
|
||||||
|
# Now store each cert in the 'cacerts' file using keytool.
|
||||||
|
$certs_written_count = 0;
|
||||||
|
foreach $pem_file (@pem_files)
|
||||||
|
{
|
||||||
|
system "$ARGV[0] -noprompt -import".
|
||||||
|
" -alias `basename $pem_file .pem`".
|
||||||
|
" -keystore cacerts -storepass 'changeit' -file $pem_file";
|
||||||
|
unlink($pem_file);
|
||||||
|
$certs_written_count++;
|
||||||
|
}
|
||||||
|
|
||||||
|
# Check that the correct number of certs were added to the keystore.
|
||||||
|
if ($certs_written_count != $pem_file_count)
|
||||||
|
{
|
||||||
|
die "Number of certs added to keystore does not match".
|
||||||
|
" number of certs read from $file.";
|
||||||
|
}
|
|
@ -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"
|
|
@ -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"
|
|
@ -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"
|
|
@ -0,0 +1,29 @@
|
||||||
|
<?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>
|
||||||
|
</pkgmetadata>
|
|
@ -0,0 +1,264 @@
|
||||||
|
# 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"
|
||||||
|
|
||||||
|
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/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
|
||||||
|
javafx? ( dev-java/openjfx:${SLOT} )
|
||||||
|
|| (
|
||||||
|
dev-java/openjdk-bin:${SLOT}
|
||||||
|
dev-java/openjdk:${SLOT}
|
||||||
|
dev-java/openjdk-bin:$((SLOT-1))
|
||||||
|
dev-java/openjdk:$((SLOT-1))
|
||||||
|
)
|
||||||
|
"
|
||||||
|
|
||||||
|
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}"
|
||||||
|
|
||||||
|
# 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
|
||||||
|
has ccache ${FEATURES} && die "FEATURES=ccache doesn't work with ${PN}"
|
||||||
|
}
|
||||||
|
|
||||||
|
pkg_setup() {
|
||||||
|
openjdk_check_requirements
|
||||||
|
java-vm-2_pkg_setup
|
||||||
|
|
||||||
|
JAVA_PKG_WANT_BUILD_VM="openjdk-${SLOT} openjdk-bin-${SLOT} openjdk-$((SLOT-1)) openjdk-bin-$((SLOT-1))"
|
||||||
|
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
|
||||||
|
|
||||||
|
# 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="${PV}"
|
||||||
|
--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)
|
||||||
|
)
|
||||||
|
|
||||||
|
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() {
|
||||||
|
emake -j1 \
|
||||||
|
$(usex doc docs '') \
|
||||||
|
$(usex jbootstrap bootcycle-images product-images) \
|
||||||
|
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
|
||||||
|
|
||||||
|
# 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
|
||||||
|
|
||||||
|
mv lib/security/cacerts lib/security/cacerts.orig || die
|
||||||
|
|
||||||
|
dodir "${dest}"
|
||||||
|
cp -pPR * "${ddest}" || die
|
||||||
|
|
||||||
|
dosym "${EPREFIX}"/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
|
||||||
|
insinto /usr/share/doc/"${PF}"/html
|
||||||
|
doins -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 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
|
||||||
|
}
|
|
@ -0,0 +1,271 @@
|
||||||
|
# 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 ~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}
|
||||||
|
dev-java/openjdk-bin:$((SLOT-1))
|
||||||
|
dev-java/openjdk:$((SLOT-1))
|
||||||
|
)
|
||||||
|
"
|
||||||
|
|
||||||
|
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}"
|
||||||
|
|
||||||
|
# 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
|
||||||
|
has ccache ${FEATURES} && die "FEATURES=ccache doesn't work with ${PN}"
|
||||||
|
}
|
||||||
|
|
||||||
|
pkg_setup() {
|
||||||
|
openjdk_check_requirements
|
||||||
|
java-vm-2_pkg_setup
|
||||||
|
|
||||||
|
JAVA_PKG_WANT_BUILD_VM="openjdk-${SLOT} openjdk-bin-${SLOT} openjdk-$((SLOT-1)) openjdk-bin-$((SLOT-1))"
|
||||||
|
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
|
||||||
|
|
||||||
|
# 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="${PV}"
|
||||||
|
--with-version-pre=""
|
||||||
|
--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)
|
||||||
|
)
|
||||||
|
|
||||||
|
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 "${EPREFIX}"/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
|
||||||
|
insinto /usr/share/doc/"${PF}"/html
|
||||||
|
doins -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
|
||||||
|
}
|
|
@ -0,0 +1,256 @@
|
||||||
|
# Copyright 1999-2019 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
|
||||||
|
|
||||||
|
MY_PV=${PV/_p/+}
|
||||||
|
SLOT=${MY_PV%%[.+]*}
|
||||||
|
|
||||||
|
BASE_URI="https://hg.${PN}.java.net/jdk-updates/jdk9u"
|
||||||
|
|
||||||
|
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"
|
||||||
|
KEYWORDS="~amd64 ~arm64"
|
||||||
|
IUSE="alsa debug cups doc examples gentoo-vm 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}
|
||||||
|
dev-java/openjdk-bin:$((SLOT-1))
|
||||||
|
dev-java/icedtea-bin:$((SLOT-1))
|
||||||
|
dev-java/openjdk:$((SLOT-1))
|
||||||
|
dev-java/icedtea:$((SLOT-1))
|
||||||
|
)
|
||||||
|
"
|
||||||
|
|
||||||
|
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 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
|
||||||
|
has ccache ${FEATURES} && die "FEATURES=ccache doesn't work with ${PN}"
|
||||||
|
}
|
||||||
|
|
||||||
|
pkg_setup() {
|
||||||
|
openjdk_check_requirements
|
||||||
|
java-vm-2_pkg_setup
|
||||||
|
|
||||||
|
JAVA_PKG_WANT_BUILD_VM="openjdk-${SLOT} openjdk-bin-${SLOT} icedtea-bin-$((SLOT-1)) icedtea-${SLOT} icedtea-bin-${SLOT} openjdk-$((SLOT-1)) openjdk-bin-$((SLOT-1)) icedtea-$((SLOT-1))"
|
||||||
|
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
|
||||||
|
local repo
|
||||||
|
for repo in corba hotspot jdk jaxp jaxws langtools nashorn; do
|
||||||
|
ln -s ../"${repo}-jdk-${MY_PV}" "${repo}" || die
|
||||||
|
done
|
||||||
|
|
||||||
|
# https://bugs.openjdk.java.net/browse/JDK-8201788
|
||||||
|
epatch "${FILESDIR}/bootcycle_jobs.patch"
|
||||||
|
}
|
||||||
|
|
||||||
|
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
|
||||||
|
|
||||||
|
local myconf=(
|
||||||
|
--disable-ccache
|
||||||
|
--disable-warnings-as-errors
|
||||||
|
--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-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/jdk || 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 lib/src.zip || die
|
||||||
|
fi
|
||||||
|
|
||||||
|
dodir "${dest}"
|
||||||
|
cp -pPR * "${ddest}" || die
|
||||||
|
|
||||||
|
dosym "${EPREFIX}"/etc/ssl/certs/java/cacerts "${dest}"/jre/lib/security/cacerts
|
||||||
|
|
||||||
|
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/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
|
||||||
|
}
|
|
@ -0,0 +1 @@
|
||||||
|
masters = gentoo
|
|
@ -0,0 +1 @@
|
||||||
|
openjdk 11 bootstrap
|
Loading…
Reference in New Issue