Skip site navigation (1)Skip section navigation (2)
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>