On 2011-05-15, Ted Unangst <ted.unan...@gmail.com> wrote: > On Sat, May 14, 2011 at 4:05 PM, Amit Kulkarni <amitk...@gmail.com> wrote: >>> Delete all packages, reinstall them. This happens when firefox and >>> gtk are built on separate days. The pkg system does a good job >>> tracking version numbers, but the contents of a pkg can depend in >>> subtle ways on what else is installed and that's not reflected in the >>> version number.
It's not reflected in the version number, it's reflected in the package signature (besides the version number, all those @wantlib lines in the +CONTENTS file). >> Contents? They are the same packing lists, right? >> >> Are you actually talking of subtle .so dependencies and updates being >> performed separately in inter-dependent packages? > > Today libpng has version X, gtk version Y, and firefox version Z. You > install these packages. > > 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.