User Tools

Site Tools


projects:liflg:mojosetup

About

Status

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

Problems

  • doesn't create a symbolic link which points to the start script 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 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

$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

  • get a clone of the LIFLG repository:
    hg clone https://kratz00.org/hg/liflg/
  • create your working copy:
    cp -pr liflg/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".mojo.run`
    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".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.txt · Last modified: 2012/02/21 19:44 by kratz00