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 -