[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]

Re: About mock and cross compiling 64 - 32 bit

Fernando Apesteguía wrote:
> Hi all,
> I have a .src.rpm package I made from a .tgz. It builds perfectly in
> my FC6 64 bits. Now I want to generate the 32 bit package. I tried
> with the simple:
> setarch i386 rpmbuild ... ... .... package.src.rpm but it didn't work.
> It still generates a 64 bit binary package. So as I read previously in
> the list, I moved to mock.
> Mock was installed and configured properly. The point is that when I try:
> setarch i386 mock --debug package.src.rpm
> I got from the configure script the following:
> -----------------------------------------
> checking for PACKAGE... configure: error: The pkg-config script could
> not be found or is too old.  Make sure it
> is in your PATH or set the PKG_CONFIG environment variable to the full
> path to pkg-config.
> -----------------------------------------
> It seems to me that this is a problem with the chroot configuration. I
> would like to know where to find more information about how to solve
> this. I can't find information, just the small wiki page in
> fedoraproject.org. Man page doesn't give me more information.
> Any mock-experienced user around here?

I don't have any x86_64 boxes, so I can't help with issues caused by
trying to compile x86 on x86_64.  But I don't think that's got
anything to do with why your package is failing.

Is there a BuildRequires: pkgconfig in your spec file?  If not, then
pkgconfig won't end up in the mock chroot and your configure will
fail.  You can look at the mock logs to see what was installed in the
chroot (root.log).  Then carefully check the build.log to see what all
it complains about and add the packages providing those things via
BuildRequires (or disable them via configure options if you don't want
them in your package).

This often happens when people get used to building packages on their
fully installed systems.  You end up not noticing that something may
be needed as a BuildRequires because you've already got it installed.
Mock is actually helpful in this regard because it pulls in a very
small set of packages by default and requires your spec file to
specify what is needed above and beyond that to build properly.

The Fedora Packaging Guidelines will tell you what the exceptions are
to BuildRequires[1].  Anything not in the exception list should be
added as a BR.  More generally, there is a lot of good stuff in on the
wiki for package maintainers[2] -- some specific to Fedora, but much
of it applies to anyone looking to build clean packages.

[1] http://fedoraproject.org/wiki/Packaging/Guidelines#head-351b11771f3898e032fcd70896ff21b8b82505c7
[2] http://fedoraproject.org/wiki/PackageMaintainers/

Todd        OpenPGP -> KeyID: 0xBEAF0CE3 | URL: www.pobox.com/~tmz/pgp
May your sun be blown out like a candle
May your sea burn like tar
May your sky be rolled up like a scroll
May your blue moon drip with blood

Attachment: pgpPHnXnY1OEm.pgp
Description: PGP signature

[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]