corretto / corretto-8

Amazon Corretto 8 is a no-cost, multi-platform, production-ready distribution of OpenJDK 8
GNU General Public License v2.0
2.1k stars 221 forks source link

Corretto-8 Preview JDK RPM, Appears to be just a JRE #25

Closed lordbuddha closed 5 years ago

lordbuddha commented 5 years ago

Downloaded the rpm for the JDK, from https://docs.aws.amazon.com/corretto/latest/corretto-8-ug/downloads-list.html

but extracting that rpm via cpio seems to show its just JRE and not a JDK at all.

See, no javac :-

~/Downloads$ rpm2cpio java-1.8.0-amazon-corretto-1.8.0_192.b12-1.amzn2.x86_64.rpm | cpio -idmv ./usr/lib/jvm/java-1.8.0-amazon-corretto.x86_64/jre/ASSEMBLY_EXCEPTION ./usr/lib/jvm/java-1.8.0-amazon-corretto.x86_64/jre/LICENSE ./usr/lib/jvm/java-1.8.0-amazon-corretto.x86_64/jre/THIRD_PARTY_README ./usr/lib/jvm/java-1.8.0-amazon-corretto.x86_64/jre/bin ./usr/lib/jvm/java-1.8.0-amazon-corretto.x86_64/jre/bin/java ./usr/lib/jvm/java-1.8.0-amazon-corretto.x86_64/jre/bin/jjs ./usr/lib/jvm/java-1.8.0-amazon-corretto.x86_64/jre/bin/keytool ./usr/lib/jvm/java-1.8.0-amazon-corretto.x86_64/jre/bin/orbd ./usr/lib/jvm/java-1.8.0-amazon-corretto.x86_64/jre/bin/pack200 ./usr/lib/jvm/java-1.8.0-amazon-corretto.x86_64/jre/bin/policytool ./usr/lib/jvm/java-1.8.0-amazon-corretto.x86_64/jre/bin/rmid ./usr/lib/jvm/java-1.8.0-amazon-corretto.x86_64/jre/bin/rmiregistry ./usr/lib/jvm/java-1.8.0-amazon-corretto.x86_64/jre/bin/servertool ./usr/lib/jvm/java-1.8.0-amazon-corretto.x86_64/jre/bin/tnameserv ./usr/lib/jvm/java-1.8.0-amazon-corretto.x86_64/jre/bin/unpack200 ./usr/lib/jvm/java-1.8.0-amazon-corretto.x86_64/jre/lib ./usr/lib/jvm/java-1.8.0-amazon-corretto.x86_64/jre/lib/amd64 ./usr/lib/jvm/java-1.8.0-amazon-corretto.x86_64/jre/lib/amd64/jli ./usr/lib/jvm/java-1.8.0-amazon-corretto.x86_64/jre/lib/amd64/jli/libjli.so ./usr/lib/jvm/java-1.8.0-amazon-corretto.x86_64/jre/lib/amd64/jvm.cfg ./usr/lib/jvm/java-1.8.0-amazon-corretto.x86_64/jre/lib/amd64/libattach.so ./usr/lib/jvm/java-1.8.0-amazon-corretto.x86_64/jre/lib/amd64/libawt.so ./usr/lib/jvm/java-1.8.0-amazon-corretto.x86_64/jre/lib/amd64/libawt_headless.so ./usr/lib/jvm/java-1.8.0-amazon-corretto.x86_64/jre/lib/amd64/libawt_xawt.so ./usr/lib/jvm/java-1.8.0-amazon-corretto.x86_64/jre/lib/amd64/libdecora_sse.so ./usr/lib/jvm/java-1.8.0-amazon-corretto.x86_64/jre/lib/amd64/libdt_socket.so ./usr/lib/jvm/java-1.8.0-amazon-corretto.x86_64/jre/lib/amd64/libfontmanager.so ./usr/lib/jvm/java-1.8.0-amazon-corretto.x86_64/jre/lib/amd64/libglass.so ./usr/lib/jvm/java-1.8.0-amazon-corretto.x86_64/jre/lib/amd64/libhprof.so ./usr/lib/jvm/java-1.8.0-amazon-corretto.x86_64/jre/lib/amd64/libinstrument.so ./usr/lib/jvm/java-1.8.0-amazon-corretto.x86_64/jre/lib/amd64/libj2gss.so ./usr/lib/jvm/java-1.8.0-amazon-corretto.x86_64/jre/lib/amd64/libj2pcsc.so ./usr/lib/jvm/java-1.8.0-amazon-corretto.x86_64/jre/lib/amd64/libj2pkcs11.so ./usr/lib/jvm/java-1.8.0-amazon-corretto.x86_64/jre/lib/amd64/libjaas_unix.so ./usr/lib/jvm/java-1.8.0-amazon-corretto.x86_64/jre/lib/amd64/libjava.so ./usr/lib/jvm/java-1.8.0-amazon-corretto.x86_64/jre/lib/amd64/libjava_crw_demo.so ./usr/lib/jvm/java-1.8.0-amazon-corretto.x86_64/jre/lib/amd64/libjavafx_font.so ./usr/lib/jvm/java-1.8.0-amazon-corretto.x86_64/jre/lib/amd64/libjavafx_font_freetype.so ./usr/lib/jvm/java-1.8.0-amazon-corretto.x86_64/jre/lib/amd64/libjavafx_font_pango.so ./usr/lib/jvm/java-1.8.0-amazon-corretto.x86_64/jre/lib/amd64/libjavafx_iio.so ./usr/lib/jvm/java-1.8.0-amazon-corretto.x86_64/jre/lib/amd64/libjawt.so ./usr/lib/jvm/java-1.8.0-amazon-corretto.x86_64/jre/lib/amd64/libjdwp.so ./usr/lib/jvm/java-1.8.0-amazon-corretto.x86_64/jre/lib/amd64/libjpeg.so ./usr/lib/jvm/java-1.8.0-amazon-corretto.x86_64/jre/lib/amd64/libjsdt.so ./usr/lib/jvm/java-1.8.0-amazon-corretto.x86_64/jre/lib/amd64/libjsig.so ./usr/lib/jvm/java-1.8.0-amazon-corretto.x86_64/jre/lib/amd64/libjsound.so ./usr/lib/jvm/java-1.8.0-amazon-corretto.x86_64/jre/lib/amd64/libjsoundalsa.so ./usr/lib/jvm/java-1.8.0-amazon-corretto.x86_64/jre/lib/amd64/liblcms.so ./usr/lib/jvm/java-1.8.0-amazon-corretto.x86_64/jre/lib/amd64/libmanagement.so ./usr/lib/jvm/java-1.8.0-amazon-corretto.x86_64/jre/lib/amd64/libmlib_image.so ./usr/lib/jvm/java-1.8.0-amazon-corretto.x86_64/jre/lib/amd64/libnet.so ./usr/lib/jvm/java-1.8.0-amazon-corretto.x86_64/jre/lib/amd64/libnio.so ./usr/lib/jvm/java-1.8.0-amazon-corretto.x86_64/jre/lib/amd64/libnpt.so ./usr/lib/jvm/java-1.8.0-amazon-corretto.x86_64/jre/lib/amd64/libprism_common.so ./usr/lib/jvm/java-1.8.0-amazon-corretto.x86_64/jre/lib/amd64/libprism_es2.so ./usr/lib/jvm/java-1.8.0-amazon-corretto.x86_64/jre/lib/amd64/libprism_sw.so ./usr/lib/jvm/java-1.8.0-amazon-corretto.x86_64/jre/lib/amd64/libsaproc.so ./usr/lib/jvm/java-1.8.0-amazon-corretto.x86_64/jre/lib/amd64/libsctp.so ./usr/lib/jvm/java-1.8.0-amazon-corretto.x86_64/jre/lib/amd64/libsplashscreen.so ./usr/lib/jvm/java-1.8.0-amazon-corretto.x86_64/jre/lib/amd64/libsunec.so ./usr/lib/jvm/java-1.8.0-amazon-corretto.x86_64/jre/lib/amd64/libunpack.so ./usr/lib/jvm/java-1.8.0-amazon-corretto.x86_64/jre/lib/amd64/libverify.so ./usr/lib/jvm/java-1.8.0-amazon-corretto.x86_64/jre/lib/amd64/libzip.so ./usr/lib/jvm/java-1.8.0-amazon-corretto.x86_64/jre/lib/amd64/server ./usr/lib/jvm/java-1.8.0-amazon-corretto.x86_64/jre/lib/amd64/server/Xusage.txt ./usr/lib/jvm/java-1.8.0-amazon-corretto.x86_64/jre/lib/amd64/server/libjsig.so ./usr/lib/jvm/java-1.8.0-amazon-corretto.x86_64/jre/lib/amd64/server/libjvm.so ./usr/lib/jvm/java-1.8.0-amazon-corretto.x86_64/jre/lib/calendars.properties ./usr/lib/jvm/java-1.8.0-amazon-corretto.x86_64/jre/lib/charsets.jar ./usr/lib/jvm/java-1.8.0-amazon-corretto.x86_64/jre/lib/classlist ./usr/lib/jvm/java-1.8.0-amazon-corretto.x86_64/jre/lib/cmm ./usr/lib/jvm/java-1.8.0-amazon-corretto.x86_64/jre/lib/cmm/CIEXYZ.pf ./usr/lib/jvm/java-1.8.0-amazon-corretto.x86_64/jre/lib/cmm/GRAY.pf ./usr/lib/jvm/java-1.8.0-amazon-corretto.x86_64/jre/lib/cmm/LINEAR_RGB.pf ./usr/lib/jvm/java-1.8.0-amazon-corretto.x86_64/jre/lib/cmm/PYCC.pf ./usr/lib/jvm/java-1.8.0-amazon-corretto.x86_64/jre/lib/cmm/sRGB.pf ./usr/lib/jvm/java-1.8.0-amazon-corretto.x86_64/jre/lib/content-types.properties ./usr/lib/jvm/java-1.8.0-amazon-corretto.x86_64/jre/lib/currency.data ./usr/lib/jvm/java-1.8.0-amazon-corretto.x86_64/jre/lib/ext ./usr/lib/jvm/java-1.8.0-amazon-corretto.x86_64/jre/lib/ext/cldrdata.jar ./usr/lib/jvm/java-1.8.0-amazon-corretto.x86_64/jre/lib/ext/dnsns.jar ./usr/lib/jvm/java-1.8.0-amazon-corretto.x86_64/jre/lib/ext/jaccess.jar ./usr/lib/jvm/java-1.8.0-amazon-corretto.x86_64/jre/lib/ext/jfxrt.jar ./usr/lib/jvm/java-1.8.0-amazon-corretto.x86_64/jre/lib/ext/localedata.jar ./usr/lib/jvm/java-1.8.0-amazon-corretto.x86_64/jre/lib/ext/meta-index ./usr/lib/jvm/java-1.8.0-amazon-corretto.x86_64/jre/lib/ext/nashorn.jar ./usr/lib/jvm/java-1.8.0-amazon-corretto.x86_64/jre/lib/ext/sunec.jar ./usr/lib/jvm/java-1.8.0-amazon-corretto.x86_64/jre/lib/ext/sunjce_provider.jar ./usr/lib/jvm/java-1.8.0-amazon-corretto.x86_64/jre/lib/ext/sunpkcs11.jar ./usr/lib/jvm/java-1.8.0-amazon-corretto.x86_64/jre/lib/ext/zipfs.jar ./usr/lib/jvm/java-1.8.0-amazon-corretto.x86_64/jre/lib/flavormap.properties ./usr/lib/jvm/java-1.8.0-amazon-corretto.x86_64/jre/lib/hijrah-config-umalqura.properties ./usr/lib/jvm/java-1.8.0-amazon-corretto.x86_64/jre/lib/images ./usr/lib/jvm/java-1.8.0-amazon-corretto.x86_64/jre/lib/images/cursors ./usr/lib/jvm/java-1.8.0-amazon-corretto.x86_64/jre/lib/images/cursors/cursors.properties ./usr/lib/jvm/java-1.8.0-amazon-corretto.x86_64/jre/lib/images/cursors/invalid32x32.gif ./usr/lib/jvm/java-1.8.0-amazon-corretto.x86_64/jre/lib/images/cursors/motif_CopyDrop32x32.gif ./usr/lib/jvm/java-1.8.0-amazon-corretto.x86_64/jre/lib/images/cursors/motif_CopyNoDrop32x32.gif ./usr/lib/jvm/java-1.8.0-amazon-corretto.x86_64/jre/lib/images/cursors/motif_LinkDrop32x32.gif ./usr/lib/jvm/java-1.8.0-amazon-corretto.x86_64/jre/lib/images/cursors/motif_LinkNoDrop32x32.gif ./usr/lib/jvm/java-1.8.0-amazon-corretto.x86_64/jre/lib/images/cursors/motif_MoveDrop32x32.gif ./usr/lib/jvm/java-1.8.0-amazon-corretto.x86_64/jre/lib/images/cursors/motif_MoveNoDrop32x32.gif ./usr/lib/jvm/java-1.8.0-amazon-corretto.x86_64/jre/lib/javafx.properties ./usr/lib/jvm/java-1.8.0-amazon-corretto.x86_64/jre/lib/jce.jar ./usr/lib/jvm/java-1.8.0-amazon-corretto.x86_64/jre/lib/jexec ./usr/lib/jvm/java-1.8.0-amazon-corretto.x86_64/jre/lib/jfxswt.jar ./usr/lib/jvm/java-1.8.0-amazon-corretto.x86_64/jre/lib/jsse.jar ./usr/lib/jvm/java-1.8.0-amazon-corretto.x86_64/jre/lib/jvm.hprof.txt ./usr/lib/jvm/java-1.8.0-amazon-corretto.x86_64/jre/lib/logging.properties ./usr/lib/jvm/java-1.8.0-amazon-corretto.x86_64/jre/lib/management ./usr/lib/jvm/java-1.8.0-amazon-corretto.x86_64/jre/lib/management-agent.jar ./usr/lib/jvm/java-1.8.0-amazon-corretto.x86_64/jre/lib/management/jmxremote.access ./usr/lib/jvm/java-1.8.0-amazon-corretto.x86_64/jre/lib/management/jmxremote.password.template ./usr/lib/jvm/java-1.8.0-amazon-corretto.x86_64/jre/lib/management/management.properties ./usr/lib/jvm/java-1.8.0-amazon-corretto.x86_64/jre/lib/management/snmp.acl.template ./usr/lib/jvm/java-1.8.0-amazon-corretto.x86_64/jre/lib/meta-index ./usr/lib/jvm/java-1.8.0-amazon-corretto.x86_64/jre/lib/net.properties ./usr/lib/jvm/java-1.8.0-amazon-corretto.x86_64/jre/lib/psfont.properties.ja ./usr/lib/jvm/java-1.8.0-amazon-corretto.x86_64/jre/lib/psfontj2d.properties ./usr/lib/jvm/java-1.8.0-amazon-corretto.x86_64/jre/lib/resources.jar ./usr/lib/jvm/java-1.8.0-amazon-corretto.x86_64/jre/lib/rt.jar ./usr/lib/jvm/java-1.8.0-amazon-corretto.x86_64/jre/lib/security ./usr/lib/jvm/java-1.8.0-amazon-corretto.x86_64/jre/lib/security/blacklisted.certs ./usr/lib/jvm/java-1.8.0-amazon-corretto.x86_64/jre/lib/security/cacerts ./usr/lib/jvm/java-1.8.0-amazon-corretto.x86_64/jre/lib/security/java.policy ./usr/lib/jvm/java-1.8.0-amazon-corretto.x86_64/jre/lib/security/java.security ./usr/lib/jvm/java-1.8.0-amazon-corretto.x86_64/jre/lib/security/policy ./usr/lib/jvm/java-1.8.0-amazon-corretto.x86_64/jre/lib/security/policy/limited ./usr/lib/jvm/java-1.8.0-amazon-corretto.x86_64/jre/lib/security/policy/limited/US_export_policy.jar ./usr/lib/jvm/java-1.8.0-amazon-corretto.x86_64/jre/lib/security/policy/limited/local_policy.jar ./usr/lib/jvm/java-1.8.0-amazon-corretto.x86_64/jre/lib/security/policy/unlimited ./usr/lib/jvm/java-1.8.0-amazon-corretto.x86_64/jre/lib/security/policy/unlimited/US_export_policy.jar ./usr/lib/jvm/java-1.8.0-amazon-corretto.x86_64/jre/lib/security/policy/unlimited/local_policy.jar ./usr/lib/jvm/java-1.8.0-amazon-corretto.x86_64/jre/lib/sound.properties ./usr/lib/jvm/java-1.8.0-amazon-corretto.x86_64/jre/lib/tzdb.dat 223736 blocks

