Experimental Build Repository at icedtea.classpath.org

Andrew Haley aph at redhat.com
Thu Jun 7 10:51:31 PDT 2007

At the present time it's not possible to build a fully Free Software
version of OpenJDK, because of the presence of some "binary plugs".
Quoting http://openjdk.java.net/:

"Not all of the source code that makes up the JDK is available under
an open-source license. In order to build an OpenJDK binary from
source code, you must first download and install one or more of the
following files from which the build process will copy over 'binary
plugs' for these encumbered components."

In addition to this, it's necessary to download an unfree JDK to build

We have been working within Red Hat to replace these binary plugs with
free software based on GNU Classpath and to remove the need for
bootstrapping with unfree software.  This is important for a number of
reasons, the most pressing being that only free software may be used
to build operating systems like Fedora.

We intend this build repository, based on OpenJDK, to provide a basis
on which to experiment.  It's not a fork from OpenJDK, and doesn't
contain the OpenJDK source code.

We have used the name IcedTea because JDK and OpenJDK are trademarks
and we wish to make it perfectly clear that, while this project uses
source code from the OpenJDK project, it is not OpenJDK.

I'm sure some people will wonder why we've set up this repository
rather than submitting our replacements for the binary plugs to
openjdk.java.net.  Sun hasn't set up a Mercurial repository yet, and
we need a public version control system system to work in.  Also, this
is not mature tested code, it's an experiment.  We've been doing this
experiment inside Red Hat, and we know from experience that working in
the open is better than working behind closed doors.

The next question that arises is "will you be submitting these changes
to the OpenJDK process?"  The answer is yes, we will, once the legal
and technical issues are resolved.

These "binary plugs" are not complete: they do not replicate all the
functionality of the binary plugs used in the OpenJDK.  If you need a
fully-functional OpenJDK, follow the instructions on
http://openjdk.java.net/.  However, these "binary plugs" are
sufficient to allow IcedTea to build itself without any software that
is not free.  It's important to show that we can do this, if only as a
proof of concept.

We'd like to thank the GNU Classpath hackers (and Jim Pick in
particular) for sharing the infrastructure at classpath.org that makes
this possible.  And, of course, for writing the code in GNU Classpath.


To get started on a Fedora 7 GNU/Linux system with yum:

$ sudo yum install /usr/bin/ecj mercurial cups-devel lesstif-devel libXp-devel xalan-j2 xerces-j2 libXt-devel libgcj


$ hg clone http://icedtea.classpath.org/hg/icedtea
$ cd icedtea

Full build instructions are in INSTALL, but this works for me:

$ ./configure
$ make

When this completes you'll have a usable IcedTea in
openjdk/control/build/linux-i586 or openjdk/control/build/linux-amd64.

Alternatively, you can bootstrap by building IcedTea twice, once with
ecj/gcj and then with IcedTea:

$ make bootstrap

Red Hat UK Ltd, Amberley Place, 107-111 Peascod Street, Windsor, Berkshire, SL4 1TE, UK
Registered in England and Wales No. 3798903

More information about the distro-pkg-dev mailing list