Date: Fri, 9 Apr 1999 16:51:21 +0200 From: Jeremy Lea <reg@shale.csir.co.za> To: Chuck Robey <chuckr@mat.net> Cc: Alex Zepeda <garbanzo@hooked.net>, John Polstra <jdp@polstra.com>, asmodai@wxs.nl, current@FreeBSD.ORG Subject: Re: /sys/boot, egcs vs. gcc, -Os Message-ID: <19990409165121.A6250@shale.csir.co.za> In-Reply-To: <Pine.BSF.4.10.9904081223480.378-100000@picnic.mat.net>; from Chuck Robey on Thu, Apr 08, 1999 at 12:31:24PM -0400 References: <Pine.BSF.4.05.9904072109480.94006-100000@zippy.dyn.ml.org> <Pine.BSF.4.10.9904081223480.378-100000@picnic.mat.net>
next in thread | previous in thread | raw e-mail | index | archive | help
Hi,
On Thu, Apr 08, 1999 at 12:31:24PM -0400, Chuck Robey wrote:
> [much whining snipped :)]
Your confusing a bunch of different issues here:
1. Poor porting.
a. Ports should not leave behind old files, other than site
configuration files (like samba.conf). If a port leaves any files
behind after a pkg_delete then it is broken and must be fixed.
b. Shared library numbers should be bumped when the interface
changes. I've made a number of mistakes with this on the GNOME
ports, I'll admit.
2. FreeBSD Ports infrastructure problems.
a. Depending on binaries without being able to get a version number.
b. Not being able to upgrade a port in place. Jacques pointed to one
solution to this: using one directory in /var/db/pkg per port.
3. GNOME problems.
a. GNOME has no release engineering. The libraries break APIs for
every pico number bump just about. Or they fix bugs and remove
workarounds at higher levels. Also ESR's $%^*@ advice of release
early and release often means that they often manage three
releases in a 48 hour period.
b. The GNOME ports must be seen as a unity. In fact I'm currently
considering installing tests to stop the base packages being built
from anything other than x11/gnome. The general rule for these
packages is to pkg_delete gnomelibs-x.x.x and *everything* which
depends on it, and then build x11/gnome. I'm going to add
messages to the ports which announce this at uninstall time.
I've been thinking a lot about this and other porting problems presented
by GNOME and am trying to come up with solutions. At the moment I'm
more concerned with actually getting the ports compiled right. But some
thoughts:
1. Use -soname for binaries. Add this to $LDFLAGS or something, to get
a version number installed into a binary then create extra magic or
a script to test this in the DEPENDS. I don't know if this is
possible, but there must be some field available which can be got
with either file(1) or objdump(1). Same idea for scripts.
2. Add a version history in files. Each time a port is upgraded, add
the new PKGNAME to files/history. Recreate these from the CVS
history using a very clever script. Then use this to deinstall all
old versions, or for upgrading. Upgrading requires much more
dynamic PLISTs. Maybe a port should check for all files in PLIST
before installing and refuse to install unless they are cleaned out
first.
3. Change the DEPENDS mechanism in ports to use a Makefile.depends in
each subdir. The port's makefile includes this, which in term
includes all those from the ports it requires. Each port can then
setup the environment for ports which depend on it, and check if
it is correctly installed (using the appropriate magic in
bsd.port.mk).
There are a lot of other things need in a perfect ports/package
system...
Regards,
-Jeremy
--
| "I could be anything I wanted to, but one things true
--+-- Never gonna be as big as Jesus, never gonna hold the world in my hand
| Never gonna be as big as Jesus, never gonna build a promised land
| But that's, that's all right, OK with me..." -Audio Adrenaline
To Unsubscribe: send mail to majordomo@FreeBSD.org
with "unsubscribe freebsd-current" in the body of the message
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?19990409165121.A6250>
