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
