Scons et distcc

Salut

Comme je l’ai dit dans mon fil Pause Café je me suis fait une petite grappe de compile avec distcc.
Je dispose de 3 machines identiques avec un CPU AMD Athlon™ 64 X2 Dual Core Processor 6000+. Pour le moment j’ai mis une Lenny i386 (c’est mal mais je n’avais pas le choix).

J’ai installé distcc sur les trois.

Sur le chef j’ai appliqué la configuration suivante :

mkdir -p /usr/local/distcc/bin
cd /usr/local/distcc/bin
ln -s /usr/bin/distcc c++
ln -s /usr/bin/distcc cc
ln -s /usr/bin/distcc g++
ln -s /usr/bin/distcc gcc

Et j’ai modifié mon .bashrc pour avoir les variables d’environnement qui vont bien

DISTCC_HOSTS=localhost 192.168.10.12 192.168.10.15
PATH=/usr/local/distcc/bin:/usr/local/bin:/usr/bin:/bin:/usr/games
CONCURRENCY_LEVEL=30

Sur les autres machines je lance distccd par init.d, la config dans /etc/default/distcc est

STARTDISTCC="true"
ALLOWEDNETS="127.0.0.1 192.168.10.20"
LISTENER="192.168.10.15"
NICE="10"
ZEROCONF="false"

Maintenant quand je compile un noyau avec make-kpkg ou que je construit un paquet debian avec dpkg-buildpackage la charge se répartit sur les 3 bécanes.
Si je compile une tarball je fais :

$CC=distcc ./configure
...
make -j 12

Et la charge se répartit aussi.

Par contre sur un projet utilisant Scons (TASpring) je bute. Je me retrouve avec les erreurs suivantes :

distcc[4054] (dcc_get_top_dir) Warning: HOME is not set; can't find distcc directory
distcc[4054] (dcc_get_top_dir) Warning: HOME is not set; can't find distcc directory
distcc[4054] (dcc_zeroconf_add_hosts) CRITICAL! failed to get zeroconf dir.

distcc[4054] (dcc_build_somewhere) Warning: failed to distribute, running locally instead]
distcc[4054] (dcc_get_top_dir) Warning: HOME is not set; can't find distcc directory
distcc[4054] (dcc_lock_one) ERROR: failed to lock
distcc[4054] (dcc_get_top_dir) Warning: HOME is not set; can't find distcc directory
distcc[4054] (dcc_get_top_dir) Warning: HOME is not set; can't find distcc directory

J’ai posé des questions à google mais je n’ai pas encore trouvé de réponse.

Et pourtant avec cmake ça passe aussi avec :

CC="distcc gcc" CXX="distcc g++" cmake .
make -j 12 CC=distcc CXX=distcc

J’ai du passer à côté de quelque chose.

$CC=distcc <<< C’est le $ qui t’emmerde

pi si je me souviens bien, tes ln sont totalement inutiles, et ne feront pas l’éffet escompté.

le $ n’avait rien a faire là, faute de frappe quand j’ai édité mon post

étrange il me semble que j’ai trouvé ça sur la donc officielle, je creuse

merci