On Tue, Feb 09, 2010 at 12:48:21AM +0100, Jan de Groot wrote: > On Mon, 2010-02-08 at 13:37 -0700, Brendan Long wrote: > > Couldn't the piecemeal update problem be fixed by just putting > > version > > numbers in the depends() section in each updated package, so for the > > libpng rebuild for example, depends(... libpng>=#.#)? It would fix > > the > > problem in the most obvious/arch-like way. > > Some of us do that, so what happens next: > > very-old-system# pacman -Sy firefox > > pacman downloads new repo db, checks for firefox and downloads all the > versioned dependencies. The user can run firefox fine now, but > everything else on the system is broken because it wasn't updated for > the new libpng. Just leave the old libpng in place, and nothing will be broken. > Now this can be caught by using depends=('libpng>=1.4.0' > 'libpng<1.5.0'), but what if upstream decides to fuck up the ABI in a > release and bump soname in the middle of the 1.4 branch? I don't expect > libpng to do that, but there's examples of others around. We can never > be sure that the next incompatible version will be 1.5.0. A binary of an app depends on the *major* version of a library. Updates that do not change the major version must be backward compatible. Ciao, -- FA O tu, che porte, correndo si ? E guerra e morte !