IcedTea-Web =========== The IcedTea-Web project provides a Free Software web browser plugin for running applets written in the Java programming language and an implementation of Java Web Start, originally based on the NetX project. 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/icedtea-web 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-Web repository, particularly in the netx/net/sourceforge/jnlp directory. 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. The Browser Plugin ================== IcedTea-Web contains a Free Software browser plugin based on NPRuntime called NPPlugin. By default, this will be built, and it can be turned off using the -disable-plugin option. Building IcedTea-Web ==================== IcedTea-Web is built using the standard: $ ./autogen.sh (if building from Mercurial rather than a tarball) $ ./configure $ gmake $ gmake install incantation. The build requirements are as follows: * A bootstrap JDK. At present, only IcedTea6 is supported. * A C compiler (for the launchers). * libX11 * zlib-devel Additionally, the plugin requires: * A C++ compiler * firefox-devel * xulrunner-devel The plugin can be disabled by passing --disable-plugin. See ./configure --help if you need to override the defaults. The following locations are checked for a JDK: * /usr/lib/jvm/java-openjdk * /usr/lib/jvm/icedtea6 * /usr/lib/jvm/java-6-openjdk * /usr/lib/jvm/openjdk * /usr/lib/jvm/java-icedtea * /usr/lib/jvm/java-gcj * /usr/lib/jvm/gcj-jdk * /usr/lib/jvm/cacao in the order given above. At present, some of these options fail due to sun.* classes required by IcedTea-Web. Upstream OpenJDK will only be able to compile IcedTea-Web if the patch applet_hole.patch from IcedTea has been applied. Most targets in IcedTea-Web create stamp files in the stamps directory to determine what and when dependencies were compiled. Each target has a corresponding clean-x target which removes the output and the stamp file, allowing it to be rebuilt. Build Modification Options ========================== The build process may be modified by passing the following options to configure: * --disable-docs: Don't build the Javadoc documentation. * --with-gcj: Compile ecj to native code with gcj prior to building. * --with-ecj: Specify the location of a 'ecj' binary. By default, the path is checked for ecj, ecj-3.1, ecj-3.2 and ecj-3.3. * --with-javac: Specify the location of a 'javac' binary. By default, the path is checked for javac. * --with-jar: Specify the location of a 'jar' binary. By default, the path is checked for gjar and jar. * --with-ecj-jar: Specify the location of an ecj JAR file. By default, the following paths are checked: - /usr/share/java/eclipse-ecj.jar - /usr/share/java/ecj.jar - /usr/share/eclipse-ecj-3.{2,3,4,5}/lib/ecj.jar Other options may be supplied which enable or disable new features. These are documented fully in the relevant section below. * --disable-plugin: Don't build the browser plugin. Testing ======= A test suite is supplied for the browser plugin. It can be built using 'make plugin-tests' and run by loading the HTML page specified into a browser with the plugin installed. For debugging, the environment variable ICEDTEAPLUGIN_DEBUG should be set to 'true'. This will produce output on the console from the C++ side, and output from the Java side in $HOME/.icedteaplugin/java.stdout and $HOME/.icedteaplugin/java.stderr. It also starts the debug server on port 8787.