Current-Users archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

Re: postinstall removed yet another "obsolete" system library that was still used....

In article <m1jpKfd-0036tsC@more.local>,
Greg A. Woods <> 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/*
>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


Home | Main Index | Thread Index | Old Index