Build system ideas/requirements

Cristian Gafton gafton at redhat.com
Wed Mar 2 23:11:50 UTC 2005


On Wed, 2 Mar 2005, Jeremy Katz wrote:

>>> From what I can think breaking up the build system into:
>>  - something that watches cvs for things to be built
>
> One thing that comes to my mind is that you probably don't want to be
> watching CVS.  Having it be an explicit "request a build now" makes more
> sense (which can then be integrated as a makefile target eventually,
> etc).  I just tend to prefer having "do a build" be an explicit action
> rather than a side effect.

I agree, I would rather have a "cvs tag build" or "cvs tag build-test" or 
something like that. That will queue a build request and provide some sort 
of URL where one could watch the status.

> The two big things are probably the "handle chroots" piece and "spawn
> builds".  Especially if we want to go the route of a new chroot for
> every build.  So I'd mostly focus on those two first and I think the
> other stuff will mostly fall out on its own.

But wait, there is more! Ok, so we have chroots, we're spawning build, 
what do we do with the resulting packages? what is their path through the 
process?

So far we have:

A. Buildroot provisioning
    - yum-based scriplet
    - users can run it themselves and create their own trees
    - for speed reasonsm can we assume that buildroots are generic (ie, 
have the devel stuff installed, but are not customized for the needs of 
any particular src.rpm build)

B. Spawning builds
    - assuming a queue of some sort of things that need building
    - do we have a master controller for builds or do we let all buildhosts
      fight to empty out the build queue?
    - once a buildroot is chosen:
 	- we customize it according to the src.rpm's buildrequires
 	- launch the "chroot ... rpmbuild --rebuild ..." job
 	- stdout and stderr go to a log accessible online in real time?
 	- extract the binary packages and drop them somewhere
    - after the build is done
 	- dispose of the buildroot?
 	- set up a new buildroot again (async?)

C. Package management
    - we have a bunch of new packages built for a particular tree
    - what is the qualification process?
    - QA?
    - puching stuff out?


Anybody else has any other big components we need to concentrate on?

Cristian
-- 
----------------------------------------------------------------------
Cristian Gafton     --     gafton at redhat.com      --     Red Hat, Inc.
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"Linux is a leprosy; and is having a deleterious effect on the U.S. IT
industry because it is steadily depreciating the value of the software
industry sector."
     -- Kenneth Brown, President, Alexis de Tocqueville Institution




More information about the Fedora-buildsys-list mailing list