So I just upgraded a system from an old 8.99 -current to a newer 9.99 current and "postinstall fix obsolete" removed my /usr/lib/libgomp.so.1* However this library was still in use by installed packages (due, I think, to a dependency of libgd on libgomp, thus every gd-using package is now G.D. broke)! I propose that the rule documented in src/distrib/lists/base/shl.mi be far more strictly observed, even for libraries that appear and disappear between releases (i.e. for -current), at least for the ".major" link and the file it points to. If they were never there in a release, never mentioning them as obsolete in releases should be just fine (i.e. they were never there, so never mentioning them is the correct thing to do). On the other hand we could first fix postinstall to be more careful by getting it to fetch all the "REQUIRED" values from package BUILD_INFO like this: pkg_info -a -Q REQUIRES | sort -u and then have it noisily refuse to remove any obsolete file still in this "required" list. This would allow us to mention all old/upgraded shared libraries as obsolete, including those from between releases. Of course this only protects things installed via pkgsrc, and there's still the risk of subsequently needing to install a binary package built for an older release which needs one of these "obsolete" files, but at least pkg_add can (be made to if it doesn't already) notice this and abort. -- Greg A. Woods <gwoods%acm.org@localhost> Kelowna, BC +1 250 762-7675 RoboHack <woods%robohack.ca@localhost> Planix, Inc. <woods%planix.com@localhost> Avoncote Farms <woods%avoncote.ca@localhost>
Attachment:
pgpNxapj94qNC.pgp
Description: OpenPGP Digital Signature