Opened 7 years ago

Closed 6 years ago

#56000 closed enhancement (fixed)

Install Java on the buildbot workers

Reported by: ryandesign (Ryan Carsten Schmidt) Owned by: admin@…
Priority: Normal Milestone:
Component: server/hosting Version:
Keywords: Cc: amake (Aaron Madlon-Kay), ctreleaven (Craig Treleaven)
Port:

Description

As discussed on the list, I need to install Java on the Lion and later buildbot workers, specifically Apple Java 6 and Oracle Java 7 and 8. See #42396 for prior discussion re the macOS forge buildbot. Later, the java portgroup may need modifications to allow ports to specify which Java version they need.

Change History (7)

comment:1 Changed 7 years ago by ctreleaven (Craig Treleaven)

Apple's Java 6 for OS X is available at:

https://support.apple.com/kb/DL1572?locale=en_US

"Java for macOS 2017-001 installs the legacy Java 6 runtime for macOS 10.13 High Sierra, macOS 10.12 Sierra, macOS 10.11 El Capitan, macOS 10.10 Yosemite, macOS 10.9 Mavericks, macOS 10.8 Mountain Lion, and macOS 10.7 Lion."

The lack of Java 6 on the 10.7+ buildbots is preventing openNI from building and will prevent libpcl when it is updated. OpenNI apparently doesn't work with Java 8 as I had that installed previously. (I think Java 6 is only used during the build but I'm not certain.)

comment:2 Changed 7 years ago by ryandesign (Ryan Carsten Schmidt)

Cc: amake added

I wasn't sure if I should use the "Java for OS X" from the public Apple downloads site that you linked to (which installs only /Library/Java/JavaVirtualMachines/1.6.0.jdk), or the "Java for OS X Developer Package" from Apple Developer Downloads (which installs /Library/Java/JavaVirtualMachines/1.6.0_65-b14-462.jdk and lots of other files including demos, documentation, private frameworks, ...)

comment:3 Changed 6 years ago by ryandesign (Ryan Carsten Schmidt)

Cc: ctreleaven added

I have installed Java for OS X 2017-001 on the Mountain Lion and later buildbot workers.

Despite claiming to support Lion, Java for OS X 2017-001 does not work on Lion:

$ java -version
dyld: lazy symbol binding failed: Symbol not found: _JRSCopyOSJavaSupportVersion
  Referenced from: /Library/Java/JavaVirtualMachines/1.6.0.jdk/Contents/Libraries/libjava.jnilib
  Expected in: /System/Library/Frameworks/JavaVM.framework/Versions/A/Frameworks/JavaRuntimeSupport.framework/Versions/A/JavaRuntimeSupport

dyld: Symbol not found: _JRSCopyOSJavaSupportVersion
  Referenced from: /Library/Java/JavaVirtualMachines/1.6.0.jdk/Contents/Libraries/libjava.jnilib
  Expected in: /System/Library/Frameworks/JavaVM.framework/Versions/A/Frameworks/JavaRuntimeSupport.framework/Versions/A/JavaRuntimeSupport

I reported the bug to Apple and installed Java for OS X 2015-001 on the Lion workers instead.

I also installed Oracle JDK 8u181 on the Lion and later workers.

I did not install Oracle JDK 7, 9, or 10, as they're already end-of-life. Oracle JDK 11 is a long-term-support release so we could install that, but maybe we should live with 8 for awhile first.

comment:4 Changed 6 years ago by ryandesign (Ryan Carsten Schmidt)

I have updated Oracle JDK 8 to 8u191 on the Lion and later workers.

For the open-source versions of Oracle JDK 10 and 11 we now have the openjdk10 and openjdk11 ports. From what I can tell, nothing in MacPorts uses these yet.

comment:5 Changed 6 years ago by mattbishop (Matt Bishop)

Is the env var $JAVA_HOME being set? I am failing to read it in tomcat-native port. Here is that PR: ​https://github.com/macports/macports-ports/pull/3680

It could be being set but not read correctly. Here is my portfile's code to read this var:

if {[info exists env(JAVA_HOME)]} {
    configure.args-append   --with-java-home="$env(JAVA_HOME)"
}
Last edited 6 years ago by ryandesign (Ryan Carsten Schmidt) (previous) (diff)

comment:6 Changed 6 years ago by mattbishop (Matt Bishop)

I adopted this java PortGroup in the above PR and it works well. Thanks!

comment:7 Changed 6 years ago by ryandesign (Ryan Carsten Schmidt)

Resolution: fixed
Status: newclosed

Since this ticket was about installing Java on the buildbot workers, and that's been done, I'm closing it.

Note: See TracTickets for help on using tickets.