[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 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.)

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.

-frank


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