bric3 commented 5 years ago

@lordbuddha they inverted the JRE and JDK links 🤦‍♂️ https://twitter.com/BriceDutheil/status/1065624528204824576

bernd-aws commented 5 years ago

Thank you for spotting and reporting it! This needs to be fixed.

lordbuddha commented 5 years ago

Yes, as pointed out the links are just the wrong way around. But that is not all.

If we look at the relative sizes of each of the 4 downloads, we see that the "devel" (i.e. the JDK) RPM is smaller that the JRE.... Neat magic trick if achieved.

:~/Downloads$ ls -lh .rpm .pkg *.msi 92M Nov 27 13:09 Amazon-Corretto-preview-8u192.msi 383K Jul 12 14:46 ca-certificates-2018.2.24-5.fc29.noarch.rpm 103M Nov 27 13:09 corretto-jdk-8u192-macosx-x64.pkg 39M Nov 27 13:08 java-1.8.0-amazon-corretto-1.8.0_192.b12-1.amzn2.x86_64.rpm 35M Nov 27 13:08 java-1.8.0-amazon-corretto-devel-1.8.0_192.b12-1.amzn2.x86_64.rpm

Apparently (and I did see this somewhere else), to get the JDK you need to install both RPMs.

This seems a quite strange way of doing things.

bric3 commented 5 years ago

