README
changeset 251: 6cb15624ed1d
parent 250:fad17b4fcfc9
child 257:2d58a540c22c
manifest: 6cb15624ed1d
author: Andrew Haley <aph@redhat.com>
date: Fri Oct 12 10:32:05 2007 +0100 (13 months ago)
permissions: -rw-r--r--
2007-10-12 Andrew Haley <aph@redhat.com>

* README (Java compatibility): New section.
        1 IcedTea
        2 =======
        3 
        4 The IcedTea project provides a harness to build the source code from
        5 openjdk.java.net using Free Software tools and dependencies.
        6 
        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".
       10 
       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."
       17 
       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
       21 binary plugs.
       22 
       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
       25 with IcedTea itself.
       26 
       27 See INSTALL for build instructions.
       28 
       29 Homepage (wiki):
       30   http://icedtea.classpath.org/
       31 
       32 Bugs (bugzilla):
       33   http://icedtea.classpath.org/bugzilla
       34 
       35 Mailing List: 
       36   distro-pkg-dev@openjdk.java.net
       37   http://mail.openjdk.java.net/mailman/listinfo/distro-pkg-dev
       38 
       39 FAQ:
       40   http://icedtea.classpath.org/wiki/FrequentlyAskedQuestions
       41 
       42 Anonymous Mercurial checkout:
       43   hg clone http://icedtea.classpath.org/hg/icedtea
       44 
       45 Java compatibility
       46 ------------------
       47 
       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
       57 IcedTea.
       58 
       59 How the Stub Replacements were Produced
       60 ---------------------------------------
       61 
       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.
       68 
       69 A Note About License Headers
       70 ----------------------------
       71 
       72 Some sources downloaded from openjdk.java.net do not display the GPL
       73 license header.  Instances are:
       74 
       75  - The files in openjdk/j2se/src/share/classes/javax/xml/stream/ seem to 
       76    comprise the BEA-StAX source code
       77 
       78    http://ftpna2.bea.com/pub/downloads/jsr173.jar
       79 
       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.
       83 
       84  - We are assuming that these files are owned by Sun:
       85    openjdk/j2se/src/share/classes/**/resources/*.properties
       86 
       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
       90 file is:
       91   openjdk/j2se/make/java/nio/genExceptions.sh
       92 
       93 
       94 gcjwebplugin
       95 ============
       96 
       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
      102 untrusted applets.
      103 
      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.