On Wed, 1 Dec 2010, Douglas Hubler wrote:

> On Wed, Dec 1, 2010 at 2:53 AM, R P Herrold <herr...@owlriver.com> wrote:
>> Usually a local 'lookaside cache' is added as a first step
>> when buildsystem speed gets important.
>
> as the first step, mock v0.6 that comes w/centos didn't have a lot of
> the caching plugins, so i pulled a newer version from rpmforge.

The CentOS approach has intentionally not tampered with an 
approach that works for the project; the Fedora folks like 
churn and tinkering and shifting APIs, of course

I don't know that there is a good solution here -- I run many 
boxes that started life in the CentOS series, but add local 
convenience archives to avoid stale build environment tools. 
Of the 2277 RPMs on my lead workstation, 1099 are me 
backporting selected 'sufficiently' stable

I don't have a good suggestion here, as the 'correct' answer 
is: it depends on your goals.  Developers need (want) fresh 
tools and bug fixes; product deployment folks need uniformity 
and long life so they may profit-maximize.  The LSB seeks to 
address that, but having been on that panel for a long time, 
no-one [who is a commercial vendor REALLY wants to accept that 
hit as a matter of retaining a supposed competitive advanage] 
really wants the pain it brings in day to day deployment, 
finding it easier to deploy several build infrastructures for 
each nominally 'supported' base platform

> I struggle with how to make the output from the last rpm build output
> available as a yum repository to the build of the next rpm. By making
> a yum repo available, the build can pull in what it needs
> automatically reading the BuildRequires tags.  I though it would make
> sense to mount a local dir and make that available to the chroot, but
> I'm not sure.  Do you have any suggestions?

You raise two issues -- positioning of what I call 'build 
fruit', and using the same -=- there is a 'createrepo' step in 
there of course, before it may be used.

For the last three working days, I was fighting that four 
phase cycle:
        set up build environment,
        build,
        harvest, and
        add to the repository

on a complex BR solution.  I do 'postioning' with NFS in some 
cases.  I am still not happy when I am using an 'intermediate 
build fruit' store on a remote network, because that last 
phase takes over 4 wall clock minutes to refresh (make 
coherent, run a unit test suite to audit for known problems, 
create repo on) itself.  I could do some speedups and 
decoupling with my local problem and buildsystem to 
parallelize early leaf node production, but that is not 
applicable with the sipX code ...

I usually run a small local 'for the complex build batch' 
custom package archive usually called 'intermediate' (sorry 
about the 'forward reference a moment ago) which gets updated, 
to keep the createrepo genration time down, and let the NEVR 
computation ordered by yum from librpm 'solve' which of 
several possible candidates to install/update.  As you pay 
that dependency solving, transaction set ordering, and 
conflict check computation load over and over building the 
next candidate build's chroot, there is a serialization 
blocker every build.

One solution to speed that up is to have a complete 'prebuilt' 
and periodically updated build chroot master image to clone 
and reuse; I don't think mock has gone that way, although we 
did it in the cAos pre-CentOS buildsystem discovery days ...

Another way to proceed that I am experimenting with is with 
VM's cloned from a master image over and over again for each 
new build, and avoiding the chrooting step.  I do not have 
good scripted control of this ... yet

>> buildroot even faster. [We use a 'distcc' farm for compiles on
>> a different product, at -j8, locally cutting times by a factor

> great, I can see this can scale w/the right setup.

.. at the expense of making sure the build libraries and 
compilers all around are in sync  TANSTAAFL ... there never 
is  ;)

-- Russ herrold
_______________________________________________
sipx-dev mailing list
sipx-dev@list.sipfoundry.org
List Archive: http://list.sipfoundry.org/archive/sipx-dev/

Reply via email to