On 2011/05/16 12:42, Ted Unangst wrote: > On May 16, 2011, at 2:21 AM, Stuart Henderson <s...@spacehopper.org> wrote: > > > On 2011/05/15 18:22, Ted Unangst wrote: > >> On Sun, May 15, 2011 at 4:42 AM, Stuart Henderson <s...@spacehopper.org> > >> wrote: > >>>> In one week, libpng is updated to version X+1 and firefox is updated > >>>> to version Z+1. You update. The gtk version has not changed, it will > >>>> not be upgraded. Now firefox is linked to png X+1 and X (via gtk). > >>>> Hilarity ensues. A newly built gtk will be linked against png X+1 and > >>>> will work correctly. > >>>> > >>>> Determining which package needs rebuilding is really hard. It's much > >>>> easier to install a complete matched set. > >>>> > >>>> > >>> > >>> Packages takes care of this just fine *but* you are supposed to > >>> use packages from a consistent snapshot. Don't just update a single > >>> package, make sure you 1) update packages as a complete set and > >>> 2) the mirror you're updating from isn't half-way through updating. > >> > >> They do? As far as I know, firefox will only say that it depends on > >> gtk Y and png X+1. Nothing records the fact that firefox depends on a > >> gtk Y that itself depends on png X+1. > > > > If you update all packages from a consistent snapshot then this doesn't > > matter because the firefox and gtk packages will both depend on the same > > version of png. > > Right, but what happens when you upgrade firefox? Then it's from a different > snapshot. Or is gtk "upgraded" as well even though the version doesn't > change? I don't see how pkgadd can know to do that. > > Returning to point 1 above, how does one update packages as a complete set?
You're not supposed to do upgrade just one package, the packages should be updated as a set, pkg_add -u from a mirror with a consistent set of files does this.