Zip Package
Generation of the zip package includes fixing the assembly maven plugin:
- different xml configurations for different edition have to be created (author.xml, reader.xml, server.xml)
- appropriate modules have to be added in the include tags
- packaging have to be changed to zip
- file sets tags have to be added with the scripts that are used for running the application.
- two module sets have to be created - for the jars needed for the corresponding edition and for the launcher module. The outputDirectory tag should point to the path where jars have to be located (in modules folder).
- the unused dependencies(or at least part of them) should be removed to lower the size of the distribution and to be the correct module dependencies(without transitive ones). In this way there can be real enable/disable of plugins, because they are hardly connected with pom.xml dependencies.
Research has been made and the result is that the workable goal is
mvn package assembly:assembly
(with the appropriate assembly configuration of course). The tar.gz package can be added in the configuration too. The implementation will be linked in the implementation section of this task because it will be done during the research about this :). Note: the script files have to be edited and native libraries should be installed on the user machine from there when the installation is not through the installer.
RPM and DEB packages
RPM:
- There is maven plugin which can generate rpm package of our build: http://mojo.codehaus.org/rpm-maven-plugin/ and there is very useful example with the configuration needed: http://mojo.codehaus.org/rpm-maven-plugin/example1.html. It has to be integrated in our project(in plugins/pluginManagement section).
- The deb packages are more complicated to be done automatically(because maven plugin about this is now under development). But there is a way to convert RPM package to DEB (http://www.howtoforge.com/converting_rpm_to_deb_with_alien). This can be done manually with script but may be hudson cannot generate deb packages automatically (there is possibility for running a script after hudson assembly goal).
Hudson Zip Distribution
- On Hudson, running on http://sophie2.org:8080/, the plugins have to be updated - Batch Tasks plugin should be installed.
- New job has to be created - Sophie 2 Distribution, which will run once in a day and will assembly the build on the server. It should generate zip and tar.gz packages and upload them on the Trac. These are something like daily builds and another script for uploading them to the trac has to be created.
- There is very useful example how to use batch tasks on Hudson: http://cwiki.apache.org/WW/apache-struts-pseudo-nightly-builds-on-apache-hudson.html. This is the thing that we need. The script has to be created on sophie2.org server and will be linked in the implementation section(together with the trac connection script for uploading the daily build on the download page).
Sophie Installer
After research one suitable installer for Sophie 2.0 was found - IzPack - http://izpack.org/. It is multi-platform and can resolve the problems with the native libraries for sophie browser and media. License is compatible with ours while the other found installers are either with uncompatible license or have to be ordered. It has configuration xml file where all the needed files and configs can be added easily, the look-and-feel can be changed also.
Estimation
The estimate is that all of this should be done in week 4 m10. For the installer some prototype implementation will be done in GROUP_DEPLOYMENT_R1.