User Tools

Site Tools




Right now we are evaluating to switch from loki_setup (GTK2) to mojosetup.


  • doesn't create a symbolic link which points to the start script of the game (
  • 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 (there is something nasty for the downloadable Postal installers done by Ryan)
  • no support for extracting Wise setup archives (*.exe)
  • no support for extracting Microsoft cabinet files (*.cab)
  • no support for extracting InstallShield cabinet files (*.cab)
  • no support for 7z archives (but there is support for *.xz files)

x86 and x86_64 Support

If we have binaries for both architectures we build two installers, most likely we only have x86 binaries, in this case we will only make an installer for x86. It would not make sense to build a native x86_64 installer, if you need all the 32 bit libraries anyway to run the game.

  • since the installer itself is a binary, there has to be a separate x86_64 installer to deliver x86_64 game binaries

Worth reading

Naming schema


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 a regular release, it's 1 for the first patched installer, 2 for the second and so on
  • $Arch: x86 or x86_64

Example 1: mohaa_1.11beta3-dutch.warchest.edition_x86

$GameName $Version $Language $Special $Patchlevel $Arch
mohaa 1.11beta3 dutch warchest.edition x86

Example 2: true.combat.elite_0.49b-english-4_x86_64

$GameName $Version $Language $Special $Patchlevel $Arch
true.combat.elite 0.49b english 4 x86_64

Installer Howto

  • get a clone of the LIFLG repository:
    hg clone
  • create your working copy:
    cp -pr liflg/mojosetup_dummy/ $DIRNAME-ACCORDING-TO-THE-NAMING-SCHEMA
  • change to the directory:
  • 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 "*" -exec rm "{}" \;
    • delete x86-files (for x86_64 installer):
      find . -type f -name "*x86" -exec rm "{}" \; -o -name "*" -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:
    NAME=`basename "$PWD"`
    cp mojosetup* "$NAME"
    zip - -qr9 data/ guis/ meta/ scripts/ | cat >> "$NAME"
    sha256sum "$NAME" > "$NAME".sha256

If anybody knows why the following does not work, please let us know:

zip - -qr9 data/ guis/ meta/ scripts/ >> "$NAME"

Create the hash file

sha256sum $Installer > $Installer.sha256

Signing the hash file

gpg -b --armor -u $Installer.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


  • Sort install sources by location, then option

  • Wrong wording vs. automatically mount install CD/DVD

Closed/fixed reports
  • Installation fails if pathname contains a whitespace

  • MojoSetup eats RAM (confirmed, will be fixed)

  • MojoSetup slows down when using points in filenames

  • Symlinks don't get deleted - Uninstallation fails

  • MojoSetup throws “BUG: no options”

  • old tar file incompatibility

  • filter function - permission problem

  • SVN and HG repositories out of sync

  • Only depend on a c++ compiler on Beos

  • INCLUDE Could not find include file: CheckCCompilerFlag

projects/liflg/mojosetup.txt · Last modified: 2012/02/21 19:44 by kratz00