On 02/08/2010 06:46 PM, fons@kokkinizita.net wrote:
It just knows that package (which contains application A0 requires package libfoo (which contains library libfoo.so.1).
In that case, play it safe and don't remove anything that any app could depend on. It's better than making a system instantly unusable.
Ciao,
If you're going to do that, why use a package manager in the first place? pacman isn't smart enough to keep track of what's a library and what's not, and fixing that would make packaging things a lot more complicated (and I get the idea that Arch isn't exactly overflowing with volunteers). And really, why use Arch if you don't want updates? Isn't the whole point that you want a system where everything is always up to date, even if things might be broken more often (not my experience)? It would be interesting to try to patch yaourt to do what you're wanting though. The simplest solution I can think of is some sort of script that finds out which files in a package are libraries (probably something simple like looking for $pkgname.$pkgver.so, combined with what files are different in the new package). When you update a library and a package that's held back depends on it: * Build a new package named $pkgname$pkgver that only contains the library * Change the package data for the held-back package to depend on the new library package I assume the first part could be done with regular expressions. I don't know where the package info for installed files is, but you could grab the package from the cache and update the depend section of the .PKGINFO, then re-package it. Maybe worth a try.