|
Note: If you would like to take over as maintainer of
one of these programs, plese
let me know.
I still try to find time to update these programs' web pages, apply
patches etc, but lately I haven't been doing so well. I'm not using
these programs myself, so maintaining them just isn't very high on my
list of priorities. Please help.
|
setup.sh
introduction |
download |
status |
instructions |
license
Introduction
This program is useful for two things:
- Making open source software you distribute easier to install.
- Making open source software you download from the 'net
cooperate with your system's package manager.
It is basically a large shell script, with built in logic to execute the
"./configure; make; make install;" sequence and if successful install it
with the local package management tools (e.g. rpm). It does this by
tricking "make" into using it's own custom "install" program.
If you are a developer, then you can use this program along with
Stéphane Peter's
self-extracting archives to make downloading and installing your
program merely a matter of point and click. A single self-extracting source
archive would work for all the platforms you have ported your app to.
The need for binary packages might go away completely, if these tools
improve enough...
Download
Status
The current version is
0.1.2.
I have tested the script on a few programs. Follow
the link to see how I'm doing. If you have success/trouble using setup.sh
to install a program, please let me
know!
It is being developed on a RedHat Linux 6.0 system, so it may not work
properly on other systems - but it is my goal to make it support as many
different platforms as possible.
Please note that since I don't have access to a Stampede or Debian
system, I won't be able to support those platforms without help.
Please help!
This is an early release of the program - it is almost fully functional, but
is missing the following important features:
- Doesn't check for conflicts with existing files.
- Can't create Debian packages.
- Can't create Stampede packages.
Other limitations:
- The GUI isn't really very impressive.
- My shell scripting is probably not as portable as GNU's. But it
could be, if I got help...
- It isn't flexibile enough, it should at least allow the user to
select what arguments to pass to configure and/or make.
- It doesn't know about different platforms' file systems etc, that's
currently up to the person who writes the Makefile.
- Doesn't support complicated things like altering /etc/inetd.conf
automagically - installing and removing files are it's current
limit.
- If it was network aware, then it could upgrade itself! ;-)
- It hasn't been tested enough.
Instructions
Users
To use the script to attempt installation of a package you have downloaded
from the 'net, type:
setup.sh /path/to/source/directory/
If the application does not come with a valid .lsm file, you may need to
supply other command-line arguments to get it to work. Use the "--help"
argument for more information.
Obviously, the program will only work properly if the developer has done a
good job porting the application to your platform, so the "configure"
sequence or "make" will assume reasonable defaults for your system.
Developers
The script should work flawlessly with most stand-alone applications,
assuming these rules are followed:
- The "./configure; make; make install" mantra (or just "make; make
install") should suffice to install your program on as many platforms
as possible.
- Your makefile must use the "install" program for all installations,
or (even better) the "$(INSTALL)" macro.
- Be sure your makefile respects the --prefix= configure flag, if you
are using autoconf.
- You should create a valid .lsm file for your application, and keep
a copy of it in the same directory as setup.sh. It should
contain at least the Title, Version, Description,
Author and Copying-policy fields.
- The build sequence shouldn't automatically modify any files
already on the system (e.g. /etc/inetd.conf). If it does, setup.sh
won't notice the change and the generated package will be incomplete
(uninstalling won't work).
If these rules are followed, then just typing
./setup.sh from your
application's source tree should suffice.
In general, I don't think these requirements are too much to ask - most free
software packages appear to follow these guidelines already, especially the
ones using GNU autoconf. If they are a problem for you, check if the command
line arguments can resolve the issue (type ./setup.sh -help), or just
hack the source.
License
This program may be used according to the terms of the
GNU General Public License,
version 2 or above.
Please note that this doesn't mean you have to GPL programs that use this
installer - they are just data from setup.sh's point of view. This
does means that you may not change the license on the installer
itself or works derived from it - it is free software, and will stay that
way.