diff options
Diffstat (limited to 'dev-java/openjdk')
-rw-r--r-- | dev-java/openjdk/Manifest | 15 | ||||
-rw-r--r-- | dev-java/openjdk/files/generate-cacerts.pl | 358 | ||||
-rw-r--r-- | dev-java/openjdk/files/openjdk-8.env.sh | 16 | ||||
-rw-r--r-- | dev-java/openjdk/metadata.xml | 33 | ||||
-rw-r--r-- | dev-java/openjdk/openjdk-11.0.2_p7.ebuild | 1 | ||||
-rw-r--r-- | dev-java/openjdk/openjdk-8.202_p08.ebuild | 241 |
6 files changed, 649 insertions, 15 deletions
diff --git a/dev-java/openjdk/Manifest b/dev-java/openjdk/Manifest index 2ee6d0d48cf5..d5a86ba2b7d2 100644 --- a/dev-java/openjdk/Manifest +++ b/dev-java/openjdk/Manifest @@ -1,6 +1,17 @@ +AUX generate-cacerts.pl 11051 BLAKE2B e6d54319153735bd4b445581dfbd2b78e2e27a19f3b8a78d2fe6912efa207d133fa550652295648bc0bd1370956f71374d4b42de71776fa253f44d4e9dff2527 SHA512 22d1be675362c09ed61af4dc3ece14cab81e9514937d588ff5d324e61b7eba7d3dd99b26bc5ec0953365de56d099f708b2afdb13cca37bc4ff07fd8ce31fbe97 AUX openjdk-11.env.sh 537 BLAKE2B 404aeaf3d4df54b66193b8e09521ad2e55a23dc0603beea9911e4c91ab96e30c0f4aa4a0e96b1982874e055af3b9923689657b58dc02b37f91163659343ed2f9 SHA512 f4a41891b0187048a21b1af43053375e62de249e3ba210c3cfd59178c9f4c667ff83f10ee85f9ae37db097e862ff7233f5136569d0cb1399dbf48cea075cfc6e +AUX openjdk-8.env.sh 746 BLAKE2B b8a18bb5e2dd3c4722b78531428d4291236a6295973fdcd65c64469b3a49a520686ff8d884c0b3d5dd9017ff4027d2fc1d78d57f062a4cf8910e0bab3ed444cc SHA512 2c65d1875406deabbfadb798501de15850775a4a049f073cdfda684ca1bff4b531b93596ee91a7caf77ff6c377457093f72c7bde4b995bce9ffbc4a8fcceb6dd DIST jdk-11.0.1+13.tar.bz2 90134818 BLAKE2B c79f32dc5b531a06317afb87ef15495267e914b9b292a1d434514a90298d8234e7e0ba92659416b15d9392c7513d976a0c81411953cb6706a27ee57c965e36fb SHA512 c534c2fa8dcd4fdebef6f00473d5ceaae4a33bd1e1a417846508e25f154b1ded649a73468c8c71ac0c1e27bab5f641a3b480a264b532a0c30be2869c3d11a15d DIST jdk-11.0.2+7.tar.bz2 90189455 BLAKE2B 37473a8db4c6ad6789ea67b44f4dda94b9f59143c681a206aa0931b3a2a376fbc480c0c5a6b617072cf9ce1faca34a6c5c5e56cfec9fbf5482b82520fb2463c4 SHA512 03214d9fc920c04f3057594efa78ff588a630e6c594e5bbcc24b4c327fa08273ce060063d98720cdc04bc6978a3d04e172f38ba7a3bcabf02dd5dad397fd9952 +DIST openjdk-8.202_p08.tar.bz2 449202 BLAKE2B 8f7442918c083e94cda0e029cf2348dd9242653027f84d66deebe162e0928b2c6a86d3f273ba235bad5e5656f2b109e6521aaccfa81332fea92873d008ac0c0d SHA512 586713b889dd60c7dc65fccd39ef3ddd985ebb95a7c6c1feaef3c8d76fd1d929bbf19a99f72274c1afb77bd7f80b581d44add4aa232358d8951f7cc5befb43d0 +DIST openjdk-corba-8.202_p08.tar.bz2 1033539 BLAKE2B 9cbe20fb771157142329db037866ec7d67ff7e70318bec8b74034ce59574cd730975f0e7a3d6b88fc946b1d340558a92ca867639765a205883481fd071d7059e SHA512 9b25132c76f559055698c52888f6cae287096e05b89541cb8e445b46a488126a38e58d4f28649e277862eac7aa20f75f64dbcdcf56c900dcb0530a9545c4f717 +DIST openjdk-hotspot-8.202_p08.tar.bz2 7918616 BLAKE2B a35cedf99a5067896dc498d4baa9b10f4ceb1ffcf946632b578c45d6354e4d025d82462797e56773507e504e5e25a25cdf63485460f9a8df234474a2e110f91a SHA512 ab53e77a4081a34c250750d7b975f790936cf370e81807d0081b006a12c0ceb452f54bd40cc8085a9f16047d270b9b610ee777f6fcd1431ff9d77461c32db464 +DIST openjdk-jaxp-8.202_p08.tar.bz2 2733553 BLAKE2B 53341136b427152115ea0d4f758228090a607270104c88ebb61bc442ddd51a43cfed03c34660a47ab55bb601e1a9d8bf4fcdab05874bf0a5ada33b1ecb60df45 SHA512 9671fb56b6127359376cc2f85d91eb027fb1df1f808e36abbe3a1265d88d50809c34d73b84f52fb6e058ef78017d8d7a24bd097a9d720ad70a6861aa9fcc80f2 +DIST openjdk-jaxws-8.202_p08.tar.bz2 2541554 BLAKE2B a92aae4290e1901b736a6a93aed3b8c4bca14046a1f3eb9939ea9bf8ae0cd09785cf37045a8274641f13e543b49114ff158b9bc0cdd58163b42791e952ac76d0 SHA512 ce385f247a57695f716894137d868fa492d610776d120966c86b741688d6df54ae9538da7cf7b9530212a288ac4ff0d156e09bd5d01305b8165b939fa518fede +DIST openjdk-jdk-8.202_p08.tar.bz2 46618401 BLAKE2B e73b1341b837a0983ded4b4969ce83f9b77283e1d4d51e8d31a1b7401961a0b78943a41d2fe0aa724d85ac93dc3082511bcea341e87daecd070278ae59c8f240 SHA512 20e6747b506091383166298aeed6ff4ffd9deb92f20765ef839bf46d3ecae6b1aa218eb6857e6541df0522b8d571379341e94eb5bef765a1164cf9f59b20dfac +DIST openjdk-langtools-8.202_p08.tar.bz2 2392880 BLAKE2B 45ebebe4864e3274e14cf27986cd96facfe2f8e5c1292344e05743d1448f95367caf0f68886c506ce10435fbf53948c6b9f7087ad5d2cd090cf0f1becb962843 SHA512 a1e1c3dc06b3a58082e1d67d58ffeaf0bc3c5534fd1ba368e835a54d3c6ba9232e277ae685ed3ff5ccdf3cd7fe0612ad78a08ed55d1d2d06de54914a19377907 +DIST openjdk-nashorn-8.202_p08.tar.bz2 2854026 BLAKE2B 05ba828160270e52f27023db83b1ffc4e6611b7a74b300a93a6d476f319a265834b48c7de57b0d3bea502d88279e72fd9cfbc5f3eb0e719650e34e82ba4a3d09 SHA512 bea0eaa4b2247cf1e5ee33613754c8f2f6ffe074a7be562f26e63c6327f56d67f60d4877dd363ed8a812689db1d837f5c257637460e247a1592c3258f3add11b EBUILD openjdk-11.0.1_p13.ebuild 6401 BLAKE2B 86381bd59fe75ed46ea61be83ab4472d159ebc3fc8e4e8c0002d3ea466ec00698f596c42e00ae7be917f99d3fb3ae29f1cfdc210bcfd6c8356190b43c94e54b9 SHA512 14e99b33160524651ae00cf05d99fc15ae256cdd58c9819b5989cdda26ac69b867bb65446b800d400def2651f191b3d06682f5ab9cbed8f50cb68bab6e1019a0 -EBUILD openjdk-11.0.2_p7.ebuild 5815 BLAKE2B 654c041720ff2ca3fac23832b8f848cad3819d09c15b0d6da1d46afb9d1b75c6005e1931b77971a4e806a1fb4dfd919605a886090800063a37eb2ea5aafcecc9 SHA512 65d119936667ae3bf2ae9106b99180fc0fc6be30e905bd2f5bcf96c430374412fdf831dc7a698543abec23c3acc8ae1ea3790d7efb8b010d776c49d033742b28 -MISC metadata.xml 955 BLAKE2B 5fcc3e2073db70e6c79ad69c8d3cdc516393d4f0bb18e89a5801ce45afc55a90584d6f65389cbb75b1b81e1bccbfddfa2edc54aef2dbfa8c65ec54087e3a11c2 SHA512 07e908b635f563d116e8dcb8ad9f550f679168c6d548732dca0090424f6caef5c849fcf64036e8732884e190cbbe125097eb3f5ef8ec65b54ad86ed1f1893331 +EBUILD openjdk-11.0.2_p7.ebuild 5837 BLAKE2B 70ccbac8b0d761c691375714e75b299ad9079de6be73d4fcb1b3cc3690480866aa4679eaaa8b6311af6998c55ed4a2ead9123761b1bbc1881fe3fc219ee1d4e3 SHA512 294573e65014e862e13c4ae825719d64fe52e4573c815a076f9de46467943f0a784b8c3cd6e350efc558c2cafa68a933cf4f794553d782a83978bfc83bf85fc9 +EBUILD openjdk-8.202_p08.ebuild 6938 BLAKE2B 6f4013686ad8ad489add5c0aebceb8fcd41944c37adf483155a6530dd2c793a01fcfc91ba7064896e76a8bdd25b25b794f5e9ef44bcdb128cbf44d4b3b735430 SHA512 9d53773195477dc20fac334195a52abde5c633fc4bf4859eefa5645f0b2ba17bdbe20b649a85c147cc7908d914e9f9b73d2e3e6be1bba0e4ec0027235cf092f1 +MISC metadata.xml 1053 BLAKE2B bc7d07c481cee341f2778eef806dae3484592c5c8ca8e015ab4cca6dc64b8d225e1eff1f03f9c7b4d06751282e566624644348eece51dbb03a603b960b6ed84d SHA512 4a749d32cf21c2a517558c2e06ed9e5cd2470db8ba758847f727a8da82252a209e00c3d23f8896d5fb99aeb4f07df8717764a2f52c81261050b88dc91b61dab7 diff --git a/dev-java/openjdk/files/generate-cacerts.pl b/dev-java/openjdk/files/generate-cacerts.pl new file mode 100644 index 000000000000..17d29b36676d --- /dev/null +++ b/dev-java/openjdk/files/generate-cacerts.pl @@ -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."; +} 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 index efa076c6f48e..e75b49c2ec09 100644 --- a/dev-java/openjdk/metadata.xml +++ b/dev-java/openjdk/metadata.xml @@ -1,17 +1,24 @@ <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd"> <pkgmetadata> - <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> - <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="jbootstrap">Build OpenJDK twice, the second time using the result of the first</flag> - <flag name="source">Install JVM sources</flag> - <flag name="systemtap">Enable SystemTAP/DTrace tracing</flag> - <flag name="webstart">Provide javaws command through symlink to icedtea-web</flag> - </use> + <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> + <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="jbootstrap">Build OpenJDK twice, the second time using the result of the first</flag> + <flag name="source">Install JVM sources</flag> + <flag name="systemtap">Enable SystemTAP/DTrace tracing</flag> + <flag name="webstart">Provide javaws command through symlink to icedtea-web</flag> + </use> </pkgmetadata> diff --git a/dev-java/openjdk/openjdk-11.0.2_p7.ebuild b/dev-java/openjdk/openjdk-11.0.2_p7.ebuild index 1a48fa81cb9c..f546f4783e35 100644 --- a/dev-java/openjdk/openjdk-11.0.2_p7.ebuild +++ b/dev-java/openjdk/openjdk-11.0.2_p7.ebuild @@ -107,6 +107,7 @@ pkg_setup() { JDK_HOME=${JDK_HOME#*/} JDK_HOME=${EPREFIX}/opt/${JDK_HOME%-r*} export JDK_HOME + unset _JAVA_OPTIONS fi } diff --git a/dev-java/openjdk/openjdk-8.202_p08.ebuild b/dev-java/openjdk/openjdk-8.202_p08.ebuild new file mode 100644 index 000000000000..b0ad1d7bd36e --- /dev/null +++ b/dev-java/openjdk/openjdk-8.202_p08.ebuild @@ -0,0 +1,241 @@ +# 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=$(ver_rs 1 'u' 2 '-' ${PV//p/b}) + +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 ~arm64 ~ppc64 ~x86" +IUSE="alsa debug cups doc examples gentoo-vm headless-awt +jbootstrap nsplugin +pch selinux source +webstart" + +CDEPEND=" + media-libs/freetype:2= + sys-libs/zlib + alsa? ( media-libs/alsa-lib ) + !headless-awt? ( + media-libs/giflib:0/7 + x11-libs/libX11 + x11-libs/libXext + x11-libs/libXi + x11-libs/libXrender + x11-libs/libXt + x11-libs/libXtst + ) +" + +RDEPEND=" + ${CDEPEND} + cups? ( net-print/cups ) + selinux? ( sec-policy/selinux-java ) +" + +# cups headers requied to build, runtime dep is optional +DEPEND=" + ${CDEPEND} + net-print/cups + app-arch/zip + app-misc/ca-certificates + dev-lang/perl + dev-libs/openssl:0 + media-libs/alsa-lib + !headless-awt? ( + x11-base/xorg-proto + ) + || ( + 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}" + +# 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 +} + +pkg_setup() { + openjdk_check_requirements + java-vm-2_pkg_setup + + 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}" + + # The nastiness below is necessary while the gentoo-vm USE flag is + # masked. First we call java-pkg-2_pkg_setup if it looks like the + # flag was unmasked against one of the possible build VMs. If not, + # we try finding one of them in their expected locations. This would + # have been slightly less messy if openjdk-bin had been installed to + # /opt/${PN}-${SLOT} or if there was a mechanism to install a VM env + # file but disable it so that it would not normally be selectable. + + local vm + for vm in ${JAVA_PKG_WANT_BUILD_VM}; do + if [[ -d ${EPREFIX}/usr/lib/jvm/${vm} ]]; then + java-pkg-2_pkg_setup + return + fi + done + + if has_version --host-root dev-java/openjdk:${SLOT}; then + export JDK_HOME=${EPREFIX}/usr/$(get_libdir)/openjdk-${SLOT} + else + JDK_HOME=$(best_version --host-root dev-java/openjdk-bin:${SLOT}) + [[ -n ${JDK_HOME} ]] || die "Build VM not found!" + JDK_HOME=${JDK_HOME#*/} + JDK_HOME=${EPREFIX}/opt/${JDK_HOME%-r*} + export JDK_HOME + unset _JAVA_OPTIONS + 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 +} + +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 + + append-flags -Wno-error + + 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="$(ver_cut 4)" + --with-milestone="gentoo" + --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 JAVAC XARGS + CFLAGS= CXXFLAGS= LDFLAGS= \ + CONFIG_SITE=/dev/null \ + econf "${myconf[@]}" + ) +} + +src_compile() { + emake -j1 LOG=debug JOBS=$(makeopts_jobs)\ + $(usex jbootstrap bootcycle-images images) $(usex doc docs '') +} + +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 + + 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 + + einfo "Generating cacerts file from certificates in ${EPREFIX}/usr/share/ca-certificates/" + mkdir "${T}/certgen" && cd "${T}/certgen" || die + cp "${FILESDIR}/generate-cacerts.pl" . && chmod +x generate-cacerts.pl || die + for c in "${EPREFIX}"/usr/share/ca-certificates/*/*.crt; do + openssl x509 -text -in "${c}" >> all.crt || die + done + ./generate-cacerts.pl "${ddest}/bin/keytool" all.crt || die + cp -vRP cacerts "${ddest}/jre/lib/security/" || die + chmod 644 "${ddest}/jre/lib/security/cacerts" || die + + use gentoo-vm && java-vm_install-env "${FILESDIR}"/${PN}-${SLOT}.env.sh + java-vm_set-pax-markings "${ddest}" + java-vm_revdep-mask + java-vm_sandbox-predict /dev/random /proc/self/coredump_filter + + if use doc ; then + insinto /usr/share/doc/${PF}/html + doins -r "${S}"/build/*-release/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 +} |