LINUX.IE, website of the Irish Linux Users' Group
Tux rules!

   
Home
New Users
Articles
Download
Projects
Community
Vendors

  Print Version
Email to...
 
Archives:


planetILUG

Recent News

News Archive


Join the
ILUG
on FaceBook


Join the
ILUG
on LinkedIn


Join the
ILUG SETI
Group



















 
 :: Mailing Lists

[ILUG] Build Systems

[ILUG] Build Systems

P at draigBrady.com P at draigBrady.com
Thu Sep 8 16:01:58 IST 2005


Darragh Bailey wrote:
> In my current roles as managing an automated nightly distro build system, I find
> myself at the stage of needing to redesign and rebuild the system from scratch.
> 
> I inherited a series of scripts that perform the task or rebuilding packages
> (rpms) and bringing all the build parts together from a specialised distro.
> Problem is that instead of each component having a a seperate script that
> manages the building of that component, everything is in one script. That's not
> all, part of the system uses makefiles to start the build of various packages
> but they all need to be rewritten since they run everything instead of only when
> there has been a modification to the source files involved in creating a
> package.

Do you mean all packages are rebuilt for each build?
I've done a distro here using much the same mechanism
as you describe above except it works from upstream
source packages and our diffs. Also it only builds what's
necessary. The logic quite simple and is essentially like:

build_package1() {
    ./configure && make
}

build_package2() {
    make #whatever
}

echo "
package1
package2
" |
while read package; do
     if [ $PACKAGES_DIR/$packagefile -nt $packagedir ] ||
        [ $PACKAGES_DIR/$packagedir.diff -nt $packagedir ]; then
         echo "building $package..."
         build_`echo $package | tr +- __` $packagedir </dev/null
     else
         echo "$package already built"
     fi
done

> So what I would be looking for in a build system is:
> central access point
> capable of being given a target machine and basic settings to start a build
> reporting of success/failure/warnings/errors to a web interface where developers
> can check out the status of the builds.
> 
> Also nice would be capabilities already built in to
> check out sources from cvs
> determine if build is required at all (i.e. was there any changes since the last
> checkout)
> 
> 
> I can write everything from scratch myself, but if anyone else is familiar with
> automated build systems and know of a few, I'd appreciate your views, or links
> to build systems

I think your talking about continuous integration here,
which is a buzz word comming mostly from the java community.
There is a nice comparison matrix here:
http://docs.codehaus.org/display/DAMAGECONTROL/Continuous+Integration+Server+Feature+Matrix

We use cruisecontrol here in corvil, but that is only for the java
side of things as essentially the whole java project is rebuilt
on each checkin. For the linux distribution build script I
outlined above, I've a cron job that calls that every night.

> Already looking at
> Buildbot http://buildbot.sourceforge.net

yes I thought that was interesting also.
There is an example of that at:
http://mono.ximian.com:8008/

Pádraig.



More information about the ILUG mailing list
Read this without the formatting.
                                                                                                    

 

Hosted by HEAnet


Maintained by the ILUG website team. The aim of Linux.ie is to support and help commercial and private users of Linux in Ireland. You can display ILUG news in your own webpages, read backend information to find out how. Networking services kindly provided by HEAnet, server kindly donated by Dell. Linux is a trademark of Linus Torvalds, used with permission. No penguins were harmed in the production or maintenance of this highly praised website. Looking for the Indian Linux Users' Group? Try here. If you've read all this and aren't a lawyer: you should be!
RSS Version
Powered by Dell