[CentOS-devel] build-from-scratch: SRPM Build order now working

Fri Aug 22 20:42:44 UTC 2008
Johnny Hughes <johnny at centos.org>

Brian Schüler wrote:
> Hi folks,
> 
> Calculating the build order out of a set of source RPMs is now possible (even with BuildRequires
> from sources which are not included). The little trick  rpm -E "`cat foo.spec`"  did it. Special thanks
> to Jeff J.! But I have to shorten the output to the essentials because 'rpm' is crashing when the output
> of the spec file is too long.
> 
> Here an example for alsa-lib package:
> 
> [root at centosmirror alsa-lib-1.0.14-1.rc4.el5]# rpm -E "`cat alsa-lib.spec`"
> *** buffer overflow detected ***: rpm terminated
> ======= Backtrace: =========
> /lib64/libc.so.6(__chk_fail+0x2f)[0x300fee55ff]
> /usr/lib64/librpmio-4.4.so(rpmExpand+0x66)[0x3011e1a2f6]
> /usr/lib64/librpm-4.4.so[0x3012622d1c]
> /usr/lib64/libpopt.so.0[0x301b4023e0]
> /usr/lib64/libpopt.so.0[0x301b402419]
> /usr/lib64/libpopt.so.0(poptGetNextOpt+0x402)[0x301b403242]
> rpm[0x403779]
> /lib64/libc.so.6(__libc_start_main+0xf4)[0x300fe1d8b4]
> rpm[0x4034c9]
> 
> -
> 
> build-from-scratch only need a subdirectory called SRPMS with source packages and
> their additional (not included in CentOS-base) dependencies in. The packages are
> built on a (remote) mock build server where the ssh-agent must be running and the
> build server's key added to avoid interaction. The resulting sub directory (i.e. i386)
> must be published on a http server just-in-time to make it accessible for the mock
> build server.
> build-from-scratch checks the setting of the build server, then it calculates the
> build-order and does some sanity checks on the SRPMs. After that it begins to
> compile all SRPMs each in a clean build root in the right order. Build errors and
> dependency lacks are reported on the __BAD subdirectory within the output directory.
> This is also a great tool for writing high-quality .spec-files.
> 
> Build-from-scratch can be downloaded from:
> http://c.dyndns.org/brian/pub/centos/5/tools/
> (it needs createrepo and httpd installed.)
> 
> My hint: Please read it with care before executing.
> 
> VDR (the digital video disk recorder) is now completely mock-buildable on
> CentOS-5 and may be added to a contrib-testing-like repository
> (it is located at http://c.dyndns.org/brian/pub/centos/5/vdr).
> RPMforge does only accept .spec files where the original URLs to the source
> tarballs have partially been vanished or are changing in the future (which
> is not a good idea, I think). So I would have to get storage space there. 
> 
> I hope the build order calculation function helps accelerating the build process
> for the people who build CentOS and packages for it.

I have used thetango to figure out build order for SRPMS ... in fact, I 
used it to get the build order for sparc SRPMS a couple weeks ago.

https://fedorahosted.org/thetango/


-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 251 bytes
Desc: OpenPGP digital signature
URL: <http://lists.centos.org/pipermail/centos-devel/attachments/20080822/6cde5f75/attachment-0007.sig>