User Tools

Site Tools


projects:liflg:mojosetup

This is an old revision of the document!


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 (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 extracting Descent 3 Mercenary archives
  • no support for lzma/7z archives

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.mojo.run

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

  • check out the dummy:
     svn export svn://svn.linux-gamers.net/liflg/trunk/mojosetup_dummy $DIRNAME-ACCORDING-TO-THE-NAMING-SCHEMA
  • change to the directory:
    cd $DIRNAME-ACCORDING-TO-THE-NAMING-SCHEMA
  • 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:
    #!/bin/sh
    NAME=`basename "$PWD"`
    cp mojosetup* "$NAME"
    zip - -qr9 data/ guis/ meta/ scripts/ | cat >> "$NAME".mojo.run
    sha256sum "$NAME".mojo.run > "$NAME".mojo.run.sha256

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

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

Create the hash file

sha256sum $Installer > $Installer.sha256

Signing the hash file

gpg -b --armor -u team@liflg.org $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

not-yet-done

  • Sort install sources by location, then option

http://bugzilla.icculus.org/show_bug.cgi?id=3131

  • Wrong wording vs. automatically mount install CD/DVD

http://bugzilla.icculus.org/show_bug.cgi?id=4516

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

http://bugzilla.icculus.org/show_bug.cgi?id=3766

projects/liflg/mojosetup.1272133297.txt.gz · Last modified: 2010/04/24 20:21 by kratz00