How did upgrading applications happen before portupgrade etc?

Alexander Leidinger Alexander at Leidinger.net
Wed Aug 15 07:13:52 PDT 2007


Quoting RW <fbsd06 at mlists.homeunix.com> (Tue, 14 Aug 2007 15:35:15 +0100):

> 
> > >> > On Sun, 12 Aug 2007 14:20:59 +0200
> > >> > Alexander Leidinger <Alexander at Leidinger.net> wrote:
> > >> >
> > >> >> Quoting RW <fbsd06 at mlists.homeunix.com> (Sat, 11 Aug 2007
> > >> >> 22:58:58 +0100):
> > >
> > >> > Actually having dependencies package version mismatches needn't
> > >> > cause any significant problems.
> > >>
> > >> It does cause problems. You have no +REQUIRED_BY file anymore, so
> > >> pkg_delete allows you to remove it without a warning even if it is
> > >> still needed.
> > >
> > > I didn't say it doesn't, I said it needn't. When I have to remove a
> > 
> > It will. No doubts about this, sorry. It may be ok for some hobbyist  
> > installation, but in the generic case you want to do it right (and
> > the OP asked for the generic case which includes production quality
> > ports management).
> > ...
> > It's not about removing a port when updating. It's about correct
> > leaf ports detection which may be necessary from time to time.
> 
> Detecting leaves by +REQUIRED_BY alone is unreliable unless you can
> guarantee that the entries have *always* been updated to reflect the
> installed packages - by everybody that worked on the server.  

+REQUIRED_BY is not only used in leaf ports detection, but also to
prevent unwanted removal of ports which other ports depend upon
(there's some implicit dependency here, yes). And as the file is
handled by pkg_* programs and not by hand, it is a procedural error (or
a bug in our programs) if it is not updated correctly.

> It's more forgiving to work downwards through the dependencies to
> find leaves,and fairly easy to script. 

Are you sure? I would say it is more easy to do it right in the
beginning. To be able to do it your way you need to update the +CONTENT
files to point to the updated version instead to the old version. When
you do this, it is not much more work to keep the +REQUIRED_BY file
up-to-date.

> > > doesn't rely on +REQUIRED_BY, and provides additional protection
> > > against build-dependency deletion which you don't get from
> > > pkg_delete.
> 
> > Sidenote: I also don't see a benefit when pruning to keep the
> > obscure build dependencies of a port you don't want anymore.
> 
> Just like there's no point in keeping the obscure run dependencies of a
> port you don't want anymore. Leaf deletion is an iterative

I agree.

> process, when you delete one leaf you may create more.  

I agree.

> "Portmanager -slid" prompts you to delete a build dependency when the
> last package that needs it for a rebuild is removed.

Nice.

Bye,
Alexander.

-- 
Rule of Life #1 -- Never get separated from your luggage.
http://www.Leidinger.net  Alexander @ Leidinger.net: PGP ID = B0063FE7
http://www.FreeBSD.org     netchild @ FreeBSD.org  : PGP ID = 72077137


More information about the freebsd-ports mailing list