@lordbuddha That's what I thought at first, but the two download are actually a way of packaging, the JRE can be a standalone install, but the JDK depends on the JRE.

> rpm -qpR java-1.8.0-amazon-corretto-devel-1.8.0_192.b12-1.amzn2.x86_64.rpm
...
java-1.8.0-amazon-corretto(x86-64) = 1:1.8.0_192.b12-1.amzn2
...

This works if one is using a package manager like yum. But if you download the files you basically have to check the dependencies yourself.

However I agree the site is misleading in that regard.

davecurrie commented 5 years ago

@lordbuddha, @bric3 - Thanks for your input. We have chosen to package Corretto for Amazon Linux 2 following its packaging conventions and, as you state, the -devel package depends on the base amazon-corretto to make a full JDK when installed together. We will make a note to clarify this in the next revision of the documentation.

bric3 commented 5 years ago

@davecurrie Your decision makes sense for RPM (or deb when they will be available) because the documented way to install them rely on yum and the extras repo already configured for Amazon Linux. But as binary download it comes as a surprise, because there's no documentation.

At least with Java 11 we won't need the JRE ;)

lordbuddha commented 5 years ago

I for one will miss the JRE only distribution in Java 11 and onwards.

We run all our production systems on a JRE.

davecurrie commented 5 years ago

The downloads page at https://docs.aws.amazon.com/corretto/latest/corretto-8-ug/downloads-list.html has been updated with the Linux packages pointing to the right artifacts. Keeping this issue open for a few more days until we expand the install documentation to explain the roles of the two RPM packages.

davecurrie commented 5 years ago

The documentation at https://docs.aws.amazon.com/corretto/latest/corretto-8-ug/amazon-linux-install.html has also beel updated to reflect that the JRE package needs to be installed for the JDK package to work correctly.