IcedTea6 1.2 Released
Congratulations to the IcedTea team (Lillian Angel, Gary Benson, Tom Fitzsimmons, Joshua Sumali, Andrew Haley, Mark Wielaard) on another release. The OpenJDK version is only one drop further on (b09 as opposed to b08) but there are lots of other IcedTea related changes including the import of MIDI support via Gervill and a Linux/SPARC HotSpot port, not to mention numerous fixes and jtreg-based testing. Gentoo users can already find an ebuild for this in my overlay: http://fuseyism.com/hg/libre_java_overlay.
Unfortunately, creating this ebuild immediately showed up a few issues with the release. The first was rather peculiar, it seems the jar executable from IcedTea 6 1.1 couldn’t handle the @ option used to build the rt.jar file:
(cd /var/tmp/portage/dev-java/icedtea6-1.2/work/icedtea6-1.2/openjdk-ecj/control/build/linux-amd64/classes
&& /bin/cat /var/tmp/portage/dev-java/icedtea6-1.2/work/icedtea6-1.2/openjdk-ecj/control/build/linux-amd64/tmp/jarfilelists/rt_jar_list
| /usr/lib/jvm/icedtea6-1.1/bin/jar c0mf@
/var/tmp/portage/dev-java/icedtea6-1.2/work/icedtea6-1.2/openjdk-ecj/control/build/linux-amd64/tmp/manifest.tmp
/var/tmp/portage/dev-java/icedtea6-1.2/work/icedtea6-1.2/openjdk-ecj/control/build/linux-amd64/tmp/rt-orig.jar
-J-Xmx896m -J-Xms128m -J-XX:PermSize=32m
-J-XX:MaxPermSize=160m)
Illegal option: @
Usage: jar {ctxui}[vfm0Me] [jar-file] [manifest-file] [entry-point]
[-C dir] files ...
Interestingly, using gjar does work, so for the time being I’ve enforced the use of gcj-4.3 in the ebuild, and used gjar from this. Patching it so that it becomes /usr/lib/jvm/icedtea6-1.1/bin/jar c0mf should also work.
The other issue I ran into was with the plugin option. Gentoo’s econf system specifies all the configure options it uses even if the values are the defaults, due to the way it is automated. So even though the plugin is enabled by default, –enable-gcjwebplugin still gets passed to the build. However, it seems this actually disables it for IcedTea6. I patched this as:
diff -r 3fe8a0881e86 configure.ac
--- a/configure.ac Wed May 28 11:29:51 2008 -0400
+++ b/configure.ac Fri May 30 00:53:44 2008 +0100
@@ -101,13 +101,13 @@ AC_ARG_ENABLE([gcjwebplugin],
AC_ARG_ENABLE([gcjwebplugin],
[AS_HELP_STRING([--disable-gcjwebplugin],
[Disable compilation of browser plugin])],
- [ENABLE_PLUGIN="$val"], [ENABLE_PLUGIN='yes'])
+ [ENABLE_PLUGIN="${enableval}"], [ENABLE_PLUGIN='yes'])
AC_SUBST(ENABLE_PLUGIN)
AC_ARG_ENABLE([docs],
[AS_HELP_STRING([--disable-docs],
[Disable generation of documentation])],
- [ENABLE_DOCS="$val"], [ENABLE_DOCS='yes'])
+ [ENABLE_DOCS="${enableval}"], [ENABLE_DOCS='yes'])
AM_CONDITIONAL([ENABLE_DOCS], [test x$ENABLE_DOCS = xyes])
AC_ARG_WITH([icedtea],
This wouldn’t have been noticed because usually you either stick with the default (which does turn on the plugin) or, if an option is specified, you disable it (which happens). The problem is that specifying either form of the gcjwebplugin option disables it, including the one that’s meant to enable it.
With these two issues fixed, IcedTea6 1.2 can be installed on Gentoo.
May 30th, 2008 at 8:43 am
Hi Andrew,
After the sentence: “Patching it so that it becomes:” there are two duplicate sentences from earlier in the article: “Gentoo users can already find an ebuild for this in my overlay: http://fuseyism.com/hg/libre_java_overlay.
Unfortunately, creating this ebuild immediately showed up a few issues with the release. The first was rather peculiar, it seems the jar executable from IcedTea 6 1.1 couldn’t handle the @ option used to build the rt.jar file:” which make the article a little hard to read correctly.
Thanks for writing this down, I was looking at the same issue scratching my head…
June 2nd, 2008 at 1:18 am
Ah, guess I copied and pasted a bit too keenly, thanks for spotting. Corrected.
I’ll try and patch gjar for the 0.97.2 Classpath release.