Hi, CentOSers,
I found out that icecc (icecream package), the distributed compiling system delivers a great advantage for me when building software. It's quite easy to set up mock 0.9.19 to use icecream by default. There must be the lines
config_opts['chroot_setup_cmd'] = 'install buildsys-build icecream' ... config_opts['macros']['%_smp_mflags'] = "-jX"
in the specific OS definition, where X in the _smp_mplags line is the summary of all CPU cores in your compiler network. You have to add a repository containing the icecream RPM. I'm using icecream-0.9.4. The icecream cache must be delegated to the mock chroot by adding
config_opts['plugin_conf']['bind_mount_opts']['dirs'].append\ (('/var/cache/icecream', '/var/cache/icecream' ))
to the site-defaults.cfg file. This is why mock 0.9.19 is required for this. Be sure that your icecream package contains /etc/profile.d/icecream.sh which is needed to wrap cc,gcc,g++,... for icecc in the mock chroot. Or you simply take my RPM.
Remember, that the compile nodes must be in the same subnet, so it's a good idea that moving together your build machines using VPN bridges or whatever. Pure compile nodes may even be something else than CentOS (i.e. Debian) because the needed (target) compiler binaries are delivered over the icecc network, too - and held in a cache.
What do you think about that?
Cheers, Brian