On Thursday, October 04, 2012 12:41:42 PM Karanbir Singh wrote:
On 10/04/2012 05:18 PM, Lamar Owen wrote:
And it *is* a manual process; there are steps that I have used that would be difficult to automate in any reasonable manner.
I think its worth doing the 'find srpms that exclude ia64' and work out their dep chain -
Yes, that is a worthwhile thing to do. But, given the use of conditional buildrequires: in some packages (gdb, for instance), this would require more than just getting the buildrequires from the SRPM's headers, I would think. Possibly even going as far as using rpmbuild to interpret the specs. In the gdb case, the SRPM's header documents buildrequires on:
ncurses-devel texinfo gettext flex bison expat-devel readline-devel zlib-devel python-devel libstdc++
But on ia64 there is a build requirement for libunwind, and the version of libunwind required is different between el5 and non-el5. The spec file segment (for those who might wonder how that sort of thing is done):
... %ifarch ia64 %if 0%{!?el5:1} BuildRequires: libunwind-devel >= 0.99-0.1.frysk20070405cvs Requires: libunwind >= 0.99-0.1.frysk20070405cvs %else BuildRequires: libunwind >= 0.96-3 Requires: libunwind >= 0.96-3 %endif %endif ...
(incidentally, this one tripped me up for a while. I had set %dist to my own string, but the %el5 macro won't be set if %dist is not .el5, thus I was getting a buildrequire for the cvs version of libunwind-0.99. And while I did find a src.rpm (in Karanbir's KBS Extras Testing repo) for that version, well, suffice to say that trying to build the 0.99 libunwind on an SGI Altix *softlocks all CPUs, hanging the machine* during the test phase. Needless to say, the 0.98 version, which is in upstreams sources now, is the version that will build. But it took a little longer than I would have liked to track down the fact that setting %dist to something custom would break the build of gdb. Oh, and this would not have shown up in any of the builds for i386 or x86_64, yet another place the ia64 build is just plain different (and follows a different build chain) from those.)
I suspect you have quite a few more RPMS than are needed to be upstream compatible.
Yep, that's very possible. And I know of at least one that I haven't built yet that's not in the i386 or x86_64 centos5 releases, and that's the elilo bootloader.
Also worth keeping in mind is that while its a good idea to build the BuildArch: noarch ones' you should not block on those failing - I remember a bunch were not happy on ia64's arch type.
Interesting; I hadn't run into that (I don't think, at least).
I'm using smock.pl's '--keepgoing' directive to tell smock to, well, keep going so no failures block the build.