Java port maintainers: What should be installed on the buildbot workers?

Aaron Madlon-Kay aaron+macports at madlon-kay.com
Wed Feb 28 14:31:12 UTC 2018


> You had mentioned Java 9 introducing changes that were not backward compatible. Does that only apply to the JDK, and not the JRE? Should the Java 9 JRE be able to run stuff made with any earlier Java version?

Compared to previous updates, Java 9 breaks a lot of things and no, a lot of things won’t just run unmodified on the 9 JRE. But ensuring the system-default JRE is Java 8 won’t really help anything unless you’re going to be running `open` on a JAR or JNLP file. The java portgroup (correctly) gets JAVA_HOME with /usr/libexec/java_home, which always gives you the newest Java no matter what unless you specify a version with -v, so the default Java for building will still be 9.

This is why I was talking about having ports self-report their required Java version. A properly packaged project will have a launch script or some other way of specifying the right Java when running the final product, but it’s usually up to the user to use the right Java when building. Making all the Javas available doesn’t solve the problem of using the right one when building.

See here for what I did in an older version of Jython that required Java 7 to build (would not build on 6 or 8):
https://github.com/macports/macports-ports/commit/8ea9763eb25ca1484a62084e460b87963ba7aed0#diff-68dc98f4ea15b7ea36d6d5d515a327aaR31

I suppose if you want the setup that is most likely to work with the largest number of existing ports for the time being, do what you said but skip Java 9.

-Aaron



More information about the macports-dev mailing list