This is an old revision of the document!
Table of Contents
About
Status
Right now we are evaluating to switch from loki_setup (GTK2) to mojosetup.
Problems
- doesn't create a symlink which points to the startscript of the game (https://bugzilla.icculus.org/show_bug.cgi?id=3129)
- how can we launch a shell script from within the installer?
- how can we copy the same behavior which is possible with loki_setup and the component tag
x86 and x86-64 Support
If we have binaries for both architectures we build two installers, most likely we only have binaries for x86, in this case we will only make a installer for x86. It would not make sense to build a native x86_64 installer, if you need the 32 libs anyway to run the game.
- since the installer itself is a binary, there has to be a separate x64 installer to deliver x64-game-binaries
- it's not possible for a x86 installer to detect if its running on a x64 machine (and install the x64 binary of the game)
Worth reading
Naming schema
$GameName_$Version-$Language.$Special-$Patchlevel_$Arch.bin
What does all those fields mean?
- $GameName: name of the game (multiple words have to be separated by a dot)
- $Version: version number of the game
- $Language: indicates in which language the game is, if it supports more than one language use multilingual for this field
- $Special: normally this field can be omitted, it's used to distinguish special flavours of a game, e.g. our Serious Sam 2 installer is avaiable as a dvd, 4 cd and Software Pyramide dvd version (multiple words have to be separated by a dot)
- $Patchlevel: only used if a already released installer had to be fixed, so omit this field if it's the first release, it's 2 for the first fix, 3 for the second and so on
- $Arch: x86 or x86_64
Example 1: mohaa_1.11beta3-dutch.warchest.edition_x86.bin
$GameName | $Version | $Language | $Special | $Patchlevel | $Arch |
---|---|---|---|---|---|
mohaa | 1.11beta3 | dutch | warchest.edition | x86 |
Example 2: true.combat.elite_0.49b-english-4_x86_64.bin
$GameName | $Version | $Language | $Special | $Patchlevel | $Arch |
---|---|---|---|---|---|
true.combat.elite | 0.49b | english | 4 | x86_64 |
Installer Howto
- check out the dummy:
svn export svn://svn.linux-gamers.net/liflg/trunk/mojosetup_dummy $DIRNAME-ACCORDING-TO-THE-NAMING-SCHEMA-WITHOUT-.BIN
- change to the directory:
cd $DIRNAME-ACCORDING-TO-THE-NAMING-SCHEMA-WITHOUT-.BIN
- delete unneeded files:
- delete the lua-compiler:
rm mojoluac.x86*
- delete x86_64-files (for x86 installer):
find . -type f -name "*x86_64" -exec rm "{}" \; -o -name "*64.so" -exec rm "{}" \;
- delete x86-files (for x86_64 installer):
find . -type f -name "*x86" -exec rm "{}" \; -o -name "*x86.so" -exec rm "{}" \;
- edit (at least) those files:
- scripts/config.lua
- meta/splash.png
- data/README.liflg
- data/startscript
- add needed files to data/
- pack the installer (warning: _ugly_ script ahead):
#!/bin/sh NAME="`pwd|rev|awk -F/ '{print $1}'|rev`" cp mojosetup* "$NAME".bin zip - -qr9 data/ guis/ meta/ scripts/ | cat >> "$NAME".bin sha256sum "$NAME".bin > "$NAME".bin.sha256
If anybody knows why the following does not work, please let us know:
zip - -qr9 data/ guis/ meta/ scripts/ >> "$NAME".bin
Create the hash file
sha256sum $Installer.bin > $Installer.bin.sha256
Signing the hash file
gpg -b --armor -u team@liflg.org $Installer.bin.sha256
Bugreports by the LIFLG team
Open reports
- Installer deletes only it's own directory. Assuming you installed the game to /home/reto/glest/3/2/1/ MojoSetup will delete only the directory 1 when uninstalling the game, even when MojoSetup has installed glest, 3, 2, and 1
not-yet-done
- Sort install sources by location, then option
Closed/fixed reports
- Installation fails if pathname contains a whitespace
http://bugzilla.icculus.org/show_bug.cgi?id=4074
- MojoSetup eats RAM (confirmed, will be fixed)
https://bugzilla.icculus.org/show_bug.cgi?id=3925
- MojoSetup slows down when using points in filenames
https://bugzilla.icculus.org/show_bug.cgi?id=3989
- Symlinks don't get deleted - Uninstallation fails
http://bugzilla.icculus.org/show_bug.cgi?id=3941
- MojoSetup throws “BUG: no options”
https://bugzilla.icculus.org/show_bug.cgi?id=3926
- old tar file incompatibility
http://bugzilla.icculus.org/show_bug.cgi?id=3932
- filter function - permission problem
http://bugzilla.icculus.org/show_bug.cgi?id=3763
- SVN and HG repositories out of sync
http://bugzilla.icculus.org/show_bug.cgi?id=3764
- Only depend on a c++ compiler on Beos
http://bugzilla.icculus.org/show_bug.cgi?id=3765
- INCLUDE Could not find include file: CheckCCompilerFlag