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