[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]

Re: Two questions about making rpms work on multiple OS versions



On 3/26/06, Frank Cusack <fcusack fcusack com> wrote:
> On March 25, 2006 2:45:13 PM +0100 Axel Liljencrantz <liljencrantz gmail com> wrote:
> > * Overzelous dependencies. When building fish on Fedora Core 5, a
> > dependency on libc.so.6 is automatically added, but fish works just
> > fine using earlier versions of libc. How can one specify that fish
> > doesn't actually need the latest version of a library? Doing so would
> > enable me to provide an rpm on the fish download page that works with
> > any semi-modern RPM-based distribution.
>
> No it wouldn't.  If you *build* fish against libc.so.6, at compile time
> the linker puts a dependency on libc.so.6 into the fish binary.  The
> rpm dependency checker notes this.  Now, if you CAN run fish against
> libc.so.5, that's fine, but the version you just built will NOT work
> against it because symbols are different sizes, etc, which is why the
> specific version is recorded in the dependency.  In order to work against
> libc.so.5, you need to build against libc.so.5.  (And that binary won't
> then work on a libc.so.6 system.)

I was under the (apparently incorrect) impression that LSB protected
me from this when only using libc. The fact that I've used a fish
version compiled on FC5 under FC4 the last few days with no issues
also helped. I guess I was simply lucky.

>
> But if you must, you can use the external dependency generator (look
> through /usr/lib/rpm/macros) and set __find_requires to a script which
> calls the "real" find-requires and filters out the dependencies you feel
> are "bad".  But libc.so.6 isn't one of them.

Ok.

>
> -frank

--
Axel


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]