Subject: Re: Shared object not found - but all dependencies are ok ?!
To: None <tech-pkg@netbsd.org>
From: Frederick Bruckman <fredb@immanent.net>
List: tech-pkg
Date: 01/14/2005 02:48:10
In article <Pine.LNX.4.43.0501131141050.27246-100000@pilchuck.reedmedia.net>,
"Jeremy C. Reed" <reed@reedmedia.net> writes:
> On Thu, 13 Jan 2005, Pavel Cahyna wrote:
>
>> > Dependencies that only say the minimum version needed, but don't list the
>> > maximum. Using your example: your snx101view requires the open-ended
>> > imlib>=1.9.14nb5. This matches 1.9.14nb7 which provided
>> > libgdk_imlib.so.1.9.14, but you needed libgdk_imlib.so.10.
>>
>> There is no way to list the maximum, because you don't know which will be
>> the first incompatible version, right?
>
> Right, there is no way to know. (Other than using a specific, one,
> dependency, like imlib=1.9.14nb5, but we don't want to do that.)
Another way to get around that, is to depend on a specific file, that is,
on "lib/libgdk_imlib.so.10". The files provided by a package are already
listed in the "+CONTENTS" file, which is near the beginning of the package,
so the changes required to implement this to the package format, and to
"pkg_add", might be fairly minimal. I think you would only need a new
keyword, say "@needed", and also "@version" would be good too, to
distinguish old packages from packages with no dependencies. "pkg_add"
could take the open-ended dependency as a hint, to know where to start
looking for the file that's "@needed".
I know I've suggested this before. Someone remind me why it's a bad idea...
Frederick