rpm needs db4-devel(x86_64) on my 32-bit machine

Panu Matilainen pmatilai at laiskiainen.org
Sat Mar 5 18:19:07 UTC 2011


On 03/05/11 19:49, Jitesh Shah wrote:
> I am running Fedora-14 on my 32-bit machine
> $ uname -a
> Linux localhost.localdomain 2.6.35.9-64.fc14.i686.PAE #1 SMP Fri Dec 3
> 12:28:00 UTC 2010 i686 i686 i386 GNU/Linux
>
> I was trying to build rpm from source the other day, so I downloaded
> the rpm-source using
> $ yumdownloader --source rpm
> which gave me : rpm-4.8.1-5.fc14.src.rpm
>
> Doing a yum-builddep on this gives:
> $ sudo yum-builddep /home/jitesh/repos/rpm-4.8.1-5.fc14.src.rpm
> Loaded plugins: presto, refresh-packagekit
> Getting requirements for rpm-4.8.1-5.fc14.src
> Error: No Package found for db4-devel(x86-64)
>
> Why does rpm-source need a 64-bit library for my 32-bit machine and
> how can I fix it?

It doesn't. It's just that the src.rpm metadata reflects the 
architecture the src.rpm was generated (most visible of those is using 
%{_isa} in BuildRequires but there are myriad other cases too) but 
various parts of the infrastructure + tools expect the src.rpm to be an 
arch-independent thing which it isn't and never was. See 
https://bugzilla.redhat.com/show_bug.cgi?id=554854 and this thread for 
background: 
http://lists.fedoraproject.org/pipermail/packaging/2010-July/007235.html

> I tired installing the 32-bit db4-devel in the hope that it would do
> some black magic to get rid of the dependency (naive optimism). It
> didn't.
>
> I asked this question on IRC and I was told I am to use mock. Is it
> something mock handles gracefully?
> If yes, how? Thing is, mock is heavy-weight enough for me. I don't
> have that quick an internet connection. So, I'd rather emulate what
> mock does.

Basically you regenerate the srpm on the architecture you're building 
on, and then run yum-builddep on it:
1) yumdownloader --source rpm
2) rpm -i rpm-4.8.1-5.fc14.src.rpm
3) rpmbuild -bs ~/rpmbuild/SPECS/rpm.spec
4) yum-builddep on the srpm resulting from step 3)
5) finally build the thing

In F15 you can use yum-builddep directly on spec files, which is the way 
how it should be: buildrequires can only meaningfully be evaluated at 
spec parsing time.

Also using Fedora GIT instead of the src.rpm's in repositories avoids 
this issue: http://fedoraproject.org/wiki/Using_Fedora_GIT

	- Panu -



More information about the devel mailing list