Skip site navigation (1)Skip section navigation (2)
Date:      Wed, 20 Sep 2000 18:49:36 +0100
From:      "Koster, K.J." <K.J.Koster@kpn.com>
To:        'FreeBSD Hackers mailing list' <freebsd-hackers@freebsd.org>
Subject:   Executable packages (long, sorry)
Message-ID:  <59063B5B4D98D311BC0D0001FA7E4522026D78DA@l04.research.kpn.com>

next in thread | raw e-mail | index | archive | help
Dear All,

While we're on the subject of packaging formats, I would like to present an
idea that has been running around in the back of my head.

Years ago I had the pleasure of playing with a new RiscPC by Acorn. If you
create a directory on RiscOS and stick a little BASIC script in with exactly
the right name, RiscOS will treat that directory as an executable. You can
use the directory to stick in whatever the application needs, and the user
never needs to bother. Uninstalling it is as easy as the RiscOS equivalent
of "rm -rf".

Riding on the wave of the unified BSD packages effort, this might be a good
time to rekindle that idea. Say that we agree on some form of uniform
package layout. You'd say that man pages go into $PKG_BASE/$PKG_NAME/man,
and that libraries go into $PKG_BASE/$PKG_NAME/lib, and that there is
probably a script named $PKG_BASE/$PKG_NAME/etc/rc that takes the arguments
"start" and "stop" for system startup. A script named
$PKG_BASE/$PKG_NAME/bin/run is invoked when a user types $PKG_NAME at the
command prompt (triggered by a script in /usr/local/bin, which is symlinked
to $PKG_NAME.

We are already doing this now, but instead we scatter packages across the
filesystem, keeping file lists of where we left the various body parts of
the port.

So is this a bad idea? I don't think so. Some programs already install
themselves in a similar fashion. If you'll allow me to use Tomcat as an
example. After you have installed it, only /usr/local/tomcat new on your
system. It has its own bin/, conf/ and lib/ directory. Deinstalling is as
simple as it is on a RiscPC.

There are other places too, where you see this self-containment crop up. The
executable JAR files from Java, for example. And someone over at KDE or
Gnome (or some desktop kit like that, I can't tell them apart) mentioned
that they were going to do a ZIP archive abstraction, much like they did
with the file system. You could easily make a zip archive behave like an
executable.

I do not think that this is the perfect solution to system clobbering. In
fact, there are some good examples of stuff that should really not be
installed in an executable directory. The GNU tools spring to mind. They
were written according to a UNIX utility philosophy, and should be treated
as such. Other things, such as a web server, or a word processor are much
more self contained.

I hope that you will remember this idea when you find yourself staring at
traces of an old port, unsure if you should delete it or not. :-)

    Kees Jan

================================================
 You are only young once,
       but you can stay immature all your life.



To Unsubscribe: send mail to majordomo@FreeBSD.org
with "unsubscribe freebsd-hackers" in the body of the message




Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?59063B5B4D98D311BC0D0001FA7E4522026D78DA>