Tuesday, May 08, 2007

"Buildable" JDK doesn't build on Windows: missing t2k.lib

What a mess.

This morning at JavaOne, Rich Green announced that you could at long last build a working JDK/JRE from GPL'd source... mostly. A few key libraries remained non-GPL'd (encumbered) so they had to be shipped as binary plugs. That's fine... we can work on that. If we can build the code, that is.

But if you go to openjdk.java.net right now, and go download openjdk-7-ea-src-b12-06_may_2007.zip and jdk-7-ea-plug-b12-windows-i586-06_may_2007.jar, you'll find that the JDK won't build correctly on Windows. Instead, you'll get this error message when you run "make sanity":

ERROR: Can't locate t2k import library.
       Please check your access to
           /c/devtools/jdk-7-binary-plugs/jre/bin/t2k.lib
       and/or check your value of ALT_CLOSED_LIB_DIR.

That file is indeed missing from the Windows binary plugs. We have a t2k.dll, t2k.pdb, and t2k.map, but no t2k.lib. At JavaOne today Dmitri Trembovetski confirmed that this was a real issue, and that t2k.lib is a core part of the graphics rasterizer, one of the key encumbered components of the binary plugs.

Dmitri also suggested a workaround, which I'm not too excited about but which would probably work: you could, if you wanted, go get the JRL JDK 7, accept the JRL, and build a t2k.lib from that source. I'm concerned about my contaminating the new GPL'd Java by doing that, so I think I don't want to do that. Instead, someone at Sun should probably release another version of the binary plugs archive with the necessary file(s) included.

Dmitri and Tom Marble suggested that I file a bug on bugs.sun.com, but bugs filed there aren't immediately visible via the web. I was not even assigned a bug number, so I can't reference it here. And, unfortunately, even though bugs.sun.com HAS a "build" category for J2SE bugs, ordinary users can't file bugs against it. I had to file the bug against "installation" instead.