======About====== See http://www.icculus.org/mojosetup/ ====== 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====== Initial tech discussion about MojoSetup features:\\ http://icculus.org/pipermail/lokisetup/2007-May/000810.html Documentation:\\ http://hg.icculus.org/icculus/mojosetup/raw-file/tip/docs.txt ======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