[CentOS-devel] Interested in IA64 build.

Thu Oct 4 17:30:50 UTC 2012
Lamar Owen <lowen at pari.edu>

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.