(re)build Sssd-client.i686 For X86_64

Home » CentOS » (re)build Sssd-client.i686 For X86_64
CentOS 5 Comments

hi all,

i’m trying to rebuild the current sssd-client.i686 rpm that is part of the x86_64 repo, but i fail to do so. rebuilding the sssd.src.rpm on x86_64 does not produce this rpm.

i can rebuild sssd.src.rpm with –target=i686, but that sssd-client rpm has conflicts and a whole bunch of i686 deps that the rpm from the CentOS repo doesn’t have.

tips/help welcome

stijn

5 thoughts on - (re)build Sssd-client.i686 For X86_64

  • I’ll assume CentOS-7 as you don’t really say which version. This works for CentOS-6 as well though.

    RHEL-7 does not contain a full i686 tree, only some of that tree in the form of multilib packages. However to BUILD those i686 packages, you need a full i686 repo in your build system.

    CentOS-7 does actually have an AltArch i686 SIG that produces a fully installable i686 arch. You could use this arch and mock to build i686
    packages on an x86_64 CentOS-7 machine.

    You always want to build SRPMs in mock instead of using rpmbuild on a normal system because when building the configure files look for things to link against .. if it finds extra things installed on your system
    (like desktop files or extra repository packages) it can link against those files and then require things you don’t want. Mock creates a separate minimal chroot and adds only requirements of the specific SRPM
    to that minimal root. The RPMs produced are then only linked against that very controlled build root.

    There are mock configs for both CentOS-6 i386 and CentOS-7 i386 that will work to build packages in mock and use the CentOS Base and Updates repos by default.

    You can also see all the mock configs we use on CentOS-7 here:

    https://git.CentOS.org/tree/sig-core!bld-seven.git/37012c4fe4f69aa649fdb3e9b1ec002aafd2054f/mock

  • I forgot to say that we have a mock in CentOS extras for CentOS-7. You can get it with:

    yum install mock

  • hi johnny,

    apologies, yes this is CentOS7 on x86_64.

    i had to set PKGCONFIG_DIR, but that looked like the only thing.

    i’ll give mock a try and see what comes out.

    thanks a lot

    stijn

  • hi all,

    building with mock was pretty easy (esp easier then figuring out what build deps were required ;)

    anyway, for this specific case, following things needed to be taken in account:
    * do not copy all i686 rpms with the x86_64 ones in a single repo; was a huge mess. i ended up with same rpms that CentOS has in the x86_64 repo
    (sssd-client and some of the libsss rpms)
    * i was unable to mix the x86_64 copr sssd rpms with self build i686
    ones. once i also rebuild the x86_64 ones, things worked out (wrt manpage conflicts)

    anyway, thanks a lot for the explanation!

    stijn