Would it be possible to include SLP support with DISTCC? I think SUSE used to have a package like that. It would be good not to have to set up the distcc/hosts file on every computer. Reproducible: Always Steps to Reproduce:
SLP is...?
SLP stands for Service Location Protocol and is a network protocol to automatically locate computers providing a service via broadcast or multicast. see http://www.openslp.org/
... which brings us back to zeroconf support... (which someone wanted to add some time ago)
If you are referring to http://bugs.gentoo.org/show_bug.cgi?id=40637, that was denied because there was no support for current versions of distcc. However there are now more recent patches. SUSE states on http://fr2.rpmfind.net//linux/RPM/suse/9.2/i386/suse/src/distcc-2.12-118.1.src.html * Tue Dec 23 2003 - adrian@suse.de - implement SLP support, no one need to set DISTCC_HOSTS anymore, if the SLPD runs on the distccd hosts. Also there is now a recent zeroconf patch, see http://lists.samba.org/archive/distcc/2004q4/002774.html
Created attachment 50379 [details, diff] diff for distcc-2.12 extracted from the SUSE source .rpm This is the diff that is included with the SUSE source .rpm package (unfortunately only for version 2.12).
Created attachment 50468 [details, diff] patch for distcc-2.16 to include slp support This is the patch form SUSE modified to work with distcc-2.16, the current Gentoo stable.
Created attachment 50469 [details, diff] patch for the distcc-2.16-r2.ebuild to include slp This modification allows the current ebuild to use SLP together with slp.diff, conditional on the slp useflag being set.
This is on my to test list. If I recall there's a patch in the Distcc CVS (or wahtever he's using...) repository that I've been meaning to find time to test.
Created attachment 65576 [details, diff] Patch to enable howl support for distcc-2.18.3-r7 On second thought, this may not be the right place. If not, lemme know and I'll make a new bug. I found this on the internet (link in patch). It didn't work directly with this version, but I edited the original patch to make it work. Works on PPC.
Can you please take a look at this one? I've spent like hours setting up the distcc hosts for my cluster today... :-(
it's coming. i'm going to work on it when i get home on Tuesday.
(In reply to comment #10) > Can you please take a look at this one? I've spent like hours setting up the > distcc hosts for my cluster today... :-( > by the way, you could use a a DNS-based solution. To the original poster, any chance to port this SLP patch to 2.18.3-r7? I can work with the Howl patch for now.
Created attachment 72077 [details, diff] slp-2.18.diff
Created attachment 72078 [details] distcc-2.18.3-r7.ebuild
The patch applied cleanly to the standard source, I have openslp running with the default config, distccd started with: ./distccd -p 3666 --slp-identy=slptest --listen 192.168.0.254 -a 192.168.0.0/24 -P /home/lisa/projects/distcc/distcc-2.18.3/src/distccd.pid --verbose --log- level=debug --log-file=./log.log --daemon distccenv returns no hosts. Am I missing something here?
Oh bugger. I spoke too soon. Please ignore that last comment.
openslp and the patched distcc are installed on two hosts, lithium and helium. When generating the hosts file with the distccenv tool I only seem to get returned the host on which openslp is running. That is: On helium: slpd and distccd are running. On lithium: slpd and distccd are running. Back on helium: distccenv returns only helium:3662 and not lithium:3662 On lithium: distccenv returns only lithium:3662 and not helium:3662. If I limit the slpd to running on one host that host is simply not returned, eg: on lithium: distccd is running, slpd is not running distccenv will not return anything on helium: distccd is running, slpd is running distccenv will still return only helium:3662 What am I mixing up? The daemon log reports that it is unable to register with the SLP service. Is this a SLP config error? I'm not familiar with SLP so I'm just poking around like a novice here.
Try locating the computers with slptool findsrvs slp . If that doesn't work, the address range might need to be set in /etc/slp.conf
That command fails. What address range are you referring to? What command directive in /etc/slp. conf? On what machines must it be set? Does slpd need to be running on every volunteer or only one?
my mistake. you don't need an address range. the only thing you might try is setting broadcastonly in slp.conf, but that shouldn't be necessary. the command is slptool findsrvs service:service-agent which should list all computers running slpd (all distcc hosts have to be running it and it has to be started before distccd).
okay. i'll try that again!
Created attachment 73258 [details] the slp.conf This SLP.conf file is the same across the network (two volunteers). slpd is started across two machines at the same time, prior to distccd on any machine. distccenv continues to be unable to read the presence of any other machine (it can get it from the local host). What am I doing wrong? I'm close to resolve this CANTFIX since I can't seem to be getting it working, but I'll give it a bit longer! If anyone else has been trying this please post with your findings!
I hate to close this, but here's why I'm closing it UPSTREAM: 1) The configuration isn't straightforward (there is no documentation to help). 2) Gentoo isn't really a test ground for new features for software that hasn't already implemented those changes (if incorporated UPSTREAM the implmentation could change and not be drop-in). Please post the SLP patch (based on 2.18.3) to the distcc mail list with comprehensive documentation on how to set up openslp and that will increase the chance of distcc supporting it.