On 03 Nov 2003, at 18:57, [EMAIL PROTECTED] wrote:
On Sun, Nov 02, 2003 at 01:50:51AM -0600, Andrew Gaffney wrote:Seemless cross-compiler distcc support in portage.
I second that. Although seemless cross-compilation would be a good first step ;-)
what's needed by portage for this type of a thing to work ? Lots of re-design ?
For automatic discovery of distributed cross compiling nodes, take a look at my zeroconf service lookup/announcement implementation on http://dev.gentoo.org/~pvdabeel/.
The idea of zeroconf distributed cross compilation is similar to Apple's Xcode implementation:
When somebody announces a service, zeroconf A, SRV, TXT and PTR DNS records are created:
The A record contains the IP addres on which the service is available.
The SRV record contains the PORT on which the service is available.
The TXT record contains additional info about the service in a hashmap: Apple Xcode for instance encodes the gcc version, the Os version, ... (screenshot on http://dev.gentoo.org/~pvdabeel/xcode.jpg)
A PTR record announces a service by a unique name, using that unique name A,SRV and TXT can be looked up.
A lookup is basically a retrieval of PTR records for a given category. (for instance: _http._tcp.local. gives all http tcp services, _distcc._tcp.local. returns the different tcp distcc services on the local net).
My tool also allows one to announce your Linux webserver using zeroconf etc (http://dev.gentoo.org/~pvdabeel/browser.jpg) and discover those in your Zeroconf compatible browser.
If you want to experiment with the tools, please read their usage(). Those should contain enough examples. Some fun stuff:
Lookup _http._tcp.local. pointers on a university network with lots of Zeroconf printers/machines available:
[EMAIL PROTECTED] ZeroConf # ./lookup 12 _http._tcp.local.
PTR _http._tcp.local. to HP LaserJet 4100 Series (0001E67C7BFC)._http._tcp.local.
PTR _http._tcp.local. to Wnt CEGE._http._tcp.local.
PTR _http._tcp.local. to HP LaserJet 2200 (0001E69C3074)._http._tcp.local.
PTR _http._tcp.local. to hp LaserJet 2300 series (0001E6A194BB)._http._tcp.local.
PTR _http._tcp.local. to HP LaserJet 3330 (0001E6918AB2)._http._tcp.local.
PTR _http._tcp.local. to hp LaserJet 2300 series (0001E6A6E82B)._http._tcp.local.
PTR _http._tcp.local. to hp LaserJet 2300 series (0001E6A1B6D8)._http._tcp.local.
Typical usage:
Announcing a service:
[EMAIL PROTECTED] ZeroConf # ./announce 'pvdabeel' 134.184.65.92 1234 'This is cool' distcc
Zeroconf announcing 'distcc' service named 'pvdabeel' with ip 134.184.65.92 on port 1234 and extra arguments 'This is cool'
Looking up services:
# Getting pointers to available nodes [EMAIL PROTECTED] ZeroConf # ./lookup 12 _distcc._tcp.local. PTR _distcc._tcp.local. to pvdabeel._distcc._tcp.local.
# Use a pointer to get an IP [EMAIL PROTECTED] ZeroConf # ./lookup 1 distcc-pvdabeel.local. A distcc-pvdabeel.local. to ip 92.65.184.134
# Use a pointer to get a PORT [EMAIL PROTECTED] ZeroConf # ./lookup 33 pvdabeel._distcc._tcp.local. SRV pvdabeel._distcc._tcp.local. to distcc-pvdabeel.local.:1234
# Use a pointer to get the extra arguments [EMAIL PROTECTED] ZeroConf # ./lookup 16 pvdabeel._distcc._tcp.local. TXT pvdabeel._distcc._tcp.local. contains args=This is cool
Pieter
-- [EMAIL PROTECTED] mailing list
-- [EMAIL PROTECTED] mailing list
