Obtaining the source code
While the IzPack installer ships with a package containing the source code, you will probably want to work with fresher versions.
The reference source code depot for IzPack is our Subversion repository at Codehaus. For those who would like some more flexibility, Git repositories are also made available.
Subversion
The Subversion repository is available from http://svn.codehaus.org/izpack/ and contains several modules:
- izpack-src: IzPack source code
- izpack-launcher: the native launcher code
- izpack-utils: the IzPack utilities (izpack2exe, izpack2app, ...)
- izpack-maven: IzPack Maven plugin
- izpack-testlangpacks: langpacks testing tool
- izpack-showcases: showcases featuring IzPack on third-party projects (Glassfish v2/v3, Groovy, ...).
Each module follows the trunk/tags/branches conventional Subversion layout.
For instance, you can checkout the IzPack trunk as follows:
svn checkout http://svn.codehaus.org/izpack/izpack-src/trunk izpack-src-trunk
Access through HTTPS shall only be made by the IzPack developers. You can however perform anonymous checkouts and updates through HTTPS, especially if you are stuck behind a HTTP proxy that filters WebDAV HTTP methods.
Git
Git may be a better option if you like to work in a decentralized fashion, and/if you are not an IzPack developer with write access to the Subversion repository.
Julien Ponge (IzPack creator and maintainer) maintains a Git repository on GitHub that is frequently synchronized with the Subversion repository. He is also able to push back changes from Git to Subversion, so do not hesitate to use Git to collaborate with him if you plan to propose patches.
- http://github.com/jponge/izpack/tree/master is the IzPack Git repository
- http://github.com/jponge/izpack-utils/tree/master is the IzPack utils repository
- http://github.com/jponge/izpack-launcher/tree/master is the native launcher repository
For example, you can clone the IzPack repository as follows:
git clone git://github.com/jponge/izpack.git izpack.git
Finally, note the branch named with-git-submodules in the IzPack Git repository. It is the same as master but with additional files to support submodules pointing to the utils and launcher repositories. The reason for having them in a separate branch is that one cannot commit back to Subversion if the current branch has submodules...
Compiling IzPack
IzPack uses Apache Ant. The build file (build.xml) is located in the 'src' folder.
The most important Ant targets are the following ones:
- dist builds an installer ready for publishing
- quickdist is the same, but without generated documentations (faster builds for testing)
- dist+run, quickdist+run launch the installer after the build process is complete
- run.installer launches the generated installer with rebuilding IzPack.
Compiling the documentation
The documentation is written using Python Docutils. The documentation lives in src/doc-rest. The content is stored in plain-text files in reStructured format.
A build script is provided (build.py). As such, you will need Python and the Docutils project to be installed on your system.
Also, the generation of a PDF version requires LaTeX. Popular LaTeX distributions include TeXLive and MikTeX.