[2581] in SIPB_Linux_Development
Re: athena-libc5 and genhdlist
daemon@ATHENA.MIT.EDU (Derek Atkins)
Thu Feb 11 12:04:16 1999
To: Salvatore Valente <svalente@MIT.EDU>
Cc: linux-dev@MIT.EDU
From: Derek Atkins <warlord@MIT.EDU>
Date: 11 Feb 1999 12:03:47 -0500
In-Reply-To: Salvatore Valente's message of Wed, 10 Feb 1999 19:54:56 -0500
Ok, I've updated 'package-list' for athena-libc5 to fix this
problem. If you add 'Autoreqprov: 0' to the header it will
not automatically determine requires and provides lines. Yeah.
-derek
Salvatore Valente <svalente@MIT.EDU> writes:
>
>
> Derek wrote:
>
> What bug in genhdlist is tickled from the original athena-libc5
> package?
>
> This is a good one. (It's not really a bug in genhdlist, but I didn't
> want to document the whole thing in an RCS log entry.)
>
> When you create an rpm package, rpm does these two things:
>
> 1. It does "ldd" (or equivalent) on each executable in the package,
> and lists the sonames of each required shared library in "Prereqs".
>
> 2. It gets the soname of each shared library in the package, and puts
> those sonames in "Provides".
>
> So, for example, the "info" package has a Prereq of "libz.so.1", and
> the "zlib" package Provides "libz.so.1".
>
> Of course, rpm decided that the athena-libc5 package also Provides
> libz.so.1.
>
> The athena-libc5 package has a Prereq of fileutils (for the
> postinstall script). fileutils has a Prereq of info. (I don't know
> why.) info has a Prereq of libz.so.1.
>
> Circular prerequisite chain. Oops.
>
> The ideal solution would be for rpm to store more info than just the
> soname in the Prereqs and Provides field. For example, it would be
> nice if the athena-fileutils package could be made to Provide
> "libz.so.1(5)" and other libc5 packages could be made to Prereq
> "libz.so.1(5)". However, that would be a lot of work.
>
> An acceptable solution would be to find a way to tell rpm, as it
> builds the athena-libc5 package, "This package doesn't Provide
> anything! These may look like shared libraries, but they're not
> really shared libraries." For example, one could modify rpm to accept
> lines in the .spec file of the form:
>
> %attr(noprovide) /usr/i486-linux-libc5/lib/libz.so.1.0.4
>
> I'll probably make that modification to rpm eventually.
>
> Sal.
--
Derek Atkins, SB '93 MIT EE, SM '95 MIT Media Laboratory
Member, MIT Student Information Processing Board (SIPB)
URL: http://web.mit.edu/warlord/ PP-ASEL N1NWH
warlord@MIT.EDU PGP key available