Skip site navigation (1)Skip section navigation (2)
Date:      Fri, 29 Feb 2008 14:14:55 +1100
From:      Mark Andrews <Mark_Andrews@isc.org>
Cc:        freebsd-stable@freebsd.org
Subject:   Re: Upgrading to 7.0 - stupid requirements 
Message-ID:  <200802290314.m1T3EtF6048649@drugs.dv.isc.org>
In-Reply-To: Your message of "Fri, 29 Feb 2008 13:30:29 %2B1100." <200802290230.m1T2UUNP021981@drugs.dv.isc.org> 

next in thread | previous in thread | raw e-mail | index | archive | help

> 
> > Marko Lerota wrote:
> > > In http://www.freebsd.org/releases/7.0R/announce.html says 
> > > 
> > > Updating Existing Systems
> > > 
> > > > An upgrade of any existing system to FreeBSD 7.0-RELEASE constitutes 
> > > > a major version upgrade, so no matter which method you use to update 
> > > > an older system you should reinstall any ports you have installed on 
> > > > the machine. This will avoid binaries becoming linked to inconsistent 
> > > > sets of libraries when future port upgrades rebuild one port but not 
> > > > others that link to it. This can be done with:
> > > 
> > > # portupgrade -faP
> > > 
> > > etc...
> > > 
> > > Why!!!
> > 
> > If you never rebuild any ports at all after upgrading to a new major
> > version, then your ports should all continue to work as long as they can
> > find the old libraries they need.  However, once you rebuild a port, it
> > will link to new libraries, and may also link to other libraries that
> > continue to be linked to the old libraries.  You may end up with a binary
> > being linked against libc.so.6 and libc.so.7, which will not work.
> > 
> > > Then the servers. Why should I reinstall all my databases and such? I always
> > > liked that FreeBSD base (OS) is separated from packages. And no matter what I
>  
> > > do with the packages, my OS will always work. I don't want dependency
> > > hell like in Linux. Now you are telling me that my database might not work
> > > after upgrade to a new version. Is that it?
> > 
> > Ports that depend on other ports are vulnerable to this problem.  Ports
> > that only require base libraries are not.  The more ports a port depends
> > on, the more likely you are to run into problems if you don't rebuild all
> > ports to begin with.
> > 
> > So, if you don't ever rebuild any of your ports at all, everything should
> > still work until you finally do rebuild a port.  At that point, if that port
> > doesn't depend on other ports and only links to base libraries, you'll
> > still be fine.  Once you rebuild a port that depends on other ports,
> > things may break if you don't force a rebuild of every port that port
> > depends on.
> 
> 	Running "portupgrade -nrR <package-list>" repeated until
> 	<package-list> stabilised used to also work for just-in-time
> 	upgrades like this.  Unfortunately "portupgrade -nrR" no
> 	longer reports packages that won't be upgraded.  There are
> 	no longer any "-" entries in the output.
> 
> 	I need to see what "portupgrade -nrRf" does before reporting
> 	this.

	For example if I was to upgrade firefox I'd have to upgrade
	548 of the 582 packages on this machine.

	Mark

getlist:
#!/bin/sh -f
sed -e '/Depends on:/d' \
    -e '/Information for/d' \
    -e '/Required by:/d' \
    -e '/^$/d' \
    -e 's/Dependency://' \
    -e 's/ //g' |
sort -u

% pkg_info -rR "*fox*" | ./getlist | wc
     100     100    1665
% pkg_info -rR "*fox*" | ./getlist | xargs pkg_info -rR | ./getlist | wc
     467     467    8435
% pkg_info -rR "*fox*" | ./getlist | xargs pkg_info -rR | ./getlist | xargs pkg_info -rR | ./getlist | xargs pkg_info -rR | ./getlist | wc          547     547    9780
drugs:9.4.x 14:03 {2701} % pkg_info -rR "*fox*" | ./getlist | xargs pkg_info -rR | ./getlist | xargs pkg_info -rR | ./getlist | xargs pkg_info -rR | ./getlist | xargs pkg_info -rR | ./getlist | wc
     548     548    9793
% pkg_info -rR "*fox*" | ./getlist | xargs pkg_info -rR | ./getlist | xargs pkg_info -rR | ./getlist | xargs pkg_info -rR | ./getlist | xargs pkg_info -rR | ./getlist | xargs pkg_info -rR | ./getlist | wc
     548     548    9793
% pkg_info | wc
     582    3869   34258
% 
  
> > The paragraph you quoted above attempts to avoid that breakage and the
> > mailing list questions that ensue, by forcing a rebuild of all ports to
> > begin with.
> > 
> > -- 
> > Skip
> > _______________________________________________
> > freebsd-stable@freebsd.org mailing list
> > http://lists.freebsd.org/mailman/listinfo/freebsd-stable
> > To unsubscribe, send any mail to "freebsd-stable-unsubscribe@freebsd.org"
> -- 
> Mark Andrews, ISC
> 1 Seymour St., Dundas Valley, NSW 2117, Australia
> PHONE: +61 2 9871 4742                 INTERNET: Mark_Andrews@isc.org
> _______________________________________________
> freebsd-stable@freebsd.org mailing list
> http://lists.freebsd.org/mailman/listinfo/freebsd-stable
> To unsubscribe, send any mail to "freebsd-stable-unsubscribe@freebsd.org"
-- 
Mark Andrews, ISC
1 Seymour St., Dundas Valley, NSW 2117, Australia
PHONE: +61 2 9871 4742                 INTERNET: Mark_Andrews@isc.org



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