SoyLatte: Java 6 Port for Mac OS X 10.4 and 10.5 (Intel)

Table of Contents

SoyLatte Project Goals

Update - January 10th, 2010

The official Mac OS X OpenJDK7 project has been established!

Introduction

SoyLatte is a functional, X11-based port of the FreeBSD Java 1.6 patchset to Mac OS X Intel machines. SoyLatte is initially focused on supporting Java 6 development; however, the long-term view far more captivating: open development of Java 7 for Mac OS X, with a release available in concert with the official Sun release, supported on all recent versions of Mac OS X.

Soylatte is now officially a part of the OpenJDK BSD-Port project, representing the culmination of work by Greg Lewis, Kurt Miller, Dalibor Topic, and myself. All future development on OpenJDK 7 for Mac OS X will be coordinated as part of OpenJDK, and future releases of Soylatte will be based on OpenJDK 6.

The name "SoyLatte" was chosen to clearly differentiate from Sun's trademarks -- Red Hat has already claimed IcedTea, and I drank a lot of double soy lattes while working on this (I think it's funny).

Download

License

You must be a licensee in good standing under the Java Research License to download JRL-licensed releases. To ensure compliance, downloading requires authentication:

OpenJDK releases are provided under the GPLv2 and GPLv2+CP licenses, and no authentication is required.

Source

The current release tag is jdk6_1.0.3

By downloading these binaries or source code, you certify that you are a Licensee in good standing under the Java Research License of the Java 2 SDK, and that your access, use, and distribution of code and information you may obtain at this site is subject to the License. Please review the license at http://java.net/jrl.csp.

Binaries

Binaries are available for Mac OS X 10.4 and 10.5. The soylatte directory can be placed anywhere on your system -- I chose /usr/local/soylatte16-amd64. Like other Java platforms, setting the JAVA_HOME and PATH environmental variables to point at this location will work as expected.

To provide a JRL "click-through" agreement, authentication is required to download these binaries. Username 'jrl', Password 'I am a Licensee in good standing'.


SoyLatte legacy binaries are based on the BSD Port of Sun's Java 6 JDK, and are made available under the Java Research License. JDK and Java are trademarks of Sun. While SoyLatte is a port of Java, it is not Sun's Java, JDK, or OpenJDK. SoyLatte is made available under the JRL.

By downloading these binaries or source code, you certify that you are a Licensee in good standing under the Java Research License of the Java 2 SDK, and that your access, use, and distribution of code and information you may obtain at this site is subject to the License. Please review the license at http://java.net/jrl.csp.

OpenJDK binaries are based on the bsd-port OpenJDK project, and are made available under the GPLv2 with Class Path Exception.

Building

Due to bugs in 10.4's compiler, building the sources currently requires a Mac OS X 10.5 machine.

OpenMotif is the only required dependency. I installed OpenMotif using MacPorts -- if you install it using Fink, or manually, you must modify the ALT_MOTIF_DIR build setting.

To build the 32-bit JDK:

cd control/make
    make ALT_BOOTDIR=/System/Library/Frameworks/JavaVM.framework/Home \
    ALT_MOTIF_DIR=/opt/local SYS_CFLAGS="" LANG="C" JAVA_HOME="" CLASSPATH="" \
    LD_LIBRARY_PATH="" MAKEFLAGS="" SKIP_COMPARE_IMAGES="YES" \
    BUILD_DEPLOY="false" ALT_DEVTOOLS_PATH=/usr ALT_CUPS_HEADERS_PATH=/usr/include \
    HOTSPOT_BUILD_JOBS=1 PARALLEL_BUILD_JOBS=1
    		

The following additional make options are available:

To target Tiger, set the MACOSX_DEPLOYMENT_TARGET environmental variable to "10.4", and pass DARWIN_SDK=/Developer/SDKs/MacOSX10.4u.sdk as a make flag.

Usage

Installation

To install, place the jdk directory anywhere on your file system. I chose /usr/local/soylatte16-amd64

Command Line

To use the new JDK with tools like Apache Ant, set the JAVA_HOME environment variable to the full path of your soylatte installation (eg, /usr/local/soylatte16-amd64).

To ensure that the Soylatte binaries are preferred over the system's 1.5 installation, add the installation directory to your PATH (eg, export PATH=/usr/local/soylatte16-amd64/bin:$PATH)

Eclipse

SoyLatte can be added as an Apple JVM to your Eclipse configuration. There may be some issues with this work around, see Michael Allman's patch to allow "Standard VMs", attached to Eclipse Bug 211648

Netbeans

On Mac OS X, Netbeans expects all JVMs to be located in the /System/Library/Frameworks/JavaVM.framework directory. Users have reported success in symlinking /System/Library/Frameworks/JavaVM.framework/Versions/1.6.0/Home to the SoyLatte directory.

Contributing

The SoyLatte work is now a part of OpenJDK, via the OpenJDK BSD-Port project. Please consider joining the mailing list, building and testing the JDK, and sending in your bug reports and patches.