On Fri, 12 Dec 2008, Seth Vidal wrote:
On Fri, 12 Dec 2008, Michael Schwendt wrote:
> On Fri, 12 Dec 2008 12:13:21 -0500, Christopher wrote:
>
>>> I'm surprised one can "rpm -e glibc-headers" while keeping
glibc-devel
>>> That looks a bit strange.
>>
>> I'll leave you to file a bug on that if you think it's wrong.
>
> If it were that easy:
>
> $ rpm -qR glibc-devel|grep ^glib
> glibc = 2.9-2
> glibc-headers = 2.9-2
>
> So, glibc-devel requires glibc-headers.
>
> $ rpm -q --provides glibc-headers
> glibc-headers(i386)
> glibc-headers = 2.9-2
> glibc-headers(x86-32) = 2.9-2
>
> $ rpm -q --whatprovides glibc-headers
> glibc-headers-2.9-2.i386
>
> $ sudo rpm -e glibc-headers
>
> Uh? That should not have been possible, because now:
>
> $ rpm -V glibc-devel
> Unsatisfied dependencies for glibc-devel-2.9-2.i386:
> glibc-headers = 2.9-2 is needed by glibc-devel-2.9-2.i386
>
> Can anyone reproduce this? Surely I cannot file a bug about glibc. This
> looks more like a bug in RPM. F10 here, btw.
it's a Requires(Pre) thats allowing it to happen.
Yup, just checked (from F-10 glibc.spec):
%package devel
Summary: Object files for development using standard C libraries.
Group: Development/Libraries
Requires(pre): /sbin/install-info
Requires(pre): %{name}-headers = %{version}-%{release}
Try it with xorg-x11-filesystem
rpm -e xorg-x11-filesystem
rpm -Va --nofiles --nomd5
notice the broken deps :(
It's actually the verification which is showing bogus results here
(
https://bugzilla.redhat.com/show_bug.cgi?id=223642) wrt rpm semantics:
"Requires(pre): pkg1" means "pkg1" is required to be present during
execution of %pre scriptlet of the package and nothing else. It does not
imply "Requires: pkg1", that would have to be separately added if pkg1 is
needed during installation *and* runtime.
Whether this is sane behavior is debatable, and has been debated several
times in various places...
- Panu -