How to check applications vs. libraries
fbsd.questions at rachie.is-a-geek.net
Wed Oct 3 15:51:12 PDT 2007
On Wednesday 03 October 2007 14:49:41 RW wrote:
> On Wed, 3 Oct 2007 14:25:18 +0200
> Mel <fbsd.questions at rachie.is-a-geek.net> wrote:
> > On Tuesday 02 October 2007 22:53:20 RW wrote:
> > > On Tue, 2 Oct 2007 19:23:29 +0200
> > >
> > > Daniel Tourde <daniel.tourde at spray.se> wrote:
> > > > I am used to install FreeBSD applications by using the port
> > > > collection. I also update regularly (twice a month or something)
> > > > the apps, using 'portupgrade -a -N' on a refreshed port
> > > > collection.
> > > >
> > > > Here are my questions:
> > > > - How can I check that the apps that have been build with certain
> > > > libraries still work when some of the libs have been updated?
> > > > - Is it possible then to rebuild the selected set of apps that
> > > > have been 'corrupted' by the library upgrade (classicaly from
> > > > liba.1 to liba.2)? If yes, how?
> > >
> > > Generally this doesn't cause a problem as when portupgrade upgrades
> > > a library through a major revision, it puts a copy of the old
> > > library into a compatibility directory.
> > True. /usr/local/lib/compat/pkg
> > > Applications that depend on updated libraries get version-bumped
> > > when the library major version gets changed
> > Not true. Only direct dependants get version bumped and not
> > consistently either.
> It only matters where there is a direct library dependency. And even
> then it doesn't matter all that much because of the back-up libraries.
It matters when a build machine links with a stale version, but packages it
with the current version dep in +CONTENTS. This will not happen with direct
dependant, but will happen if the dependency is further down the chain.
> If you follow the UPDATING instructions for when to do `portupgrade
> -fr' and keep you ports up to date, you shouldn't need to worry.
Except that portupgrade -fr ignores HOLD_PKGS and I'll risk getting a
non-working Xorg installation.
Also, I think with the introduction of UPDATING the need to not break things
got less important and at the same time more people started to automate
upgrading ports, because we got spoiled with a stable almost never breaking
ports tree and multi-core machines. This now bites eachother.
> residual paranoia beyond that is better satisfied by running
> portmanager in pristine mode IMO.
Yeah, I'm slowly coming to realize that recompiling all dependants isn't such
a bad idea in distributed environments (build machine and slaves).
More information about the freebsd-questions