aboutsummaryrefslogtreecommitdiffstats
path: root/README
blob: a275530f2eb441aae67dcecb1139facfbaa2b438 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
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.  Some currently fail.

Most targets in IcedTea 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.