Hi,

Our company projects requires a flexible and easy to use setup program to
work on various Linux distros as well as Windows. Mac support will probably
come in a year or two, because currently our applications are only
available on Linux and Windows, so that is the platforms we are focusing on.

Anyway, I would like to know what features your guys (as developers) would
like to see in a setup program.  Most of the features listed below are
already implemented or at least went through the brain storming and design
idea phase. Here is our requirements and ideas we came up with:

* Linux distro independent setup. Against the normal methods, we do not
  want to waist time creating .rpm, .deb, .tgz, .tbz etc setups for the
  thousands of Linux distros out there. Adobe Reader, Jave SDK and JRE
  are just a few applications that don't follow the package management
  systems of each distro.

* We want a single file setup, similar to how Windows applications get
  deployed (eg: a single setup.exe). This makes it easier for dowloading,
  but we also want the option of an already expanded setup for CD/DVD
  deployment (no need to expand setup to temporary directory first).

* The setup must be able to run as a GUI if a GUI (X11 under *nix
  systems) is available, but also be installable if no X11 exists.
  eg: SSH to a server and install the app via the console.

* The setup must be configurable at runtime. We have a single setup.xml
  file that controls the setup.

* Applications must have an Uninstall option.

* Scriptable installs for extra customization. We are trying to keep the
  basic install executables (setup engine) standard so developers don't
  need to rebuild the setup engine itself, only need to create archives,
  setup.xml and package in into a single executable. For this we support
  pre- and post- install and pre- and post- uninstall scripts. We also
  support one script per feature (user selectable options of
  what must be installed). Usage of scripts are optional of course.

* Automatic icon creation on desktop and Application/Start menu.

* Suggested installation paths. eg: /opt/<app>, /usr/local/<app>, ~/<app>,
  ~/.local/<app>, etc...

* Notification if admin/root security is required

* Selectable features to be installed. eg: Base Install, Help, Extra
  drivers, etc...

* Notification of hard drive space available and how much will be used by
  selected features.

* different internal archive options: gzip, lzma, zip, tar.gz etc...

* Even though the setup is a single file setup, it must support native
  executables. That includes various architectures: 32 or 64 bit, linux,
  *bsd or windows exectubles etc.  Once "full" setup must support all of
  the above. We are considering making a split between *nix type OSes and
  Windows OSes though. After all, this is how it is currently done for
  Linux, Mac and Windows, so end-users are used to that idea.


We are primarily targeting deployment of Free Pascal based applications,
but the setup engine should be flexible enough to handle any type of
application (we hope). :)
We will probably release the setup and setup builder as Open Source
software once done. I hope to create sample setups of Lazarus or FPC itself
to show how it can be done.

So what feature do you require in a setup that we did not think of? What's
your wish list?


Regards,
  - Graeme -

-- 
fpGUI Toolkit - a cross-platform GUI toolkit using Free Pascal
http://opensoft.homeip.net/fpgui/


--
_______________________________________________
Lazarus mailing list
[email protected]
http://lists.lazarus.freepascal.org/mailman/listinfo/lazarus

Reply via email to