I'd appreciate advice from maintainers of ports that use Java. What Java should 
be installed on the buildbot workers?

Currently, only our Leopard and Snow Leopard buildbot workers have Java 
installed, because Apple's Java was included in the Mac OS X installer. It's a 
very old version (Java 2 build 1.5.0_30-b03-389-9M3425 on Leopard, Java SE 
build 1.6.0_65-b14-462-10M4609 on Snow Leopard) but it's something.

Apple removed its Java from the OS X installer in Lion, and I have not 
separately installed Java on the Lion and later buildbot workers, because I 
didn't know what should be installed. 

Apple's legacy Java 6 distribution can be installed on Lion and later up to and 
including High Sierra, but Apple doesn't recommend it. They recommend using the 
latest Oracle Java. Oracle Java 7 and 8 are compatible with Lion and later.

My understanding is that one must choose either Apple's Java 6 or Oracle's Java 
7 or 8; they can't coexist.

I think I should probably install Oracle's latest Java 8 on the Lion and later 
buildbot workers. Does that seem reasonable? I don't know if our java portgroup 
is compatible with that. I also don't know what happens if we do that, and then 
a user who has Apple's legacy Java 6 installed receives a binary archive of a 
Java-using port. Does it work? Does it fail?

A second option is to install Apple's legacy Java 6 on the Lion and later 
buildbot workers. I'm guessing this is not the right choice, since it is old 
and probably has security problems. And the same questions arise again: Would 
this be compatible with the java portgroup? And what happens if a user who has 
Oracle Java 7 or 8 installed gets a binary archive built using legacy Java 6? 
Does it work or fail?

A third option is to do nothing. I think this isn't great because it means that 
ports that use Java fail on the Lion and later buildbot workers, which prevents 
maintainers from learning about legitimate build failures their ports may have, 
and prevents users from receiving binary archives of distributable Java ports. 
However, if a Java port would build differently depending on whether Apple's 
legacy Java 6 or Oracle's Java 7 or 8 is installed, we may have to prevent 
distribution of binary archives of Java ports anyway, at least in the case 
where we detect that the Java the user has installed is not the Java that we 
decide to install on the buildbot workers.

Reply via email to