4 The IcedTea project provides a harness to build the source code from
5 openjdk.java.net using Free Software tools and dependencies.
7 IcedTea addresses two problems: it eliminates the build requirement on
8 proprietary build tools and it provides replacements for the
9 "encumbered binary plugs".
11 These plugs are described at http://openjdk.java.net: "Not all of the
12 source code that makes up the JDK is available under an open-source
13 license. In order to build an OpenJDK binary from source code, you
14 must first download and install one or more of the following files
15 from which the build process will copy over 'binary plugs' for these
16 encumbered components."
18 This project uses code from GNU Classpath, code generated during a
19 build of the openjdk.java.net source code, and stub code written by
20 Red Hat, to provide Free Software replacements for these encumbered
23 IcedTea also provides build scripts and patches that allow the source
24 code from openjdk.java.net to be built with ecj running on libgcj or
27 See INSTALL for build instructions.
30 http://icedtea.classpath.org/
33 http://icedtea.classpath.org/bugzilla
36 distro-pkg-dev@openjdk.java.net
37 http://mail.openjdk.java.net/mailman/listinfo/distro-pkg-dev
40 http://icedtea.classpath.org/wiki/FrequentlyAskedQuestions
42 Anonymous Mercurial checkout:
43 hg clone http://icedtea.classpath.org/hg/icedtea
48 IcedTea is derived from OpenJDK, Sun's open-source implementation of
49 the Java SE platform. At this time the build from which IcedTea was
50 constructed corresponds to an early build (b21) of JDK 7. When JDK 7
51 is complete it will implement the Java SE 7 Platform Specification.
52 Work on that specification is underway, but far from final. Any APIs
53 in the JDK 7 implementation, whether new or old, are therefore subject
54 to minor adjustments, major revisions, or even outright removal
55 between now and the time that the Java SE 7 Platform Specification is
56 finalized. Please take these facts into account before depending upon
59 How the Stub Replacements were Produced
60 ---------------------------------------
62 To produce the plug replacements, we began by satisfying as many
63 undefined references as possible using code from a completed build of
64 the source code from openjdk.java.net. Then we supplemented the
65 resultant tree with more replacement code from GNU Classpath.
66 Following that, we fixed each remaining build error by creating the
67 simplest possible stub code.
69 A Note About License Headers
70 ----------------------------
72 Some sources downloaded from openjdk.java.net do not display the GPL
73 license header. Instances are:
75 - The files in openjdk/j2se/src/share/classes/javax/xml/stream/ seem to
76 comprise the BEA-StAX source code
78 http://ftpna2.bea.com/pub/downloads/jsr173.jar
80 with some Sun-specific modifications. We're assuming that Sun is
81 bundling BEA-StAX under the terms of the Apache License 2.0 and
82 that the modifications are owned by Sun.
84 - We are assuming that these files are owned by Sun:
85 openjdk/j2se/src/share/classes/**/resources/*.properties
87 The downloaded sources include a script that inserts proprietary
88 license headers into the source files it generates. The script
89 itself is GPL'd so we patched them to emit the GPL header. The
91 openjdk/j2se/make/java/nio/genExceptions.sh
97 gcjwebplugin provides basic support for running applets in
98 Mozilla-based web browsers. It does not support applet/Javascript
99 communication (LiveConnect) and support for signed applets needs
100 further testing. The current applet security manager may be too
101 strict and may require tuning to allow otherwise-legitimate calls by
104 gcjwebplugin itself is a shared object, gcjwebplugin.so, built from a
105 single source file, gcjwebplugin.cc. The IcedTea adaptation of
106 gcjwebplugin communicates through named pipes with a modified version
107 of IcedTea's appletviewer. Two source files,
108 openjdk/j2se/src/share/classes/sun/applet/PluginAppletViewer.java,
109 openjdk/j2se/src/share/classes/sun/applet/PluginMain.java are added to
110 rt.jar and tools.jar to provide gcjwebplugin with an interface into
111 the appletviewer code. This support code is provided in
112 patches/icedtea-plugin.patch.