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

Reply via email to