User Tools

Site Tools


en:developer:release_kits

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Next revision
Previous revision
en:developer:release_kits [2015/09/13 08:28] – external edit 127.0.0.1en:developer:release_kits [2023/03/13 01:46] (current) – external edit 127.0.0.1
Line 1: Line 1:
 +
 +
 +
 ======Release Kits ====== ======Release Kits ======
 The Greenstone release kits automate the task of creating a releases of Greenstone2, Greenstone3 or the documented example collections. They are basically a collection of ant scripts which encode the process for creating a release, but they also contain the ant-installer software for creating jar installers, wrapper code to turn jar installers into native executables, some custom ant tasks, and some canned resources which go into realeases. They do things like download source code from svn and compile it, delete files not needed for distributions, create the executable installers, and produce iso images for distribution on the web and cd rom. The Greenstone release kits automate the task of creating a releases of Greenstone2, Greenstone3 or the documented example collections. They are basically a collection of ant scripts which encode the process for creating a release, but they also contain the ant-installer software for creating jar installers, wrapper code to turn jar installers into native executables, some custom ant tasks, and some canned resources which go into realeases. They do things like download source code from svn and compile it, delete files not needed for distributions, create the executable installers, and produce iso images for distribution on the web and cd rom.
Line 84: Line 87:
  
 ====rk3====  ====rk3==== 
 +
 +===Overview of Greenstone3 Release Kits===
 +There are four top level targets for all Greenstone3 release kits. They are:
 +
 +<code>
 +1 compile
 +2 create-distribution
 +3 create-installer
 +4 wrap
 +</code>
 +
 +Each is explained in detail below.
 +
 +  ***compile**
 +This target compiles the native binary executables and the documentation for the release. It checks out the Greenstone3 source code from the repository into a folder called ''greenstone3''. It then compiles it by running ''ant'', automatically editing files, and so on. It basically simulates what an svn user would do to compile Greenstone3 but with a few small differences. One such difference is that it compiles everything statically.
 +
 +When running ''ant'', this target uses a special build script which is part of the release kit, called ''operations-on gs3home.xml''. This file replaces ''dist-resources/build.xml'' which used to be in the repository.
 +
 +   ***create-distribution**
 +This target compiles all the java classes used in Greenstone3, and creates a clean Greenstone3 directory structure which holds the compiled java classes and the compiled binaries and documentation from the previous step. It exports the Greenstone3 source code to ''distribution/greenstone3''. It then compiles all the java classes, including those for GLI and the indexers, by running ant, using the special ''operations-on gs3home.xml'' script. It copies the compiled binary executables and documentation from ''greenstone3'' to the appropriate places in ''distribution/greenstone3''. It also deletes some files useful only on other operating systems, and some files only for greenstone2.
 +  ***create-installer**
 +This target creates an executable jar installer for Greenstone3, and puts it in a directory called ''installer''. It uses the files in ''distribution/greenstone3''. It uses the ''ant-installer'' package included with the release kit.
 +
 +  ***wrap**
 +This target wraps the executable jar installer in a native executable, and puts it in a directory called ''wrapped-installer''. It also creates another copy with a bundled JVM.
 ===sork2 and sork3=== ===sork2 and sork3===
 ====derk====  ====derk==== 
Line 170: Line 198:
 This target wraps the executable jar installer in a native linux executable, and puts it in a directory called //wrapped-installer//. In the future it will also create another copy with a bundled JVM. This target wraps the executable jar installer in a native linux executable, and puts it in a directory called //wrapped-installer//. In the future it will also create another copy with a bundled JVM.
  
 +====Differences between linux release kit and other release kits====
 +===Wrapped executable with bundled java installer ===
 +The java installer for linux from the sun website is a self extracting executable - it does not have a gui installer interview process. Therefore, it was convenient to just create a regular tar with the same contents and ship that with the executable with bundled java. It is extracted into the temp directory on the user's machine when they execute the installer executable, whether java is found on their machine or not. Then, the installer jar is launched (using their java if they have it, otherwise the one in the temp directory). When the user hits 'install', java is copied from the temp directory into their greenstone installation (GSDL3HOME/packages/jre).
en/developer/release_kits.1442132884.txt.gz · Last modified: 2018/03/26 23:10 (external edit)