In article <m1jpKfd-0036tsC@more.local>, Greg A. Woods <current-users@netbsd.org> wrote: >-=-=-=-=-=- > >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.
That is a good idea. Perhaps even pkg_info -a -Q REQUIRES | fgrep -v /usr/pkg | sort -u christos