[Fedora-packaging] Question about how libgcj-devel requires zlib

Bruno Wolff III bruno at wolff.to
Mon Sep 22 18:26:25 UTC 2008


On Mon, Sep 22, 2008 at 12:40:10 -0400,
  seth vidal <skvidal at fedoraproject.org> wrote:
> On Mon, 2008-09-22 at 11:33 -0500, Bruno Wolff III wrote:
> > While playing with custom repos I noticed that libgcj-devel requires a
> > file from zlib-devel that isn't explicitly provided. In a mixed x86_86 / i386
> > environmentment this requires looking at the file lists to see that
> > libgcj-devel-4.3.2-4.i386 needs zlib-1.2.3-18.fc9.i386 and that
> > zlib-1.2.3-18.fc9.x86_64 isn't good enough.
> > 
> > I am not sure if this is actually a bug though and if so, which package
> > is at fault. I was hoping to get some guidance here on whether or not
> > this is something I should bugzilla.
> 
> I think that file dep is explicit - b/c libgcj-devel-4.3.2-4.i386 needs
> the i386 version of that package - not the x86_64.

It requires a specific lib file that is different between the i386 and x86_64
versions of zlib-devel. However the different files are not "provide"d by
either zlib so you can't find the dependceny without using the file lists.

There are over 700 -devel rpms in Fedora where the i386 version of the
package doesn't "provide" anything not "provide"d by the x86_64 version.
presumably most of these put their libs in different places and they
get pulled in because yum (or whatever) ends up looking through the file
lists.

(There are also a lot (nearly 3000) of the i386 rpms in fedora that "provide"
something not provided by any x86_64 packages, but are not included in
the normal x86_64 rawhide repo. This seems odd, but not strictly an error.
My supposition is that a lot of these packages have a gratiutious (x86-32)
provides, but I really haven't look into it.)

In a couple of cases I looked at things are even more broken. For example
nspr-devel is needed by nss-devel and there do appear to be differences
between the i386 and x86_64 libraries, yet the requires for nss-devel to not
require anything that is not provided by the x86_64 version of nspr-devel.
I am not 100% sure this is broken, but it looks wrong to me.

[root at cerberus Packages]# rpm -q --provides -p nspr-devel-4.7.1-2.fc10.i386.rpm
nspr-devel = 4.7.1-2.fc10
[root at cerberus Packages]# rpm -q --requires -p nss-devel-3.12.1.1-2.fc10.i386.rpm
/bin/sh  
libfreebl3.so  
libnss3.so  
libnssckbi.so  
libnssdbm3.so  
libnsspem.so  
libnssutil3.so  
libsmime3.so  
libsoftokn3.so  
libssl3.so  
nspr-devel >= 4.7
nss = 3.12.1.1-2.fc10
rpmlib(CompressedFileNames) <= 3.0.4-1
rpmlib(PayloadFilesHavePrefix) <= 4.0-1
rpmlib(VersionedDependencies) <= 3.0.3-1
[root at cerberus Packages]# rpm -qlp ../../x86_64/Packages/nspr-devel-4.7.1-2.fc10.x86_64.rpm
/usr/bin/nspr-config
/usr/include/nspr4
/usr/include/nspr4/nspr.h
/usr/include/nspr4/obsolete
/usr/include/nspr4/obsolete/pralarm.h
/usr/include/nspr4/obsolete/probslet.h
/usr/include/nspr4/obsolete/protypes.h
/usr/include/nspr4/obsolete/prsem.h
/usr/include/nspr4/plarena.h
/usr/include/nspr4/plarenas.h
/usr/include/nspr4/plbase64.h
/usr/include/nspr4/plerror.h
/usr/include/nspr4/plgetopt.h
/usr/include/nspr4/plhash.h
/usr/include/nspr4/plresolv.h
/usr/include/nspr4/plstr.h
/usr/include/nspr4/pratom.h
/usr/include/nspr4/prbit.h
/usr/include/nspr4/prclist.h
/usr/include/nspr4/prcmon.h
/usr/include/nspr4/prcountr.h
/usr/include/nspr4/prcpucfg.h
/usr/include/nspr4/prcvar.h
/usr/include/nspr4/prdtoa.h
/usr/include/nspr4/prenv.h
/usr/include/nspr4/prerr.h
/usr/include/nspr4/prerror.h
/usr/include/nspr4/prinet.h
/usr/include/nspr4/prinit.h
/usr/include/nspr4/prinrval.h
/usr/include/nspr4/prio.h
/usr/include/nspr4/pripcsem.h
/usr/include/nspr4/private
/usr/include/nspr4/private/pprio.h
/usr/include/nspr4/private/pprthred.h
/usr/include/nspr4/private/prpriv.h
/usr/include/nspr4/prlink.h
/usr/include/nspr4/prlock.h
/usr/include/nspr4/prlog.h
/usr/include/nspr4/prlong.h
/usr/include/nspr4/prmem.h
/usr/include/nspr4/prmon.h
/usr/include/nspr4/prmwait.h
/usr/include/nspr4/prnetdb.h
/usr/include/nspr4/prolock.h
/usr/include/nspr4/prpdce.h
/usr/include/nspr4/prprf.h
/usr/include/nspr4/prproces.h
/usr/include/nspr4/prrng.h
/usr/include/nspr4/prrwlock.h
/usr/include/nspr4/prshm.h
/usr/include/nspr4/prshma.h
/usr/include/nspr4/prsystem.h
/usr/include/nspr4/prthread.h
/usr/include/nspr4/prtime.h
/usr/include/nspr4/prtpool.h
/usr/include/nspr4/prtrace.h
/usr/include/nspr4/prtypes.h
/usr/include/nspr4/prvrsion.h
/usr/include/nspr4/prwin16.h
/usr/lib64/libnspr4.so
/usr/lib64/libplc4.so
/usr/lib64/libplds4.so
/usr/lib64/pkgconfig/nspr.pc




More information about the Fedora-packaging mailing list