Skip to content

megastep/loki_setup

Folders and files

NameName
Last commit message
Last commit date
Aug 31, 2021
Oct 10, 2006
Jul 25, 2008
Apr 10, 2000
May 11, 2015
Mar 30, 2009
Jul 25, 2008
Jun 11, 2006
Mar 7, 2004
May 17, 2005
May 12, 2015
Sep 17, 2002
Dec 11, 2009
Apr 29, 2000
Apr 18, 2012
Aug 11, 2000
May 2, 2003
May 2, 2000
Jan 16, 2001
Aug 31, 2021
Jul 31, 2000
Apr 11, 2008
Apr 3, 2002
Oct 19, 2002
Sep 11, 1999
Feb 28, 2008
Mar 31, 2006
Oct 10, 2006
Mar 8, 2006
Sep 17, 2002
Mar 7, 2006
Oct 10, 2006
Sep 17, 2002
Aug 23, 2016
Sep 17, 2002
Aug 23, 2016
May 18, 2006
Apr 21, 2012
Feb 8, 2006
Apr 13, 2012
Mar 29, 2006
Mar 20, 2007
Jan 25, 2005
Nov 10, 2004
May 12, 2015
Jan 16, 2001
Nov 29, 2000
Mar 30, 2010
Mar 30, 2010
Mar 9, 2004
Jan 28, 2002
Nov 2, 2004
Mar 9, 2004
Sep 2, 1999
Oct 18, 2023
Oct 19, 2002
Jan 16, 2001
Jan 26, 2007
Apr 14, 2003
Dec 1, 1999
Nov 2, 2004
Feb 8, 2006
Mar 21, 2006
Apr 3, 2002
Nov 24, 2004
Feb 27, 2003
Feb 10, 2006
Feb 8, 2005
Sep 17, 2002
May 12, 2015
Jun 6, 2003
Oct 10, 2006
Apr 19, 2003
May 12, 2015
Nov 14, 2000
Mar 17, 2006
Oct 19, 2002

Repository files navigation

The Loki Setup Installer 1.5.8

Written by Sam Lantinga and Stephane Peter


New since 1.4:

  • Added an uninstall program
  • Details about the product are saved to an XML install database

New since 1.3:

  • Added support for multiple operating systems (i.e. FreeBSD)
  • Archive extracting subsystem now uses plugin architecture
  • Improved RPM support
  • Lots of other miscellaneous enhancements and fixes

New since 1.2:

  • Added internationalization support
    • German, Spanish, French, Italian and Swedish are included
  • Fixed potential security problem
  • Various pathing fixes and other miscellaneous improvements.

New since 1.1:

  • Improved C library detection
  • Support for loading install files from CD-ROM
  • Additional attributes for the binary element
  • Environment variable parsing in the XML file
  • Added some environment variables for shell scripts

This installer uses an XML description file to describe a package, and provides both a console and a GTk front-end to install it.

The installer requires libxml 1.4.0 to parse the XML configuration, and libglade 0.7 to dynamically load the GTk user interface definition. Source archives for these libraries can be found in ./libs, and newer versions may also work. You should only install static versions of these libraries, so they will not be required on the user systems.

Building the installer: Type 'make; make install' This builds a static version of the console installer, and a dynamically linked version of the GUI installer, and installs them in the appropriate CD-image subdirectory for this architecture and version of libc.

The image subdirectory contains a set of files that you can copy to your CD image, and modify for the game you are distributing.

CD-ROM install file layout:

setup.sh	(A shell script to run the correct setup binary)
setup.data/
   setup.xml            (XML file defining the install options)
   setup.glade          (XML file defining the GTk UI)
   splash.xpm           (Optional splash image for the GTk UI)
   config.sh            (Optional bootstrap configuration script)
   bin/
   bin/<OS>/<arch>/setup		    (Statically linked console version)
   bin/<OS>/<arch>/<libc>/setup.gtk	(Dynamically linked GTk version)

autorun.inf             (Windows CD autorun file that runs win32/autorun.exe)
win32/
   autorun.exe          (Win32 program that starts up explorer on REAMDE.htm)
   README.htm           (An HTML README file for people running Windows)
bin/
bin/<OS>/<arch>/*
bin/<OS>/<arch>/<libc>/* (Directories holding the binaries for the program)

-- You should edit the setup.data/setup.xml file to match your product, and add a new splash.xpm which will be displayed during the install. There is documentation for the XML setup specification in README.xml

Make sure to copy over the setup.glade file in your setup.data directory every time you update 'setup', because the interface definition may change between revisions and be incompatible with earlier versions.

The binaries for your product are expected to be in bin//// on the CD. The appropriate binary for the current architecture will be chosen at install time. The portion of the path is optional. For example, if your binary is called 'rt2', you could have both x86 and PPC versions for Linux as:

bin/Linux/x86/glibc-2.1/rt2
bin/Linux/ppc/rt2

and the appropriate binary would be chosen.

The install process creates an uninstall script in the install directory which can be run when the user wants to uninstall the product.

Make sure you have included installers for the supported architectures on your CD! We have included x86, ppc, alpha, and sparc64 binaries for this version of the installer.

Also included is Stephane Peter's self-extracting archive script in the makeself subdirectory. We use this at Loki to generate patches.

Play with it, and enjoy!

-- Sam Lantinga, Lead Programmer, Loki Entertainment Software