On 02/15/2017 02:39 AM, Stijn De Weirdt wrote:
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
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/37012c4fe4f69aa649fdb3e9b...