view README @ 1852:8ae4bc2b6c1d

Update documentation prior to release. 2009-05-27 Andrew John Hughes <ahughes@redhat.com> * NEWS: Add IcedTea7 1.10 release notes. * README: Updated. Remove notes on binary plugs which are no longer an issue. Highlight the addition of javaws, plugin and additional architecture support by IcedTea.
author Andrew John Hughes <ahughes@redhat.com>
date Fri, 29 May 2009 17:04:53 +0100
parents f06356634030
children
line wrap: on
line source

IcedTea
=======

The IcedTea project provides a harness to build the source code from
openjdk.java.net using Free Software tools and dependencies.

IcedTea addresses two problems: it eliminates the build requirement on
proprietary build tools and it provides implementations of Java Web Start
and the browser plugin which are missing from OpenJDK.  It also provides
support for additional architectures via Zero/Shark.

IcedTea also provides build scripts and patches that fix a number of issues
which are as yet unresolved upstream.

See INSTALL for build instructions.

Homepage (wiki):
  http://icedtea.classpath.org/

Bugs (bugzilla):
  http://icedtea.classpath.org/bugzilla

Mailing List: 
  distro-pkg-dev@openjdk.java.net
  http://mail.openjdk.java.net/mailman/listinfo/distro-pkg-dev

FAQ:
  http://icedtea.classpath.org/wiki/FrequentlyAskedQuestions

Anonymous Mercurial checkout:
  hg clone http://icedtea.classpath.org/hg/icedtea6

Java compatibility
------------------

IcedTea is derived from OpenJDK, Sun's open-source implementation of
the Java SE platform.  At this time the build from which IcedTea was
constructed corresponds to an early build of JDK 7.  When JDK 7 is
complete it will implement the Java SE 7 Platform Specification.  Any
APIs in the JDK 7 implementation, whether new or old, are therefore
subject to minor adjustments, major revisions, or even outright
removal between now and the time that the Java SE 7 Platform
Specification is finalized.  Please take these facts into account
before depending upon IcedTea.  IcedTea provides autotools support, a
portable interpreter for ppc and ppc64 support, plugin support and Web
Start support.

A Note About License Headers
----------------------------

Some sources downloaded from openjdk.java.net do not display the GPL
license header.  Instances are:

 - The files in openjdk/jdk/src/share/classes/javax/xml/stream/ seem to 
   comprise the BEA-StAX source code

   http://ftpna2.bea.com/pub/downloads/jsr173.jar

   with some Sun-specific modifications.  We're assuming that Sun is
   bundling BEA-StAX under the terms of the Apache License 2.0 and
   that the modifications are owned by Sun.

 - We are assuming that these files are owned by Sun:
   openjdk/jdk/src/share/classes/**/resources/*.properties


Web Browser Plugin support
===========================

The default web browser plugin has LiveConnect support. It will only
build against a recent version of XULRunner, such as that available in
Fedora Rawhide as of 2008-05-16.  The required development headers are
provided by the xulrunner-devel package.

A new plugin is being developed to support the new Mozilla API changes. It can 
be enabled with the option --enable-npplugin, and it is based on gcjwebplugin.
At the moment there is no liveconnect support for it.

NetX
====

NetX provides a drop-in replacement for javaws (Java Web Start). Since
upstream NetX is dormant, we will be hosting and modifying the sources
in the IcedTea repository, particularly in the netx/net/sourceforge/jnlp
directory.

The NetX sources are built into rt.jar using the same method as
CORBA, JAXWS, JAXP and langtools.

IcedTea's NetX currently supports verification of signed jars, trusted
certificate storing, system certificate store checking, and provides
the services specified by the jnlp API.

NetX
====

NetX provides a drop-in replacement for javaws (Java Web Start). Since
upstream NetX is dormant, we will be hosting and modifying the sources
in the IcedTea repository, particularly in the rt/net/sourceforge/jnlp
directory.

The NetX sources are built into rt.jar

IcedTea's NetX currently supports verification of signed jars, trusted
certificate storing, system certificate store checking, and provides
the services specified by the jnlp API.

CACAO as VM
===========

The --with-cacao configure option replaces the libjvm.so from Sun's
HotSpot with the one from the CACAO VM.  This enables the usage of
IcedTea on architectures which are not supported by the HotSpot VM,
besides the HotSpot zero port.  In contrast to the HotSpot Zero port,
CACAO provides a Just-In-Time compiler for various architectures.

The environment variable CACAO_CONFIGURE_ARGS can be used to pass
additional arguments to the cacao configure.

PulseAudio Mixer
================

Passing --enable-pulse-java to configure will build the PulseAudio Mixer for 
java. This allows java programs to use PulseAudio as the sound backend.

Systemtap support
=================

The --enable-systemtap configure option will try to find the systemtap
runtime development files (sdt.h and the dtrace python script wrapper),
enable compilation of static markers in the hotspot code and install a
systemtap hotspot.stp tapset for easy tracing with systemtap's stap
utility. The probes are documented in tapset/hotspot.stp.

This requires the systemtap-sdt-devel package as build dependency and
optionally the systemtap package at run time when the user want to use
the tapset to trace java programs. The probes have zero overhead when
not used and can safely be compiled in even when not used at runtime.

Support for additional VMs
==========================

Although IcedTea can be built multiple times to use a different virtual
machine, addtional VM's can be built without building the other components
multiple times.

On architectures where hotspot is available, use 
   --with-additional-vms=cacao,zero  (or shark instead of zero)
on architectures where only zero (or shark) is available, use
   --with-additional-vms=cacao  
to build the additional VM's.  It's not possible to build cacao as the 
default VM, and zero as additional VM.

If the build was configured with --with-additional-vms, the additional VM's
are available by calling the java with the option `-cacao' or `-zero' (for
shark as well), or by calling the java tools with `-J-<vm name>'.