<?xml version="1.0" encoding="UTF-8" standalone="yes" ?>
<!DOCTYPE bugzilla SYSTEM "http://bugs.gentoo.org/bugzilla.dtd">

<bugzilla version="2.22.7"
          urlbase="http://bugs.gentoo.org/"
          maintainer="bugzilla@gentoo.org"
>

    <bug>
          <bug_id>27432</bug_id>
          
          <creation_ts>2003-08-27 09:20 0000</creation_ts>
          <short_desc>python rewrite of distcc-config</short_desc>
          <delta_ts>2004-01-11 14:26:36 0000</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>Gentoo Linux</product>
          <component>Applications</component>
          <version>unspecified</version>
          <rep_platform>All</rep_platform>
          <op_sys>Linux</op_sys>
          <bug_status>CLOSED</bug_status>
          <resolution>FIXED</resolution>
          
          
          
          <priority>P2</priority>
          <bug_severity>enhancement</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          
          <everconfirmed>1</everconfirmed>
          <reporter>pYrania@gentoo.org</reporter>
          <assigned_to>lisa@gentoo.org</assigned_to>
          <cc>mholzer@gentoo.org</cc>
    
    <cc>pYrania@gentoo.org</cc>
    
    <cc>Rob_Davies@NTLworld.com</cc>
    
    <cc>stroller@bigfoot.com</cc>
    
    <cc>vapier@gentoo.org</cc>

      

      
          <long_desc isprivate="0">
            <who>pYrania@gentoo.org</who>
            <bug_when>2003-08-27 09:20:02 0000</bug_when>
            <thetext>initial release :)</thetext>
          </long_desc>
          <long_desc isprivate="0">
            <who>pYrania@gentoo.org</who>
            <bug_when>2003-08-27 09:21:17 0000</bug_when>
            <thetext>Created an attachment (id=16695)
python rewrite
</thetext>
          </long_desc>
          <long_desc isprivate="0">
            <who>lisa@gentoo.org</who>
            <bug_when>2003-08-27 09:22:32 0000</bug_when>
            <thetext>Hi yall, please test this. :)</thetext>
          </long_desc>
          <long_desc isprivate="0">
            <who>morfic@gentoo.org</who>
            <bug_when>2003-08-29 10:21:30 0000</bug_when>
            <thetext>distcc-config when invoked w/o options should list the available option as --help does, as distcc-config w/o options has no use</thetext>
          </long_desc>
          <long_desc isprivate="0">
            <who>pYrania@gentoo.org</who>
            <bug_when>2003-08-29 20:38:14 0000</bug_when>
            <thetext>Created an attachment (id=16792)
python rewrite

thanks, included.</thetext>
          </long_desc>
          <long_desc isprivate="0">
            <who>lisa@gentoo.org</who>
            <bug_when>2003-09-09 10:25:59 0000</bug_when>
            <thetext>--get-hosts and --set-hosts should not print anything (&quot;such and such is...&quot;).

DISTCC_DIR would be great if it could be a global constant so its a bit easier to change.  If DISTCC_DIR does not exist it must be created with 1777 perms, owned by root (in the functions --set-env and --install and whatever.)

The config needs a --set-env command:  --set-env FOO VALUE will update /etc/env.d/02_distcc to include FOO=VALUE.



It also needs a Gentoo header. :)</thetext>
          </long_desc>
          <long_desc isprivate="0">
            <who>Rob_Davies@NTLworld.com</who>
            <bug_when>2003-09-11 06:21:47 0000</bug_when>
            <thetext>Created an attachment (id=17490)
Make /etc/distcc/hosts newline terminated. Enhanced Usage.  

The patch though small was tested with emerge.</thetext>
          </long_desc>
          <long_desc isprivate="0">
            <who>Rob_Davies@NTLworld.com</who>
            <bug_when>2003-09-11 06:25:14 0000</bug_when>
            <thetext>I&apos;ve tried it out, and I found a few things, perhaps because I am using distcc 
for first time, so had no expectations about how it would work.  These are my 
impressions  :) 
 
The patch is to address points 1) &amp; 4) only. 
 
By the way, it has set me up, which is the main thing, and though I&apos;ve a few 
points, that&apos;s inevitable once I had to tinkering with the source.  Let me know 
if you&apos;ld like further submissions, addressing issues I&apos;ve pointed out (yes, 
even the dreaded documentation). 
 
 
1)  The --install option seems necessary, and it&apos;s not in Usage 
 
 
2)  Documentation Guide http://www.gentoo.org/doc/en/distcc.xml 
 
I found I needed to look at the script source to figure out how to use it. 
 
a) I set the hosts, got the print message and nothing happened.  Looks like 
--install is necessary.  There wasn&apos;t a file made if I --set-hosts.  The 
section on bootstrapping with distcc does have a mention of --install. 
 
b) Server side; the guide should explain that distccd needs to be set up, 
minimum reminder about /etc/{conf,init}.d/distc, and hint about adding distcdd 
to runlevel. 
 
c) Quote terminator missing? 
 
Code listing 2.3: Sample command to set the hosts 
 
# /usr/bin/distcc-config --set-hosts &quot;192.168.0.1 192.168.0.2 192.168.0.3 
 
d) No mention of log file 
 
 
3)  Using the --set-verbose 1 option to see what going on I got : 
 
oak gentoo # python distcc-config.py --set-verbose 1 --install 
Traceback (most recent call last): 
  File &quot;distcc-config.py&quot;, line 88, in ? 
    writeenv(&apos;DISTCC_VERBOSE&apos;,tmpcmdline[1]) 
  File &quot;distcc-config.py&quot;, line 37, in writeenv 
    distcc_env    = open(envfile, &apos;r&apos;).readlines() 
IOError: [Errno 2] No such file or directory: &apos;/etc/env.d/02distcc&apos; 
oak gentoo # python distcc-config.py --install 
Creating /etc/env.d/02distcc ... 
 
Looks like account should be taken that /etc/env.d/02distcc may not exist. 
 
 
4) /etc/distcc/hosts 
 
It&apos;s entry is written without a \n line terminator, this confused my vi editor 
(nvi), unlike  nano it didn&apos;t display anything, which seems to add termination 
to last line if missing. 
 
 
5) On the interface design. 
 
I&apos;m not sure why it&apos;s necesary to make options mutually exclusive.  For example 
it ought to be perfectly reasonable to : 
 
distcc-config --install --set-hosts &quot;127.0.0.2/4 10.0.0.1/2 10.0.0.2/2&quot; 
 
As it is, the user has to run distcc-config multiple times, and understand that 
it&apos;s actually creating various environment files.  If fact, why doesn&apos;t 
--set-hosts implicitly do a --install, if stuff is missing?  It&apos;s what the user 
wants to do!  Perhaps distcc-config --install host1 host2/2 .. hostN, then you 
can have a sensible default for : 
 
distcc-config 10.0.0.9/4 10.0.0.8/2 10.0.0.7/2 
 
Wouldn&apos;t that be the most common usage?  Most users won&apos;t change the log file, 
or verbosity, and not providing short flag alternatives adds error prone 
typing. 
 
 
Standard kind of pattern for option processing flags and values is : 
 
Initalise option map to set defaults. 
loop through command line switches 
    validate option 
    If flag option 
       set options{ current } on 
    else 
       get option value 
       set options{ current } to option value 
 
Do processing modified by flags, for example are we listing or setting things?  
In C and perl there&apos;s access to standard modules getopt_long for arg processing 
which does help a fair bit.  I&apos;ve just checked Programming Python, doesn&apos;t talk 
about it, but presumably there&apos;s some binding to get access to getopt_long(3) 
in glibc. The getopt_long() function works like getopt() except that it also 
accepts long options, started out by two dashes. Long option names may be 
abbreviated if the abbreviation is unique or is an exact match for some defined 
option. A long option may take a parameter, of the form --arg=param or --arg 
param. </thetext>
          </long_desc>
          <long_desc isprivate="0">
            <who>pYrania@gentoo.org</who>
            <bug_when>2003-09-19 17:02:21 0000</bug_when>
            <thetext>Created an attachment (id=18006)
python rewrite

Issues of comment #5 fixed.
Added the new line character and fixed the &apos;usage&apos; to uppercase as in the patch
of comment #6.</thetext>
          </long_desc>
          <long_desc isprivate="0">
            <who>pYrania@gentoo.org</who>
            <bug_when>2003-09-19 17:05:17 0000</bug_when>
            <thetext>--install runs once to setup the initial distcc environment. it&apos;s called from the distcc ebuild. All problems are related to the fact, that it wasn&apos;t called, because the current distcc-config script handles the installation in several subroutines.</thetext>
          </long_desc>
          <long_desc isprivate="0">
            <who>lisa@gentoo.org</who>
            <bug_when>2003-10-04 10:31:41 0000</bug_when>
            <thetext>if the user is not root, --set-hosts should set ~/.distcc/hosts

further

for --get-hosts, if 
$DISTCC_HOSTS is not null, return that, else
~/.distcc/hosts is not empty, return contents, else
return contents of /etc/distcc/hosts</thetext>
          </long_desc>
          <long_desc isprivate="0">
            <who>pYrania@gentoo.org</who>
            <bug_when>2003-10-06 04:36:47 0000</bug_when>
            <thetext>Created an attachment (id=18852)
python rewrite

your wish is my command.</thetext>
          </long_desc>
          <long_desc isprivate="0">
            <who>pYrania@gentoo.org</who>
            <bug_when>2003-10-11 01:47:36 0000</bug_when>
            <thetext>Reminder:
Restart daemon after upgrade.</thetext>
          </long_desc>
          <long_desc isprivate="0">
            <who>lisa@gentoo.org</who>
            <bug_when>2003-10-16 18:12:35 0000</bug_when>
            <thetext>Also, DISTCC_DIR should be removed from the /etc/env.d/02distcc file.


	distcc_env.write(&apos;DISTCC_DIR=&quot;/tmp&quot;\n&apos;)
	
	createdistccdir(&apos;/tmp&apos;)

can be removed

I also got this Traceback error when using the distcc-config in atttachment
18852 : (Use an unmodified 2.11 ebuild with this distcc-config)

Traceback (most recent call last):
  File &quot;/usr/bin/distcc-config&quot;, line 111, in ?
    open(FILE, &apos;w&apos;).write(cmdline + &apos;\n&apos;)
TypeError: can only concatenate list (not &quot;str&quot;) to list

Furthermore, with a modified ebuild to just run --install this is the output:

Traceback (most recent call last):
  File &quot;/usr/bin/distcc-config&quot;, line 111, in ?
    open(FILE, &apos;w&apos;).write(cmdline + &apos;\n&apos;)
TypeError: can only concatenate list (not &quot;str&quot;) to list
 * Installing links to native compilers...
Creating /etc/env.d/02distcc ...
Creating /usr/lib/distcc/bin/gcc symlink...
Already exists. Skipping...
Creating /usr/lib/distcc/bin/cc symlink...
Already exists. Skipping...
Creating /usr/lib/distcc/bin/c++ symlink...
Already exists. Skipping...
Creating /usr/lib/distcc/bin/g++ symlink...
Already exists. Skipping...
Creating /usr/lib/distcc/bin/i586-pc-linux-gnu-gcc symlink...
Already exists. Skipping...
Creating /usr/lib/distcc/bin/i586-pc-linux-gnu-c++ symlink...
Already exists. Skipping...
Creating /usr/lib/distcc/bin/i586-pc-linux-gnu-g++ symlink...
Already exists. Skipping...
Configuring /usr/lib/distcc/bin/.keep...
Configuring /usr/lib/distcc/bin/gcc...
Configuring /usr/lib/distcc/bin/cc...
Configuring /usr/lib/distcc/bin/c++...
Configuring /usr/lib/distcc/bin/g++...
Configuring /usr/lib/distcc/bin/i686-pc-linux-gnu-gcc...
Configuring /usr/lib/distcc/bin/i686-pc-linux-gnu-c++...
Configuring /usr/lib/distcc/bin/i686-pc-linux-gnu-g++...
Configuring /usr/lib/distcc/bin/i586-pc-linux-gnu-gcc...
Configuring /usr/lib/distcc/bin/i586-pc-linux-gnu-c++...
Configuring /usr/lib/distcc/bin/i586-pc-linux-gnu-g++...
Configuring /var/run/distccd/.keep...

---

Can the output be silenced a bit? And what&apos;s it doing to /var/run/distccd/.keep?</thetext>
          </long_desc>
          <long_desc isprivate="0">
            <who>lisa@gentoo.org</who>
            <bug_when>2003-10-16 23:02:28 0000</bug_when>
            <thetext>Also, DISTCC_LOG should not be set to anything by default.</thetext>
          </long_desc>
          <long_desc isprivate="0">
            <who>pYrania@gentoo.org</who>
            <bug_when>2003-10-17 03:10:12 0000</bug_when>
            <thetext>Created an attachment (id=19348)
python rewrite

fixed everything and added restart of distccd after call of --install. :)</thetext>
          </long_desc>
          <long_desc isprivate="0">
            <who>lisa@gentoo.org</who>
            <bug_when>2003-10-18 13:19:12 0000</bug_when>
            <thetext>Committed in CVS as distcc-2.11.1-r1, its in package.mask, so you will have
to force it:

  emerge /usr/portage/sys-devel/distcc/distcc-2.11.1-r1.ebuild

</thetext>
          </long_desc>
          <long_desc isprivate="0">
            <who>stroller@bigfoot.com</who>
            <bug_when>2003-10-18 15:09:39 0000</bug_when>
            <thetext>Have been testing here for the last 36 hours or so with compiles of a couple
of small apps, then kdelibs &amp; glibc on different machines. Seem to work fine.</thetext>
          </long_desc>
          <long_desc isprivate="0">
            <who>lisa@gentoo.org</who>
            <bug_when>2003-11-12 12:33:35 0000</bug_when>
            <thetext>Just a formal reminder to create /etc/distcc or ~/.distcc if they aren&apos;t present.</thetext>
          </long_desc>
          <long_desc isprivate="0">
            <who>lisa@gentoo.org</who>
            <bug_when>2003-11-12 12:34:06 0000</bug_when>
            <thetext>reopened waiting a fix for comment 18 :-)</thetext>
          </long_desc>
          <long_desc isprivate="0">
            <who>ferret@explodingferret.com</who>
            <bug_when>2003-11-12 17:19:59 0000</bug_when>
            <thetext>I&apos;m having a problem with the distccd init script not creating a pid file. I did:  emerge =distcc-2.11.2 /sbin/depscan.sh # told me to do so at the end of emerge, for some reason nano -w /etc/make.conf # added -jX to MAKEOPTS, added distcc to FEATURES /usr/sbin/distcc-config --set-hosts &quot;xxx.xxx.xxx.xxx ...&quot; /etc/init.d/distccd start # appears to work but doesn&apos;t create pidfile /etc/init.d/distccd stop # &quot;succeeds&quot; but doesn&apos;t stop processes /etc/init.d/distccd start # fails  Manually creating the pidfile containing the correct value and it all works...</thetext>
          </long_desc>
          <long_desc isprivate="0">
            <who>ferret@explodingferret.com</who>
            <bug_when>2003-11-12 17:24:23 0000</bug_when>
            <thetext>argh, links -g has retarded key bindings of some sort. My carriage returns were
destroyed. :|</thetext>
          </long_desc>
          <long_desc isprivate="0">
            <who>pYrania@gentoo.org</who>
            <bug_when>2003-11-16 15:21:53 0000</bug_when>
            <thetext>worked.

marked stable in x86</thetext>
          </long_desc>
          <long_desc isprivate="0">
            <who>lisa@gentoo.org</who>
            <bug_when>2003-11-21 20:46:53 0000</bug_when>
            <thetext>this is in as distcc-2.11.2-r1

thanks a lot Markus and testers.</thetext>
          </long_desc>
          <long_desc isprivate="0">
            <who>griffon26@gentoo.org</who>
            <bug_when>2003-12-09 14:41:27 0000</bug_when>
            <thetext>I have some additional comments about distcc-config.
I&apos;m only using distcc with portage.

After I&apos;ve emerged distcc, if I do (as root) distcc-config --get-hosts or distcc-config --set-hosts &quot;10.0.0.2&quot;, I get errors. The error for --get-hosts looks sorta like this:

Traceback (...): 
blahblah... 
print rstrip(open(&apos;/etc/distcc/hosts&apos;, &apos;r&apos;).read()) 
blahblah no such file or directory

The message I get with --set-hosts is similar (although I don&apos;t think I saw a filename in that error message).

At this time the /etc/distcc directory does not exist.
If I create this directory and try again, only --get-hosts still fails (because the hosts file doesn&apos;t exist).

Once I&apos;ve --set-hosts, also --get-hosts succeeds.

I think the script needs some additional checks.

# $Header: /home/cvsroot/gentoo-x86/sys-devel/distcc/files/2.11.1p/distcc-config,v 1.3 2003/12/06 17:31:04 lisa Exp $

How to reproduce (probably):
1) remove or rename /etc/distcc
2) run distcc-config --get-hosts or distcc-config --set-hosts &quot;10.0.0.2&quot;
3) mkdir /etc/distcc
4) run distcc-config --get-hosts</thetext>
          </long_desc>
          <long_desc isprivate="0">
            <who>lisa@gentoo.org</who>
            <bug_when>2003-12-09 14:49:05 0000</bug_when>
            <thetext>Markus?</thetext>
          </long_desc>
          <long_desc isprivate="0">
            <who>pYrania@gentoo.org</who>
            <bug_when>2003-12-11 07:52:17 0000</bug_when>
            <thetext>nice catch. fixed it in cvs.</thetext>
          </long_desc>
          <long_desc isprivate="0">
            <who>lisa@gentoo.org</who>
            <bug_when>2003-12-18 14:24:54 0000</bug_when>
            <thetext>Nother bug.

Running distcc-config --install with no distcc user in the /etc/passwd (such as during bootstrap) results in:

Creating /etc/env.d/02.distcc...
Traceback...
   File &quot;/usr/bin/distcc-config&quot;, line 134, in ?
     foobar = getpwnam(&apos;distcc&apos;)
KeyError: getpwnam(): name not found</thetext>
          </long_desc>
          <long_desc isprivate="0">
            <who>lisa@gentoo.org</who>
            <bug_when>2003-12-18 14:38:50 0000</bug_when>
            <thetext>Another bug:

# distcc-config --set-hosts &quot; .... &quot;
Traceback...
  File /usr/bin/distcc-config, line 153, in ?
    createdistccidr(PATH)
  File /usr/bin/distcc-config, line 85, in createdistccdir
    os.chmod(dir, &apos;1777&apos;)
TypeError: an integer is required

This is on a bootstrap, with a virgin make.conf aside from FEATURES, MAKEOPTS, and USE changes.

/etc/distcc/ exists.

after this dir is created /var/tmp/portage/.distcc does not.</thetext>
          </long_desc>
          <long_desc isprivate="0">
            <who>pYrania@gentoo.org</who>
            <bug_when>2003-12-19 03:49:02 0000</bug_when>
            <thetext>lisa, what distcc-config cvs revision were you using at comment #28?
I just fixed this 7 days ago.

the one in comment #27.. well we should consider an additional flag for bootstrapping or something. isn&apos;t --install called while using the distcc ebuild from bootstrap?

i actually hadn&apos;t the time to test the script while bootstrapping.

.. i&apos;ll catch you on irc.</thetext>
          </long_desc>
          <long_desc isprivate="0">
            <who>vslavik@fastmail.fm</who>
            <bug_when>2003-12-26 08:35:51 0000</bug_when>
            <thetext>&gt; lisa, what distcc-config cvs revision were you using at comment #28?
&gt; I just fixed this 7 days ago.

But it is still in Portage tree fetched via rsync, today.</thetext>
          </long_desc>
          <long_desc isprivate="0">
            <who>kumba@gentoo.org</who>
            <bug_when>2003-12-27 15:18:19 0000</bug_when>
            <thetext>Here&apos;s an obscure bug.

If /etc/distcc does not exist, then invoking:
distcc-config --set-hosts &quot;hostname&gt;/&lt;num jobs&gt;&quot; will trigger a python traceback ONLY once.  Any further invocations works fine.

[root@minas-tirith distfiles]# distcc-config --set-hosts &quot;isengard/4&quot;
Traceback (most recent call last):
  File &quot;/usr/bin/distcc-config&quot;, line 113, in ?
    createdistccdir(PATH)
  File &quot;/usr/bin/distcc-config&quot;, line 85, in createdistccdir
    os.chmod(dir, &apos;1777&apos;)
TypeError: an integer is required
[root@minas-tirith distfiles]# distcc-config --set-hosts &quot;isengard/4&quot;
[root@minas-tirith distfiles]#
[root@minas-tirith distfiles]# rm -Rf /etc/distcc
[root@minas-tirith distfiles]# distcc-config --set-hosts &quot;isengard/4&quot;
Traceback (most recent call last):
  File &quot;/usr/bin/distcc-config&quot;, line 113, in ?
    createdistccdir(PATH)
  File &quot;/usr/bin/distcc-config&quot;, line 85, in createdistccdir
    os.chmod(dir, &apos;1777&apos;)
TypeError: an integer is required
[root@minas-tirith distfiles]#


Using a straight IP address instead of the histname during the first call doesn&apos;t trigger the bug either.</thetext>
          </long_desc>
          <long_desc isprivate="0">
            <who>pYrania@gentoo.org</who>
            <bug_when>2003-12-27 15:46:29 0000</bug_when>
            <thetext>verfied fixed.</thetext>
          </long_desc>
          <long_desc isprivate="0">
            <who>lisa@gentoo.org</who>
            <bug_when>2003-12-31 09:50:23 0000</bug_when>
            <thetext>*** Bug 36504 has been marked as a duplicate of this bug. ***</thetext>
          </long_desc>
          <long_desc isprivate="0">
            <who>pYrania@gentoo.org</who>
            <bug_when>2004-01-11 07:59:48 0000</bug_when>
            <thetext>all issues should be fixed.</thetext>
          </long_desc>
          <long_desc isprivate="0">
            <who>lisa@gentoo.org</who>
            <bug_when>2004-01-11 14:26:36 0000</bug_when>
            <thetext>All issues with the Python rewrite of distcc-config should be filed in a new bug.</thetext>
          </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="0"
              isprivate="0"
          >
            <attachid>16695</attachid>
            <date>2003-08-27 09:21 0000</date>
            <desc>python rewrite</desc>
            <filename>distcc-config</filename>
            <type>text/plain</type>
            <data encoding="base64">IyEvdXNyL2Jpbi9lbnYgcHl0aG9uCiMgQXV0aG9yIEluZm86IHBZcmFuaWEgPHBZcmFuaWFAYzBm
ZmVpbmUuZGU+CgppbXBvcnQgb3MsIHJlLCBzaWduYWwsIHN5cywgY29tbWFuZHMsIHB3ZCwgc29j
a2V0CgpvcHRpb25zPVsKCSctLWdldC1ob3N0cycsCgknLS1zZXQtaG9zdHMnLAoJJy0tZ2V0LXZl
cmJvc2UnLAoJJy0tc2V0LXZlcmJvc2UnLAoJJy0tZ2V0LWxvZycsCgknLS1zZXQtbG9nJywKCSct
LWluc3RhbGwnLAoJJy0taGVscCcsCl0KCnRtcGNtZGxpbmU9c3lzLmFyZ3ZbMTpdCmNtZGxpbmU9
W10KZW52ZmlsZSA9ICcvZXRjL2Vudi5kLzAyZGlzdGNjJwoKZGVmIGV4aXRoYW5kbGVyKGZvbyxi
YXIpOgoJb3Mua2lsbCgwLHNpZ25hbC5TSUdLSUxMKQoJc3lzLmV4aXQoMSkKCnNpZ25hbC5zaWdu
YWwoc2lnbmFsLlNJR0lOVCxleGl0aGFuZGxlcikKCmRlZiBpc3Jvb3QoKToKCWlmIG9zLmdldHVp
ZCgpICE9IDA6CgkJcHJpbnQgJyEhIScsc3lzLmFyZ3ZbOjFdWzBdLHRtcGNtZGxpbmVbMF0sJ211
c3QgYmUgcnVuIGFzIHJvb3QnCgkJc3lzLmV4aXQoMSkKCmRlZiB3cml0ZWVudih2YXIsdmFsdWUp
OgoJaXNyb290KCkKCWRpc3RjY19lbnYgICAgPSBbXQoJZGlzdGNjX2VudiAgICA9IG9wZW4oZW52
ZmlsZSwgJ3InKS5yZWFkbGluZXMoKQoJZGlzdGNjX2Vudl9uZXcgPSBvcGVuKGVudmZpbGUsICd3
JykKCWZvciBpIGluIHJhbmdlKGxlbihkaXN0Y2NfZW52KSk6CgkJaWYgcmUuY29tcGlsZSh2YXIr
Jz0iKC4qKSInKS5tYXRjaChkaXN0Y2NfZW52W2ldKToKCQkJZGlzdGNjX2VudltpXSA9IHZhcisn
PSInK3ZhbHVlKyciXG4nCgkJZGlzdGNjX2Vudl9uZXcud3JpdGUoZGlzdGNjX2VudltpXSkKCXBy
aW50ICdTZXQnLHZhciwndG86Jyx2YWx1ZQoJb3MucG9wZW4oJy91c3Ivc2Jpbi9lbnYtdXBkYXRl
JykKCXByaW50ICdJZiB5b3Ugd2FudCB0byB1c2UgdGhlc2UgbmV3IHNldHRpbmdzIGluIGFuIGV4
aXN0aW5nIHNoZWxsLCcKCXByaW50ICd5b3UgbmVlZCB0byAic291cmNlIC9ldGMvcHJvZmlsZSIg
dG8gZ2V0IHRoZSBjaGFuZ2VzLicKCmRlZiByZWFkZW52KHZhcik6CglkaXN0Y2NfZW52ID0gb3Bl
bihlbnZmaWxlLCAncicpLnJlYWQoKQoJcHJpbnQgdmFyKyc9JytyZS5jb21waWxlKHZhcisnPSIo
LiopIicpLnNlYXJjaChkaXN0Y2NfZW52KS5ncm91cCgxKQoKZGVmIHBlcm1pc3Npb25zKHBhdGgs
dXNlcixncm91cCk6Cglmb3IgZmlsZSBpbiBvcy5saXN0ZGlyKHBhdGgpOgoJCXByaW50ICdDb25m
aWd1cmluZycscGF0aCtmaWxlKycuLi4nCgkJb3MuY2hvd24ocGF0aCtmaWxlLHVzZXIsZ3JvdXAp
CgpkZWYgaW5zdGFsbGxpbmtzKGNob3N0PScnKToKCWZvciBmaWxlIGluIFsnZ2NjJywgJ2NjJywg
J2MrKycsICdnKysnXToKCQlwYXRoID0gJy91c3IvbGliL2Rpc3RjYy9iaW4vJwoJCWlmIG5vdCBj
aG9zdCA9PSAnJzoKCQkJZmlsZSA9IGNob3N0KyctJytmaWxlCgkJaWYgb3MucGF0aC5leGlzdHMo
Jy91c3IvYmluLycrZmlsZSk6CgkJCXByaW50ICdDcmVhdGluZycscGF0aCtmaWxlLCdzeW1saW5r
Li4uJwoJCQlpZiBub3Qgb3MucGF0aC5leGlzdHMocGF0aCtmaWxlKToKCQkJCW9zLnN5bWxpbmso
Jy91c3IvYmluL2Rpc3RjYycscGF0aCtmaWxlKQoJCQllbHNlOgoJCQkJcHJpbnQgJ0FscmVhZHkg
ZXhpc3RzLiBTa2lwcGluZy4uLicJCgpmb3IgeCBpbiB0bXBjbWRsaW5lOgoJaWYgbm90IHg6CgkJ
Y29udGludWUKCWlmIHhbMDoyXT09Ii0tIjoKCQlpZiBub3QgeCBpbiBvcHRpb25zOgoJCQlwcmlu
dCAiISEhIEVycm9yOiIseCwiaXMgYW4gaW52YWxpZCBvcHRpb24uIgoJCQlzeXMuZXhpdCgxKQoJ
ZWxzZToKCQljbWRsaW5lID0geAoKaWYgJy0tZ2V0LWhvc3RzJyBpbiB0bXBjbWRsaW5lOgoJcHJp
bnQgJ0N1cnJlbnQgRElTVENDX0hPU1RTOicsb3BlbignL2V0Yy9kaXN0Y2MvaG9zdHMnLCAncicp
LnJlYWQoKQplbGlmICctLXNldC1ob3N0cycgaW4gdG1wY21kbGluZToKCWlzcm9vdCgpCglvcGVu
KCcvZXRjL2Rpc3RjYy9ob3N0cycsICd3Jykud3JpdGUoY21kbGluZSkKCXByaW50ICdTZXQgRElT
VENDX0hPU1RTIHRvOicsY21kbGluZQplbGlmICctLWdldC12ZXJib3NlJyBpbiB0bXBjbWRsaW5l
OgoJcmVhZGVudignRElTVENDX1ZFUkJPU0UnKQplbGlmICctLXNldC12ZXJib3NlJyBpbiB0bXBj
bWRsaW5lOgoJd3JpdGVlbnYoJ0RJU1RDQ19WRVJCT1NFJyx0bXBjbWRsaW5lWzFdKQplbGlmICct
LWdldC1sb2cnIGluIHRtcGNtZGxpbmU6CglyZWFkZW52KCdESVNUQ0NfTE9HJykKZWxpZiAnLS1z
ZXQtbG9nJyBpbiB0bXBjbWRsaW5lOgoJd3JpdGVlbnYoJ0RJU1RDQ19MT0cnLHRtcGNtZGxpbmVb
MV0pCmVsaWYgJy0taW5zdGFsbCcgaW4gdG1wY21kbGluZToKCWlzcm9vdCgpCglwcmludCAnQ3Jl
YXRpbmcnLGVudmZpbGUsJy4uLicKCWRpc3RjY19lbnYgPSBvcGVuKGVudmZpbGUsICd3JykKCWRp
c3RjY19lbnYud3JpdGUoJyMgVGhpcyBmaWxlIGlzIG1hbmFnZWQgYnkgZGlzdGNjLWNvbmZpZzsg
dXNlIGl0IHRvIGNoYW5nZSB0aGVzZSBzZXR0aW5ncy5cbicpCglkaXN0Y2NfZW52LndyaXRlKCdE
SVNUQ0NfTE9HPSIvdmFyL2xvZy9kaXN0Y2MubG9nIlxuJykKCWRpc3RjY19lbnYud3JpdGUoJ0RD
Q0NfUEFUSD0iL3Vzci9saWIvZGlzdGNjL2JpbiJcbicpCglkaXN0Y2NfZW52LndyaXRlKCdESVNU
Q0NfVkVSQk9TRT0iMCJcbicpCglkaXN0Y2NfZW52LndyaXRlKCdESVNUQ0NfRElSPSIvdG1wIlxu
JykKCglpZiBvcy5XRVhJVFNUQVRVUyhjb21tYW5kcy5nZXRzdGF0dXNvdXRwdXQoJy91c3Ivc2Jp
bi91c2VyYWRkIC1nIGRhZW1vbiAtcyAvYmluL2ZhbHNlIC1kIC9kZXYvbnVsbCAtYyAiZGlzdGNj
ZCIgZGlzdGNjJylbMF0pID09IDk6CgkJb3MuV0VYSVRTVEFUVVMoY29tbWFuZHMuZ2V0c3RhdHVz
b3V0cHV0KCcvdXNyL3NiaW4vdXNlcm1vZCAtZyBkYWVtb24gLXMgL2Jpbi9mYWxzZSAtZCAvZGV2
L251bGwgLWMgImRpc3RjY2QiIGRpc3RjYycpWzBdKQoKCWZvb2JhciA9IHB3ZC5nZXRwd25hbSgn
ZGlzdGNjJykKCXVzZXIgICA9IGZvb2JhclsyXQoJZ3JvdXAgID0gZm9vYmFyWzNdCgoJbWFrZWNv
bmYgPSBvcGVuKCcvZXRjL21ha2UuY29uZicsICdyJykucmVhZCgpCgljaG9zdCA9IHJlLmNvbXBp
bGUoJ0NIT1NUPSIoLiopIicpLnNlYXJjaChtYWtlY29uZikuZ3JvdXAoMSkKCWluc3RhbGxsaW5r
cygpCglpbnN0YWxsbGlua3MoY2hvc3QpCgoJcGVybWlzc2lvbnMoJy91c3IvbGliL2Rpc3RjYy9i
aW4vJyx1c2VyLGdyb3VwKQoJcGVybWlzc2lvbnMoJy92YXIvcnVuL2Rpc3RjY2QvJyx1c2VyLGdy
b3VwKQoKZWxpZiAnLS1oZWxwJyBpbiB0bXBjbWRsaW5lOgoJcHJpbnQgJ3VzYWdlOiAvdXNyL2Jp
bi9kaXN0Y2MtY29uZmlnIC0tc2V0LWhvc3RzIERJU1RDQ19IT1NUUyB8IC0tZ2V0LWhvc3RzJwoJ
cHJpbnQgJyAgICAgICAvdXNyL2Jpbi9kaXN0Y2MtY29uZmlnIC0tc2V0LXZlcmJvc2UgeyAwIHwg
MSB9ICB8IC0tZ2V0LXZlcmJvc2UnCglwcmludCAnICAgICAgIC91c3IvYmluL2Rpc3RjYy1jb25m
aWcgLS1zZXQtbG9nIEZJTEUgICAgICAgICAgIHwgLS1nZXQtbG9nJwo=
</data>        

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="0"
              isprivate="0"
          >
            <attachid>16792</attachid>
            <date>2003-08-29 20:38 0000</date>
            <desc>python rewrite</desc>
            <filename>distcc-config</filename>
            <type>text/plain</type>
            <data encoding="base64">IyEvdXNyL2Jpbi9lbnYgcHl0aG9uCiMgQXV0aG9yIEluZm86IHBZcmFuaWEgPHBZcmFuaWFAYzBm
ZmVpbmUuZGU+CgppbXBvcnQgb3MsIHJlLCBzaWduYWwsIHN5cywgY29tbWFuZHMsIHB3ZCwgc29j
a2V0CgpvcHRpb25zPVsKCSctLWdldC1ob3N0cycsCgknLS1zZXQtaG9zdHMnLAoJJy0tZ2V0LXZl
cmJvc2UnLAoJJy0tc2V0LXZlcmJvc2UnLAoJJy0tZ2V0LWxvZycsCgknLS1zZXQtbG9nJywKCSct
LWluc3RhbGwnLAoJJy0taGVscCcsCl0KCnRtcGNtZGxpbmU9c3lzLmFyZ3ZbMTpdCmNtZGxpbmU9
W10KZW52ZmlsZSA9ICcvZXRjL2Vudi5kLzAyZGlzdGNjJwoKZGVmIGV4aXRoYW5kbGVyKGZvbyxi
YXIpOgoJb3Mua2lsbCgwLHNpZ25hbC5TSUdLSUxMKQoJc3lzLmV4aXQoMSkKCnNpZ25hbC5zaWdu
YWwoc2lnbmFsLlNJR0lOVCxleGl0aGFuZGxlcikKCmRlZiBpc3Jvb3QoKToKCWlmIG9zLmdldHVp
ZCgpICE9IDA6CgkJcHJpbnQgJyEhIScsc3lzLmFyZ3ZbOjFdWzBdLHRtcGNtZGxpbmVbMF0sJ211
c3QgYmUgcnVuIGFzIHJvb3QnCgkJc3lzLmV4aXQoMSkKCmRlZiB3cml0ZWVudih2YXIsdmFsdWUp
OgoJaXNyb290KCkKCWRpc3RjY19lbnYgICAgPSBbXQoJZGlzdGNjX2VudiAgICA9IG9wZW4oZW52
ZmlsZSwgJ3InKS5yZWFkbGluZXMoKQoJZGlzdGNjX2Vudl9uZXcgPSBvcGVuKGVudmZpbGUsICd3
JykKCWZvciBpIGluIHJhbmdlKGxlbihkaXN0Y2NfZW52KSk6CgkJaWYgcmUuY29tcGlsZSh2YXIr
Jz0iKC4qKSInKS5tYXRjaChkaXN0Y2NfZW52W2ldKToKCQkJZGlzdGNjX2VudltpXSA9IHZhcisn
PSInK3ZhbHVlKyciXG4nCgkJZGlzdGNjX2Vudl9uZXcud3JpdGUoZGlzdGNjX2VudltpXSkKCXBy
aW50ICdTZXQnLHZhciwndG86Jyx2YWx1ZQoJb3MucG9wZW4oJy91c3Ivc2Jpbi9lbnYtdXBkYXRl
JykKCXByaW50ICdJZiB5b3Ugd2FudCB0byB1c2UgdGhlc2UgbmV3IHNldHRpbmdzIGluIGFuIGV4
aXN0aW5nIHNoZWxsLCcKCXByaW50ICd5b3UgbmVlZCB0byAic291cmNlIC9ldGMvcHJvZmlsZSIg
dG8gZ2V0IHRoZSBjaGFuZ2VzLicKCmRlZiByZWFkZW52KHZhcik6CglkaXN0Y2NfZW52ID0gb3Bl
bihlbnZmaWxlLCAncicpLnJlYWQoKQoJcHJpbnQgdmFyKyc9JytyZS5jb21waWxlKHZhcisnPSIo
LiopIicpLnNlYXJjaChkaXN0Y2NfZW52KS5ncm91cCgxKQoKZGVmIHBlcm1pc3Npb25zKHBhdGgs
dXNlcixncm91cCk6Cglmb3IgZmlsZSBpbiBvcy5saXN0ZGlyKHBhdGgpOgoJCXByaW50ICdDb25m
aWd1cmluZycscGF0aCtmaWxlKycuLi4nCgkJb3MuY2hvd24ocGF0aCtmaWxlLHVzZXIsZ3JvdXAp
CgpkZWYgaW5zdGFsbGxpbmtzKGNob3N0PScnKToKCWZvciBmaWxlIGluIFsnZ2NjJywgJ2NjJywg
J2MrKycsICdnKysnXToKCQlwYXRoID0gJy91c3IvbGliL2Rpc3RjYy9iaW4vJwoJCWlmIG5vdCBj
aG9zdCA9PSAnJzoKCQkJZmlsZSA9IGNob3N0KyctJytmaWxlCgkJaWYgb3MucGF0aC5leGlzdHMo
Jy91c3IvYmluLycrZmlsZSk6CgkJCXByaW50ICdDcmVhdGluZycscGF0aCtmaWxlLCdzeW1saW5r
Li4uJwoJCQlpZiBub3Qgb3MucGF0aC5leGlzdHMocGF0aCtmaWxlKToKCQkJCW9zLnN5bWxpbmso
Jy91c3IvYmluL2Rpc3RjYycscGF0aCtmaWxlKQoJCQllbHNlOgoJCQkJcHJpbnQgJ0FscmVhZHkg
ZXhpc3RzLiBTa2lwcGluZy4uLicJCgpmb3IgeCBpbiB0bXBjbWRsaW5lOgoJaWYgbm90IHg6CgkJ
Y29udGludWUKCWlmIHhbMDoyXT09Ii0tIjoKCQlpZiBub3QgeCBpbiBvcHRpb25zOgoJCQlwcmlu
dCAiISEhIEVycm9yOiIseCwiaXMgYW4gaW52YWxpZCBvcHRpb24uIgoJCQlzeXMuZXhpdCgxKQoJ
ZWxzZToKCQljbWRsaW5lID0geAoKaWYgJy0tZ2V0LWhvc3RzJyBpbiB0bXBjbWRsaW5lOgoJcHJp
bnQgJ0N1cnJlbnQgRElTVENDX0hPU1RTOicsb3BlbignL2V0Yy9kaXN0Y2MvaG9zdHMnLCAncicp
LnJlYWQoKQplbGlmICctLXNldC1ob3N0cycgaW4gdG1wY21kbGluZToKCWlzcm9vdCgpCglvcGVu
KCcvZXRjL2Rpc3RjYy9ob3N0cycsICd3Jykud3JpdGUoY21kbGluZSkKCXByaW50ICdTZXQgRElT
VENDX0hPU1RTIHRvOicsY21kbGluZQplbGlmICctLWdldC12ZXJib3NlJyBpbiB0bXBjbWRsaW5l
OgoJcmVhZGVudignRElTVENDX1ZFUkJPU0UnKQplbGlmICctLXNldC12ZXJib3NlJyBpbiB0bXBj
bWRsaW5lOgoJd3JpdGVlbnYoJ0RJU1RDQ19WRVJCT1NFJyx0bXBjbWRsaW5lWzFdKQplbGlmICct
LWdldC1sb2cnIGluIHRtcGNtZGxpbmU6CglyZWFkZW52KCdESVNUQ0NfTE9HJykKZWxpZiAnLS1z
ZXQtbG9nJyBpbiB0bXBjbWRsaW5lOgoJd3JpdGVlbnYoJ0RJU1RDQ19MT0cnLHRtcGNtZGxpbmVb
MV0pCmVsaWYgJy0taW5zdGFsbCcgaW4gdG1wY21kbGluZToKCWlzcm9vdCgpCglwcmludCAnQ3Jl
YXRpbmcnLGVudmZpbGUsJy4uLicKCWRpc3RjY19lbnYgPSBvcGVuKGVudmZpbGUsICd3JykKCWRp
c3RjY19lbnYud3JpdGUoJyMgVGhpcyBmaWxlIGlzIG1hbmFnZWQgYnkgZGlzdGNjLWNvbmZpZzsg
dXNlIGl0IHRvIGNoYW5nZSB0aGVzZSBzZXR0aW5ncy5cbicpCglkaXN0Y2NfZW52LndyaXRlKCdE
SVNUQ0NfTE9HPSIvdmFyL2xvZy9kaXN0Y2MubG9nIlxuJykKCWRpc3RjY19lbnYud3JpdGUoJ0RD
Q0NfUEFUSD0iL3Vzci9saWIvZGlzdGNjL2JpbiJcbicpCglkaXN0Y2NfZW52LndyaXRlKCdESVNU
Q0NfVkVSQk9TRT0iMCJcbicpCglkaXN0Y2NfZW52LndyaXRlKCdESVNUQ0NfRElSPSIvdG1wIlxu
JykKCglpZiBvcy5XRVhJVFNUQVRVUyhjb21tYW5kcy5nZXRzdGF0dXNvdXRwdXQoJy91c3Ivc2Jp
bi91c2VyYWRkIC1nIGRhZW1vbiAtcyAvYmluL2ZhbHNlIC1kIC9kZXYvbnVsbCAtYyAiZGlzdGNj
ZCIgZGlzdGNjJylbMF0pID09IDk6CgkJb3MuV0VYSVRTVEFUVVMoY29tbWFuZHMuZ2V0c3RhdHVz
b3V0cHV0KCcvdXNyL3NiaW4vdXNlcm1vZCAtZyBkYWVtb24gLXMgL2Jpbi9mYWxzZSAtZCAvZGV2
L251bGwgLWMgImRpc3RjY2QiIGRpc3RjYycpWzBdKQoKCWZvb2JhciA9IHB3ZC5nZXRwd25hbSgn
ZGlzdGNjJykKCXVzZXIgICA9IGZvb2JhclsyXQoJZ3JvdXAgID0gZm9vYmFyWzNdCgoJbWFrZWNv
bmYgPSBvcGVuKCcvZXRjL21ha2UuY29uZicsICdyJykucmVhZCgpCgljaG9zdCA9IHJlLmNvbXBp
bGUoJ0NIT1NUPSIoLiopIicpLnNlYXJjaChtYWtlY29uZikuZ3JvdXAoMSkKCWluc3RhbGxsaW5r
cygpCglpbnN0YWxsbGlua3MoY2hvc3QpCgoJcGVybWlzc2lvbnMoJy91c3IvbGliL2Rpc3RjYy9i
aW4vJyx1c2VyLGdyb3VwKQoJcGVybWlzc2lvbnMoJy92YXIvcnVuL2Rpc3RjY2QvJyx1c2VyLGdy
b3VwKQoKZWxzZToKCXByaW50ICd1c2FnZTogL3Vzci9iaW4vZGlzdGNjLWNvbmZpZyAtLXNldC1o
b3N0cyBESVNUQ0NfSE9TVFMgfCAtLWdldC1ob3N0cycKCXByaW50ICcgICAgICAgL3Vzci9iaW4v
ZGlzdGNjLWNvbmZpZyAtLXNldC12ZXJib3NlIHsgMCB8IDEgfSAgfCAtLWdldC12ZXJib3NlJwoJ
cHJpbnQgJyAgICAgICAvdXNyL2Jpbi9kaXN0Y2MtY29uZmlnIC0tc2V0LWxvZyBGSUxFICAgICAg
ICAgICB8IC0tZ2V0LWxvZycK
</data>        

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>17490</attachid>
            <date>2003-09-11 06:21 0000</date>
            <desc>Make /etc/distcc/hosts newline terminated. Enhanced Usage.  </desc>
            <filename>distcc.patch</filename>
            <type>text/plain</type>
            <data encoding="base64">UkNTIGZpbGU6IFJDUy9kaXN0Y2MtY29uZmlnLnB5LHYKV29ya2luZyBmaWxlOiBkaXN0Y2MtY29u
ZmlnLnB5CmhlYWQ6IDEuMgpicmFuY2g6CmxvY2tzOiBzdHJpY3QKYWNjZXNzIGxpc3Q6CnN5bWJv
bGljIG5hbWVzOgprZXl3b3JkIHN1YnN0aXR1dGlvbjoga3YKdG90YWwgcmV2aXNpb25zOiAyOwlz
ZWxlY3RlZCByZXZpc2lvbnM6IDIKZGVzY3JpcHRpb246Cmxpc2EncyBkaXN0Y2MtY29uZmlnIHB5
dGhvbiBzY3JpcHQgaHR0cDovL2J1Z3MuZ2VudG9vLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9Mjc0MzIu
Ci0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KcmV2aXNpb24gMS4yCmRhdGU6IDIwMDMvMDkv
MTEgMTM6MDg6MjM7ICBhdXRob3I6IHJvb3Q7ICBzdGF0ZTogRXhwOyAgbGluZXM6ICs0IC0yCkFw
cGVuZCBuZXdsaW5lIHRvIC9ldGMvZGlzdGNjL2hvc3RzLgpBZGRpdGlvbmFsIFVzYWdlIGVudHJp
ZXMsIHBvaW50ZXIgdG8gdGhlIGRpc3RjYyBndWlkZSwgdXBwZXIgY2FzZSBVIGluIHVzYWdlIGFz
IGl0J3MgdHJhZGl0aW9uYWwgdGhhdCB3YXkuCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0K
cmV2aXNpb24gMS4xCmRhdGU6IDIwMDMvMDkvMTEgMTE6NDE6NTE7ICBhdXRob3I6IHJvb3Q7ICBz
dGF0ZTogRXhwOwpJbml0aWFsIHJldmlzaW9uCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CgotLS0gZGlz
dGNjLWNvbmZpZy5weQkyMDAzLzA5LzExIDExOjQxOjUxCTEuMQorKysgZGlzdGNjLWNvbmZpZy5w
eQkyMDAzLzA5LzExIDEzOjEwOjQyCkBAIC04MCw3ICs4MCw3IEBACiAJcHJpbnQgJ0N1cnJlbnQg
RElTVENDX0hPU1RTOicsb3BlbignL2V0Yy9kaXN0Y2MvaG9zdHMnLCAncicpLnJlYWQoKQogZWxp
ZiAnLS1zZXQtaG9zdHMnIGluIHRtcGNtZGxpbmU6CiAJaXNyb290KCkKLQlvcGVuKCcvZXRjL2Rp
c3RjYy9ob3N0cycsICd3Jykud3JpdGUoY21kbGluZSkKKwlvcGVuKCcvZXRjL2Rpc3RjYy9ob3N0
cycsICd3Jykud3JpdGUoY21kbGluZSArICdcbicpCiAJcHJpbnQgJ1NldCBESVNUQ0NfSE9TVFMg
dG86JyxjbWRsaW5lCiBlbGlmICctLWdldC12ZXJib3NlJyBpbiB0bXBjbWRsaW5lOgogCXJlYWRl
bnYoJ0RJU1RDQ19WRVJCT1NFJykKQEAgLTExNiw2ICsxMTYsOCBAQAogCXBlcm1pc3Npb25zKCcv
dmFyL3J1bi9kaXN0Y2NkLycsdXNlcixncm91cCkKIAogZWxzZToKLQlwcmludCAndXNhZ2U6IC91
c3IvYmluL2Rpc3RjYy1jb25maWcgLS1zZXQtaG9zdHMgRElTVENDX0hPU1RTIHwgLS1nZXQtaG9z
dHMnCisJcHJpbnQgJ1VzYWdlOiAvdXNyL2Jpbi9kaXN0Y2MtY29uZmlnIC0tc2V0LWhvc3RzIERJ
U1RDQ19IT1NUUyB8IC0tZ2V0LWhvc3RzJwogCXByaW50ICcgICAgICAgL3Vzci9iaW4vZGlzdGNj
LWNvbmZpZyAtLXNldC12ZXJib3NlIHsgMCB8IDEgfSAgfCAtLWdldC12ZXJib3NlJwogCXByaW50
ICcgICAgICAgL3Vzci9iaW4vZGlzdGNjLWNvbmZpZyAtLXNldC1sb2cgRklMRSAgICAgICAgICAg
fCAtLWdldC1sb2cnCisJcHJpbnQgJyAgICAgICAvdXNyL2Jpbi9kaXN0Y2MtY29uZmlnIC0taW5z
dGFsbCcKKwlwcmludCAnU2VlIHRoZSBHZW50b28gZGlzdGNjIEd1aWRlIGF0IGh0dHA6Ly93d3cu
Z2VudG9vLm9yZy9kb2MvZW4vZGlzdGNjLnhtbCBmb3IgZnVydGhlciBpbmZvcm1hdGlvbi4nCg==
</data>        

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="0"
              isprivate="0"
          >
            <attachid>18006</attachid>
            <date>2003-09-19 17:02 0000</date>
            <desc>python rewrite</desc>
            <filename>distcc-config</filename>
            <type>application/octet-stream</type>
            <data encoding="base64">IyEvdXNyL2Jpbi9lbnYgcHl0aG9uCiMgQ29weXJpZ2h0IDE5OTktMjAwMyBHZW50b28gVGVjaG5v
bG9naWVzLCBJbmMuCiMgRGlzdHJpYnV0ZWQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2Vu
ZXJhbCBQdWJsaWMgTGljZW5zZSB2MgojICRIZWFkZXI6ICQKCmltcG9ydCBvcywgcmUsIHNpZ25h
bCwgc3lzLCBjb21tYW5kcywgcHdkLCBzb2NrZXQKZnJvbSBzdHJpbmcgaW1wb3J0IHJzdHJpcAoK
b3B0aW9ucz1bCgknLS1nZXQtaG9zdHMnLAoJJy0tc2V0LWhvc3RzJywKCSctLWdldC12ZXJib3Nl
JywKCSctLXNldC12ZXJib3NlJywKCSctLWdldC1sb2cnLAoJJy0tc2V0LWxvZycsCgknLS1pbnN0
YWxsJywKCSctLWhlbHAnLAoJJy0tZ2V0LWVudicsCgknLS1zZXQtZW52JwpdCgp0bXBjbWRsaW5l
PXN5cy5hcmd2WzE6XQpjbWRsaW5lPVtdCmVudmZpbGUgPSAnL2V0Yy9lbnYuZC8wMmRpc3RjYycK
CmRlZiBleGl0aGFuZGxlcihmb28sYmFyKToKCW9zLmtpbGwoMCxzaWduYWwuU0lHS0lMTCkKCXN5
cy5leGl0KDEpCgpzaWduYWwuc2lnbmFsKHNpZ25hbC5TSUdJTlQsZXhpdGhhbmRsZXIpCgpkZWYg
aXNyb290KCk6CglpZiBvcy5nZXR1aWQoKSAhPSAwOgoJCXByaW50ICchISEnLHN5cy5hcmd2Wzox
XVswXSx0bXBjbWRsaW5lWzBdLCdtdXN0IGJlIHJ1biBhcyByb290JwoJCXN5cy5leGl0KDEpCgpk
ZWYgd3JpdGVlbnYodmFyLHZhbHVlKToKCWlzcm9vdCgpCglkaXN0Y2NfZW52ICAgID0gW10KCWRp
c3RjY19lbnYgICAgPSBvcGVuKGVudmZpbGUsICdyJykucmVhZGxpbmVzKCkKCWRpc3RjY19lbnZf
bmV3ID0gb3BlbihlbnZmaWxlLCAndycpCglmb3IgaSBpbiByYW5nZShsZW4oZGlzdGNjX2Vudikp
OgoJCWlmIHJlLmNvbXBpbGUodmFyKyc9IiguKikiJykubWF0Y2goZGlzdGNjX2VudltpXSk6CgkJ
CWRpc3RjY19lbnZbaV0gPSB2YXIrJz0iJyt2YWx1ZSsnIlxuJwoJCWRpc3RjY19lbnZfbmV3Lndy
aXRlKGRpc3RjY19lbnZbaV0pCglwcmludCAnU2V0Jyx2YXIsJ3RvOicsdmFsdWUKCW9zLnBvcGVu
KCcvdXNyL3NiaW4vZW52LXVwZGF0ZScpCglwcmludCAnSWYgeW91IHdhbnQgdG8gdXNlIHRoZXNl
IG5ldyBzZXR0aW5ncyBpbiBhbiBleGlzdGluZyBzaGVsbCwnCglwcmludCAneW91IG5lZWQgdG8g
InNvdXJjZSAvZXRjL3Byb2ZpbGUiIHRvIGdldCB0aGUgY2hhbmdlcy4nCgpkZWYgcmVhZGVudih2
YXIpOgoJZGlzdGNjX2VudiA9IG9wZW4oZW52ZmlsZSwgJ3InKS5yZWFkKCkKCW1hdGNoID0gcmUu
Y29tcGlsZSh2YXIrJz0iKC4qKSInKS5zZWFyY2goZGlzdGNjX2VudikKCWlmIG1hdGNoOgoJCXBy
aW50IHZhcisnPScrbWF0Y2guZ3JvdXAoMSkKCWVsc2U6CgkJcHJpbnQgdmFyLCdub3Qgc2V0LicK
CmRlZiBwZXJtaXNzaW9ucyhwYXRoLHVzZXIsZ3JvdXApOgoJZm9yIGZpbGUgaW4gb3MubGlzdGRp
cihwYXRoKToKCQlwcmludCAnQ29uZmlndXJpbmcnLHBhdGgrZmlsZSsnLi4uJwoJCW9zLmNob3du
KHBhdGgrZmlsZSx1c2VyLGdyb3VwKQoKZGVmIGluc3RhbGxsaW5rcyhjaG9zdD0nJyk6Cglmb3Ig
ZmlsZSBpbiBbJ2djYycsICdjYycsICdjKysnLCAnZysrJ106CgkJcGF0aCA9ICcvdXNyL2xpYi9k
aXN0Y2MvYmluLycKCQlpZiBub3QgY2hvc3QgPT0gJyc6CgkJCWZpbGUgPSBjaG9zdCsnLScrZmls
ZQoJCWlmIG9zLnBhdGguZXhpc3RzKCcvdXNyL2Jpbi8nK2ZpbGUpOgoJCQlwcmludCAnQ3JlYXRp
bmcnLHBhdGgrZmlsZSwnc3ltbGluay4uLicKCQkJaWYgbm90IG9zLnBhdGguZXhpc3RzKHBhdGgr
ZmlsZSk6CgkJCQlvcy5zeW1saW5rKCcvdXNyL2Jpbi9kaXN0Y2MnLHBhdGgrZmlsZSkKCQkJZWxz
ZToKCQkJCXByaW50ICdBbHJlYWR5IGV4aXN0cy4gU2tpcHBpbmcuLi4nCgpkZWYgY3JlYXRlZGlz
dGNjZGlyKGRpcik6CglpZiBub3Qgb3MucGF0aC5leGlzdHMoZGlyKToKCQlvcy5ta2RpcihkaXIp
CgkJb3MuY2htb2QoZGlyLCAnMTc3NycpCgpmb3IgeCBpbiB0bXBjbWRsaW5lOgoJaWYgbm90IHg6
CgkJY29udGludWUKCWlmIHhbMDoyXT09Ii0tIjoKCQlpZiBub3QgeCBpbiBvcHRpb25zOgoJCQlw
cmludCAiISEhIEVycm9yOiIseCwiaXMgYW4gaW52YWxpZCBvcHRpb24uIgoJCQlzeXMuZXhpdCgx
KQoJZWxzZToKCQljbWRsaW5lID0geAoKaWYgJy0tZ2V0LWhvc3RzJyBpbiB0bXBjbWRsaW5lOgoJ
cHJpbnQgcnN0cmlwKG9wZW4oJy9ldGMvZGlzdGNjL2hvc3RzJywgJ3InKS5yZWFkKCkpCmVsaWYg
Jy0tc2V0LWhvc3RzJyBpbiB0bXBjbWRsaW5lOgoJaXNyb290KCkKCW9wZW4oJy9ldGMvZGlzdGNj
L2hvc3RzJywgJ3cnKS53cml0ZShjbWRsaW5lICsgJ1xuJykKCSNwcmludCAnU2V0IERJU1RDQ19I
T1NUUyB0bzonLGNtZGxpbmUKZWxpZiAnLS1nZXQtdmVyYm9zZScgaW4gdG1wY21kbGluZToKCXJl
YWRlbnYoJ0RJU1RDQ19WRVJCT1NFJykKZWxpZiAnLS1zZXQtdmVyYm9zZScgaW4gdG1wY21kbGlu
ZToKCXdyaXRlZW52KCdESVNUQ0NfVkVSQk9TRScsdG1wY21kbGluZVsxXSkKZWxpZiAnLS1nZXQt
bG9nJyBpbiB0bXBjbWRsaW5lOgoJcmVhZGVudignRElTVENDX0xPRycpCmVsaWYgJy0tc2V0LWxv
ZycgaW4gdG1wY21kbGluZToKCXdyaXRlZW52KCdESVNUQ0NfTE9HJyx0bXBjbWRsaW5lWzFdKQpl
bGlmICctLWluc3RhbGwnIGluIHRtcGNtZGxpbmU6Cglpc3Jvb3QoKQoJcHJpbnQgJ0NyZWF0aW5n
JyxlbnZmaWxlLCcuLi4nCglkaXN0Y2NfZW52ID0gb3BlbihlbnZmaWxlLCAndycpCglkaXN0Y2Nf
ZW52LndyaXRlKCcjIFRoaXMgZmlsZSBpcyBtYW5hZ2VkIGJ5IGRpc3RjYy1jb25maWc7IHVzZSBp
dCB0byBjaGFuZ2UgdGhlc2Ugc2V0dGluZ3MuXG4nKQoJZGlzdGNjX2Vudi53cml0ZSgnRElTVEND
X0xPRz0iL3Zhci9sb2cvZGlzdGNjLmxvZyJcbicpCglkaXN0Y2NfZW52LndyaXRlKCdEQ0NDX1BB
VEg9Ii91c3IvbGliL2Rpc3RjYy9iaW4iXG4nKQoJZGlzdGNjX2Vudi53cml0ZSgnRElTVENDX1ZF
UkJPU0U9IjAiXG4nKQoJZGlzdGNjX2Vudi53cml0ZSgnRElTVENDX0RJUj0iL3RtcCJcbicpCgkK
CWNyZWF0ZWRpc3RjY2RpcignL3RtcCcpCgoJaWYgb3MuV0VYSVRTVEFUVVMoY29tbWFuZHMuZ2V0
c3RhdHVzb3V0cHV0KCcvdXNyL3NiaW4vdXNlcmFkZCAtZyBkYWVtb24gLXMgL2Jpbi9mYWxzZSAt
ZCAvZGV2L251bGwgLWMgImRpc3RjY2QiIGRpc3RjYycpWzBdKSA9PSA5OgoJCW9zLldFWElUU1RB
VFVTKGNvbW1hbmRzLmdldHN0YXR1c291dHB1dCgnL3Vzci9zYmluL3VzZXJtb2QgLWcgZGFlbW9u
IC1zIC9iaW4vZmFsc2UgLWQgL2Rldi9udWxsIC1jICJkaXN0Y2NkIiBkaXN0Y2MnKVswXSkKCglm
b29iYXIgPSBwd2QuZ2V0cHduYW0oJ2Rpc3RjYycpCgl1c2VyICAgPSBmb29iYXJbMl0KCWdyb3Vw
ICA9IGZvb2JhclszXQoKCW1ha2Vjb25mID0gb3BlbignL2V0Yy9tYWtlLmNvbmYnLCAncicpLnJl
YWQoKQoJY2hvc3QgPSByZS5jb21waWxlKCdDSE9TVD0iKC4qKSInKS5zZWFyY2gobWFrZWNvbmYp
Lmdyb3VwKDEpCglpbnN0YWxsbGlua3MoKQoJaW5zdGFsbGxpbmtzKGNob3N0KQoKCXBlcm1pc3Np
b25zKCcvdXNyL2xpYi9kaXN0Y2MvYmluLycsdXNlcixncm91cCkKCXBlcm1pc3Npb25zKCcvdmFy
L3J1bi9kaXN0Y2NkLycsdXNlcixncm91cCkKZWxpZiAnLS1nZXQtZW52JyBpbiB0bXBjbWRsaW5l
OgoJaWYgbGVuKHRtcGNtZGxpbmUpID09IDE6CgkJcHJpbnQgcnN0cmlwKG9wZW4oZW52ZmlsZSwg
J3InKS5yZWFkKCkpCgllbGlmIGxlbih0bXBjbWRsaW5lKSA9PSAyOgoJCXJlYWRlbnYodG1wY21k
bGluZVsxXSkKCWVsc2U6CgkJcHJpbnQgJyEhISBFcnJvcjogU3BlY2lmeSBvbmx5IG9uZSB2YXJp
YWJsZS4nCmVsaWYgJy0tc2V0LWVudicgaW4gdG1wY21kbGluZToKCWlmIGxlbih0bXBjbWRsaW5l
KSA+IDIgYW5kIGxlbih0bXBjbWRsaW5lKSA8PSAzOgoJCWlzcm9vdCgpCgkJd3JpdGVlbnYodG1w
Y21kbGluZVsxXSx0bXBjbWRsaW5lWzJdKQoJZWxzZToKCQlwcmludCAnISEhIEVycm9yOiBBd2Fp
dGluZyB0d28gcGFyYW1ldGVycy4nCmVsc2U6CglwcmludCAnVXNhZ2U6IC91c3IvYmluL2Rpc3Rj
Yy1jb25maWcgLS1zZXQtaG9zdHMgRElTVENDX0hPU1RTIHwgLS1nZXQtaG9zdHMnCglwcmludCAn
ICAgICAgIC91c3IvYmluL2Rpc3RjYy1jb25maWcgLS1zZXQtdmVyYm9zZSB7IDAgfCAxIH0gIHwg
LS1nZXQtdmVyYm9zZScKCXByaW50ICcgICAgICAgL3Vzci9iaW4vZGlzdGNjLWNvbmZpZyAtLXNl
dC1sb2cgRklMRSAgICAgICAgICAgfCAtLWdldC1sb2cnCglwcmludCAnICAgICAgIC91c3IvYmlu
L2Rpc3RjYy1jb25maWcgLS1zZXQtZW52IFZBUklBQkxFIFZBTFVFIHwgLS1nZXQtZW52IFtWQVJJ
QUJMRV0nCg==
</data>        

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="0"
              isprivate="0"
          >
            <attachid>18852</attachid>
            <date>2003-10-06 04:36 0000</date>
            <desc>python rewrite</desc>
            <filename>distcc-config</filename>
            <type>application/octet-stream</type>
            <data encoding="base64">IyEvdXNyL2Jpbi9lbnYgcHl0aG9uCiMgQ29weXJpZ2h0IDE5OTktMjAwMyBHZW50b28gVGVjaG5v
bG9naWVzLCBJbmMuCiMgRGlzdHJpYnV0ZWQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2Vu
ZXJhbCBQdWJsaWMgTGljZW5zZSB2MgojICRIZWFkZXI6ICQKCmltcG9ydCBvcywgcmUsIHNpZ25h
bCwgc3lzLCBjb21tYW5kcywgcHdkCmZyb20gc3RyaW5nIGltcG9ydCByc3RyaXAKCm9wdGlvbnM9
WwoJJy0tZ2V0LWhvc3RzJywKCSctLXNldC1ob3N0cycsCgknLS1nZXQtdmVyYm9zZScsCgknLS1z
ZXQtdmVyYm9zZScsCgknLS1nZXQtbG9nJywKCSctLXNldC1sb2cnLAoJJy0taW5zdGFsbCcsCgkn
LS1oZWxwJywKCSctLWdldC1lbnYnLAoJJy0tc2V0LWVudicKXQoKdG1wY21kbGluZT1zeXMuYXJn
dlsxOl0KY21kbGluZT1bXQplbnZmaWxlID0gJy9ldGMvZW52LmQvMDJkaXN0Y2MnCgpkZWYgZXhp
dGhhbmRsZXIoZm9vLGJhcik6Cglvcy5raWxsKDAsc2lnbmFsLlNJR0tJTEwpCglzeXMuZXhpdCgx
KQoKc2lnbmFsLnNpZ25hbChzaWduYWwuU0lHSU5ULGV4aXRoYW5kbGVyKQoKZGVmIGlzcm9vdChy
ZXQ9MCk6CglpZiBvcy5nZXR1aWQoKSAhPSAwOgoJCWlmIHJldCA9PSAwOgoJCQlwcmludCAnISEh
JyxzeXMuYXJndls6MV1bMF0sdG1wY21kbGluZVswXSwnbXVzdCBiZSBydW4gYXMgcm9vdCcKCQkJ
c3lzLmV4aXQoMSkKCQllbHNlOgoJCQlyZXR2YWwgPSAwCgllbHNlOgoJCXJldHZhbCA9IDEKCXJl
dHVybiByZXR2YWwKCmRlZiB3cml0ZWVudih2YXIsdmFsdWUpOgoJaXNyb290KCkKCWRpc3RjY19l
bnYgICAgPSBbXQoJZGlzdGNjX2VudiAgICA9IG9wZW4oZW52ZmlsZSwgJ3InKS5yZWFkbGluZXMo
KQoJZGlzdGNjX2Vudl9uZXcgPSBvcGVuKGVudmZpbGUsICd3JykKCWZvciBpIGluIHJhbmdlKGxl
bihkaXN0Y2NfZW52KSk6CgkJaWYgcmUuY29tcGlsZSh2YXIrJz0iKC4qKSInKS5tYXRjaChkaXN0
Y2NfZW52W2ldKToKCQkJZGlzdGNjX2VudltpXSA9IHZhcisnPSInK3ZhbHVlKyciXG4nCgkJZGlz
dGNjX2Vudl9uZXcud3JpdGUoZGlzdGNjX2VudltpXSkKCXByaW50ICdTZXQnLHZhciwndG86Jyx2
YWx1ZQoJb3MucG9wZW4oJy91c3Ivc2Jpbi9lbnYtdXBkYXRlJykKCXByaW50ICdJZiB5b3Ugd2Fu
dCB0byB1c2UgdGhlc2UgbmV3IHNldHRpbmdzIGluIGFuIGV4aXN0aW5nIHNoZWxsLCcKCXByaW50
ICd5b3UgbmVlZCB0byAic291cmNlIC9ldGMvcHJvZmlsZSIgdG8gZ2V0IHRoZSBjaGFuZ2VzLicK
CmRlZiByZWFkZW52KHZhcik6CglkaXN0Y2NfZW52ID0gb3BlbihlbnZmaWxlLCAncicpLnJlYWQo
KQoJbWF0Y2ggPSByZS5jb21waWxlKHZhcisnPSIoLiopIicpLnNlYXJjaChkaXN0Y2NfZW52KQoJ
aWYgbWF0Y2g6CgkJcHJpbnQgdmFyKyc9JyttYXRjaC5ncm91cCgxKQoJZWxzZToKCQlwcmludCB2
YXIsJ25vdCBzZXQuJwoKZGVmIHBlcm1pc3Npb25zKHBhdGgsdXNlcixncm91cCk6Cglmb3IgZmls
ZSBpbiBvcy5saXN0ZGlyKHBhdGgpOgoJCXByaW50ICdDb25maWd1cmluZycscGF0aCtmaWxlKycu
Li4nCgkJb3MuY2hvd24ocGF0aCtmaWxlLHVzZXIsZ3JvdXApCgpkZWYgaW5zdGFsbGxpbmtzKGNo
b3N0PScnKToKCWZvciBmaWxlIGluIFsnZ2NjJywgJ2NjJywgJ2MrKycsICdnKysnXToKCQlwYXRo
ID0gJy91c3IvbGliL2Rpc3RjYy9iaW4vJwoJCWlmIG5vdCBjaG9zdCA9PSAnJzoKCQkJZmlsZSA9
IGNob3N0KyctJytmaWxlCgkJaWYgb3MucGF0aC5leGlzdHMoJy91c3IvYmluLycrZmlsZSk6CgkJ
CXByaW50ICdDcmVhdGluZycscGF0aCtmaWxlLCdzeW1saW5rLi4uJwoJCQlpZiBub3Qgb3MucGF0
aC5leGlzdHMocGF0aCtmaWxlKToKCQkJCW9zLnN5bWxpbmsoJy91c3IvYmluL2Rpc3RjYycscGF0
aCtmaWxlKQoJCQllbHNlOgoJCQkJcHJpbnQgJ0FscmVhZHkgZXhpc3RzLiBTa2lwcGluZy4uLicK
CmRlZiBjcmVhdGVkaXN0Y2NkaXIoZGlyKToKCWlmIG5vdCBvcy5wYXRoLmV4aXN0cyhkaXIpOgoJ
CW9zLm1rZGlyKGRpcikKCQlvcy5jaG1vZChkaXIsICcxNzc3JykKCmZvciB4IGluIHRtcGNtZGxp
bmU6CglpZiBub3QgeDoKCQljb250aW51ZQoJaWYgeFswOjJdPT0iLS0iOgoJCWlmIG5vdCB4IGlu
IG9wdGlvbnM6CgkJCXByaW50ICIhISEgRXJyb3I6Iix4LCJpcyBhbiBpbnZhbGlkIG9wdGlvbi4i
CgkJCXN5cy5leGl0KDEpCgllbHNlOgoJCWNtZGxpbmUgPSB4CgppZiAnLS1nZXQtaG9zdHMnIGlu
IHRtcGNtZGxpbmU6CglIT1NUU19FTlYgID0gb3MuZW52aXJvbi5nZXQoJ0RJU1RDQ19IT1NUUycp
CglIT1NUU19IT01FID0gb3MuZW52aXJvbi5nZXQoJ0hPTUUnKSsnL2hvc3RzJwoJaWYgSE9TVFNf
RU5WOgoJCXByaW50IEhPU1RTX0VOVgoJZWxpZiBvcy5wYXRoLmV4aXN0cyhIT1NUU19IT01FKSBh
bmQgb3MucGF0aC5nZXRzaXplKEhPU1RTX0hPTUUpICE9IDA6CgkJcHJpbnQgSE9TVFNfSE9NRQoJ
ZWxzZToKCQlwcmludCByc3RyaXAob3BlbignL2V0Yy9kaXN0Y2MvaG9zdHMnLCAncicpLnJlYWQo
KSkKZWxpZiAnLS1zZXQtaG9zdHMnIGluIHRtcGNtZGxpbmU6CglpZiBpc3Jvb3QoMSk6CgkJRklM
RSA9ICcvZXRjL2Rpc3RjYy9ob3N0cycKCWVsc2U6CgkJRklMRSA9IG9zLmVudmlyb24uZ2V0KCdI
T01FJykrJy9ob3N0cycKCW9wZW4oRklMRSwgJ3cnKS53cml0ZShjbWRsaW5lICsgJ1xuJykKZWxp
ZiAnLS1nZXQtdmVyYm9zZScgaW4gdG1wY21kbGluZToKCXJlYWRlbnYoJ0RJU1RDQ19WRVJCT1NF
JykKZWxpZiAnLS1zZXQtdmVyYm9zZScgaW4gdG1wY21kbGluZToKCXdyaXRlZW52KCdESVNUQ0Nf
VkVSQk9TRScsdG1wY21kbGluZVsxXSkKZWxpZiAnLS1nZXQtbG9nJyBpbiB0bXBjbWRsaW5lOgoJ
cmVhZGVudignRElTVENDX0xPRycpCmVsaWYgJy0tc2V0LWxvZycgaW4gdG1wY21kbGluZToKCXdy
aXRlZW52KCdESVNUQ0NfTE9HJyx0bXBjbWRsaW5lWzFdKQplbGlmICctLWluc3RhbGwnIGluIHRt
cGNtZGxpbmU6Cglpc3Jvb3QoKQoJcHJpbnQgJ0NyZWF0aW5nJyxlbnZmaWxlLCcuLi4nCglkaXN0
Y2NfZW52ID0gb3BlbihlbnZmaWxlLCAndycpCglkaXN0Y2NfZW52LndyaXRlKCcjIFRoaXMgZmls
ZSBpcyBtYW5hZ2VkIGJ5IGRpc3RjYy1jb25maWc7IHVzZSBpdCB0byBjaGFuZ2UgdGhlc2Ugc2V0
dGluZ3MuXG4nKQoJZGlzdGNjX2Vudi53cml0ZSgnRElTVENDX0xPRz0iL3Zhci9sb2cvZGlzdGNj
LmxvZyJcbicpCglkaXN0Y2NfZW52LndyaXRlKCdEQ0NDX1BBVEg9Ii91c3IvbGliL2Rpc3RjYy9i
aW4iXG4nKQoJZGlzdGNjX2Vudi53cml0ZSgnRElTVENDX1ZFUkJPU0U9IjAiXG4nKQoJZGlzdGNj
X2Vudi53cml0ZSgnRElTVENDX0RJUj0iL3RtcCJcbicpCgkKCWNyZWF0ZWRpc3RjY2RpcignL3Rt
cCcpCgoJaWYgb3MuV0VYSVRTVEFUVVMoY29tbWFuZHMuZ2V0c3RhdHVzb3V0cHV0KCcvdXNyL3Ni
aW4vdXNlcmFkZCAtZyBkYWVtb24gLXMgL2Jpbi9mYWxzZSAtZCAvZGV2L251bGwgLWMgImRpc3Rj
Y2QiIGRpc3RjYycpWzBdKSA9PSA5OgoJCW9zLldFWElUU1RBVFVTKGNvbW1hbmRzLmdldHN0YXR1
c291dHB1dCgnL3Vzci9zYmluL3VzZXJtb2QgLWcgZGFlbW9uIC1zIC9iaW4vZmFsc2UgLWQgL2Rl
di9udWxsIC1jICJkaXN0Y2NkIiBkaXN0Y2MnKVswXSkKCglmb29iYXIgPSBwd2QuZ2V0cHduYW0o
J2Rpc3RjYycpCgl1c2VyICAgPSBmb29iYXJbMl0KCWdyb3VwICA9IGZvb2JhclszXQoKCW1ha2Vj
b25mID0gb3BlbignL2V0Yy9tYWtlLmNvbmYnLCAncicpLnJlYWQoKQoJY2hvc3QgPSByZS5jb21w
aWxlKCdDSE9TVD0iKC4qKSInKS5zZWFyY2gobWFrZWNvbmYpLmdyb3VwKDEpCglpbnN0YWxsbGlu
a3MoKQoJaW5zdGFsbGxpbmtzKGNob3N0KQoKCXBlcm1pc3Npb25zKCcvdXNyL2xpYi9kaXN0Y2Mv
YmluLycsdXNlcixncm91cCkKCXBlcm1pc3Npb25zKCcvdmFyL3J1bi9kaXN0Y2NkLycsdXNlcixn
cm91cCkKZWxpZiAnLS1nZXQtZW52JyBpbiB0bXBjbWRsaW5lOgoJaWYgbGVuKHRtcGNtZGxpbmUp
ID09IDE6CgkJcHJpbnQgcnN0cmlwKG9wZW4oZW52ZmlsZSwgJ3InKS5yZWFkKCkpCgllbGlmIGxl
bih0bXBjbWRsaW5lKSA9PSAyOgoJCXJlYWRlbnYodG1wY21kbGluZVsxXSkKCWVsc2U6CgkJcHJp
bnQgJyEhISBFcnJvcjogU3BlY2lmeSBvbmx5IG9uZSB2YXJpYWJsZS4nCmVsaWYgJy0tc2V0LWVu
dicgaW4gdG1wY21kbGluZToKCWlmIGxlbih0bXBjbWRsaW5lKSA+IDIgYW5kIGxlbih0bXBjbWRs
aW5lKSA8PSAzOgoJCWlzcm9vdCgpCgkJd3JpdGVlbnYodG1wY21kbGluZVsxXSx0bXBjbWRsaW5l
WzJdKQoJZWxzZToKCQlwcmludCAnISEhIEVycm9yOiBBd2FpdGluZyB0d28gcGFyYW1ldGVycy4n
CmVsc2U6CglwcmludCAnVXNhZ2U6IC91c3IvYmluL2Rpc3RjYy1jb25maWcgLS1zZXQtaG9zdHMg
RElTVENDX0hPU1RTIHwgLS1nZXQtaG9zdHMnCglwcmludCAnICAgICAgIC91c3IvYmluL2Rpc3Rj
Yy1jb25maWcgLS1zZXQtdmVyYm9zZSB7IDAgfCAxIH0gIHwgLS1nZXQtdmVyYm9zZScKCXByaW50
ICcgICAgICAgL3Vzci9iaW4vZGlzdGNjLWNvbmZpZyAtLXNldC1sb2cgRklMRSAgICAgICAgICAg
fCAtLWdldC1sb2cnCglwcmludCAnICAgICAgIC91c3IvYmluL2Rpc3RjYy1jb25maWcgLS1zZXQt
ZW52IFZBUklBQkxFIFZBTFVFIHwgLS1nZXQtZW52IFtWQVJJQUJMRV0nCg==
</data>        

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="0"
              isprivate="0"
          >
            <attachid>19348</attachid>
            <date>2003-10-17 03:10 0000</date>
            <desc>python rewrite</desc>
            <filename>distcc-config</filename>
            <type>text/plain</type>
            <data encoding="base64">IyEvdXNyL2Jpbi9lbnYgcHl0aG9uCiMgQ29weXJpZ2h0IDE5OTktMjAwMyBHZW50b28gVGVjaG5v
bG9naWVzLCBJbmMuCiMgRGlzdHJpYnV0ZWQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2Vu
ZXJhbCBQdWJsaWMgTGljZW5zZSB2MgojICRIZWFkZXI6ICQKCmltcG9ydCBvcywgcmUsIHNpZ25h
bCwgc3lzLCBjb21tYW5kcywgcHdkCmZyb20gc3RyaW5nIGltcG9ydCByc3RyaXAKCm9wdGlvbnM9
WwoJJy0tZ2V0LWhvc3RzJywKCSctLXNldC1ob3N0cycsCgknLS1nZXQtdmVyYm9zZScsCgknLS1z
ZXQtdmVyYm9zZScsCgknLS1nZXQtbG9nJywKCSctLXNldC1sb2cnLAoJJy0taW5zdGFsbCcsCgkn
LS1oZWxwJywKCSctLWdldC1lbnYnLAoJJy0tc2V0LWVudicKXQoKdG1wY21kbGluZT1zeXMuYXJn
dlsxOl0KY21kbGluZT1bXQplbnZmaWxlID0gJy9ldGMvZW52LmQvMDJkaXN0Y2MnCgpkZWYgZXhp
dGhhbmRsZXIoZm9vLGJhcik6Cglvcy5raWxsKDAsc2lnbmFsLlNJR0tJTEwpCglzeXMuZXhpdCgx
KQoKc2lnbmFsLnNpZ25hbChzaWduYWwuU0lHSU5ULGV4aXRoYW5kbGVyKQoKZGVmIGlzcm9vdChy
ZXQ9MCk6CglpZiBvcy5nZXR1aWQoKSAhPSAwOgoJCWlmIHJldCA9PSAwOgoJCQlwcmludCAnISEh
JyxzeXMuYXJndls6MV1bMF0sdG1wY21kbGluZVswXSwnbXVzdCBiZSBydW4gYXMgcm9vdCcKCQkJ
c3lzLmV4aXQoMSkKCQllbHNlOgoJCQlyZXR2YWwgPSAwCgllbHNlOgoJCXJldHZhbCA9IDEKCXJl
dHVybiByZXR2YWwKCmRlZiB3cml0ZWVudih2YXIsdmFsdWUpOgoJaXNyb290KCkKCWRpc3RjY19l
bnYgICAgPSBbXQoJZGlzdGNjX2VudiAgICA9IG9wZW4oZW52ZmlsZSwgJ3InKS5yZWFkbGluZXMo
KQoJZGlzdGNjX2Vudl9uZXcgPSBvcGVuKGVudmZpbGUsICd3JykKCWZvciBpIGluIHJhbmdlKGxl
bihkaXN0Y2NfZW52KSk6CgkJaWYgcmUuY29tcGlsZSh2YXIrJz0iKC4qKSInKS5tYXRjaChkaXN0
Y2NfZW52W2ldKToKCQkJZGlzdGNjX2VudltpXSA9IHZhcisnPSInK3ZhbHVlKyciXG4nCgkJZGlz
dGNjX2Vudl9uZXcud3JpdGUoZGlzdGNjX2VudltpXSkKCXByaW50ICdTZXQnLHZhciwndG86Jyx2
YWx1ZQoJb3MucG9wZW4oJy91c3Ivc2Jpbi9lbnYtdXBkYXRlJykKCXByaW50ICdJZiB5b3Ugd2Fu
dCB0byB1c2UgdGhlc2UgbmV3IHNldHRpbmdzIGluIGFuIGV4aXN0aW5nIHNoZWxsLCcKCXByaW50
ICd5b3UgbmVlZCB0byAic291cmNlIC9ldGMvcHJvZmlsZSIgdG8gZ2V0IHRoZSBjaGFuZ2VzLicK
CmRlZiByZWFkZW52KHZhcik6CglkaXN0Y2NfZW52ID0gb3BlbihlbnZmaWxlLCAncicpLnJlYWQo
KQoJbWF0Y2ggPSByZS5jb21waWxlKHZhcisnPSIoLiopIicpLnNlYXJjaChkaXN0Y2NfZW52KQoJ
aWYgbWF0Y2g6CgkJcHJpbnQgdmFyKyc9JyttYXRjaC5ncm91cCgxKQoJZWxzZToKCQlwcmludCB2
YXIsJ25vdCBzZXQuJwoKZGVmIHBlcm1pc3Npb25zKHBhdGgsdXNlcixncm91cCk6Cglmb3IgZmls
ZSBpbiBvcy5saXN0ZGlyKHBhdGgpOgoJCSNwcmludCAnQ29uZmlndXJpbmcnLHBhdGgrZmlsZSsn
Li4uJwoJCW9zLmNob3duKHBhdGgrZmlsZSx1c2VyLGdyb3VwKQoKZGVmIGluc3RhbGxsaW5rcyhj
aG9zdD0nJyk6Cglmb3IgZmlsZSBpbiBbJ2djYycsICdjYycsICdjKysnLCAnZysrJ106CgkJcGF0
aCA9ICcvdXNyL2xpYi9kaXN0Y2MvYmluLycKCQlpZiBub3QgY2hvc3QgPT0gJyc6CgkJCWZpbGUg
PSBjaG9zdCsnLScrZmlsZQoJCWlmIG9zLnBhdGguZXhpc3RzKCcvdXNyL2Jpbi8nK2ZpbGUpOgoJ
CQkjcHJpbnQgJ0NyZWF0aW5nJyxwYXRoK2ZpbGUsJ3N5bWxpbmsuLi4nCgkJCWlmIG5vdCBvcy5w
YXRoLmV4aXN0cyhwYXRoK2ZpbGUpOgoJCQkJb3Muc3ltbGluaygnL3Vzci9iaW4vZGlzdGNjJyxw
YXRoK2ZpbGUpCgkJCSNlbHNlOgoJCQkjCXByaW50ICdBbHJlYWR5IGV4aXN0cy4gU2tpcHBpbmcu
Li4nCgpkZWYgY3JlYXRlZGlzdGNjZGlyKGRpcik6CglpZiBub3Qgb3MucGF0aC5leGlzdHMoZGly
KToKCQlvcy5ta2RpcihkaXIpCgkJb3MuY2htb2QoZGlyLCAnMTc3NycpCgpmb3IgeCBpbiB0bXBj
bWRsaW5lOgoJaWYgbm90IHg6CgkJY29udGludWUKCWlmIHhbMDoyXT09Ii0tIjoKCQlpZiBub3Qg
eCBpbiBvcHRpb25zOgoJCQlwcmludCAiISEhIEVycm9yOiIseCwiaXMgYW4gaW52YWxpZCBvcHRp
b24uIgoJCQlzeXMuZXhpdCgxKQoJZWxzZToKCQljbWRsaW5lID0geAoKaWYgJy0tZ2V0LWhvc3Rz
JyBpbiB0bXBjbWRsaW5lOgoJSE9TVFNfRU5WICA9IG9zLmVudmlyb24uZ2V0KCdESVNUQ0NfSE9T
VFMnKQoJSE9TVFNfSE9NRSA9IG9zLmVudmlyb24uZ2V0KCdIT01FJykrJy9ob3N0cycKCWlmIEhP
U1RTX0VOVjoKCQlwcmludCBIT1NUU19FTlYKCWVsaWYgb3MucGF0aC5leGlzdHMoSE9TVFNfSE9N
RSkgYW5kIG9zLnBhdGguZ2V0c2l6ZShIT1NUU19IT01FKSAhPSAwOgoJCXByaW50IEhPU1RTX0hP
TUUKCWVsc2U6CgkJcHJpbnQgcnN0cmlwKG9wZW4oJy9ldGMvZGlzdGNjL2hvc3RzJywgJ3InKS5y
ZWFkKCkpCmVsaWYgJy0tc2V0LWhvc3RzJyBpbiB0bXBjbWRsaW5lOgoJaWYgaXNyb290KDEpOgoJ
CUZJTEUgPSAnL2V0Yy9kaXN0Y2MvaG9zdHMnCgllbHNlOgoJCUZJTEUgPSBvcy5lbnZpcm9uLmdl
dCgnSE9NRScpKycvaG9zdHMnCglvcGVuKEZJTEUsICd3Jykud3JpdGUoY21kbGluZSArICdcbicp
CmVsaWYgJy0tZ2V0LXZlcmJvc2UnIGluIHRtcGNtZGxpbmU6CglyZWFkZW52KCdESVNUQ0NfVkVS
Qk9TRScpCmVsaWYgJy0tc2V0LXZlcmJvc2UnIGluIHRtcGNtZGxpbmU6Cgl3cml0ZWVudignRElT
VENDX1ZFUkJPU0UnLHRtcGNtZGxpbmVbMV0pCmVsaWYgJy0tZ2V0LWxvZycgaW4gdG1wY21kbGlu
ZToKCXJlYWRlbnYoJ0RJU1RDQ19MT0cnKQplbGlmICctLXNldC1sb2cnIGluIHRtcGNtZGxpbmU6
Cgl3cml0ZWVudignRElTVENDX0xPRycsdG1wY21kbGluZVsxXSkKZWxpZiAnLS1pbnN0YWxsJyBp
biB0bXBjbWRsaW5lOgoJaXNyb290KCkKCXByaW50ICdDcmVhdGluZycsZW52ZmlsZSsnLi4uJwoJ
ZGlzdGNjX2VudiA9IG9wZW4oZW52ZmlsZSwgJ3cnKQoJZGlzdGNjX2Vudi53cml0ZSgnIyBUaGlz
IGZpbGUgaXMgbWFuYWdlZCBieSBkaXN0Y2MtY29uZmlnOyB1c2UgaXQgdG8gY2hhbmdlIHRoZXNl
IHNldHRpbmdzLlxuJykKCWRpc3RjY19lbnYud3JpdGUoJ0RJU1RDQ19MT0c9IiJcbicpCglkaXN0
Y2NfZW52LndyaXRlKCdEQ0NDX1BBVEg9Ii91c3IvbGliL2Rpc3RjYy9iaW4iXG4nKQoJZGlzdGNj
X2Vudi53cml0ZSgnRElTVENDX1ZFUkJPU0U9IjAiXG4nKQoJCglpZiBvcy5XRVhJVFNUQVRVUyhj
b21tYW5kcy5nZXRzdGF0dXNvdXRwdXQoJy91c3Ivc2Jpbi91c2VyYWRkIC1nIGRhZW1vbiAtcyAv
YmluL2ZhbHNlIC1kIC9kZXYvbnVsbCAtYyAiZGlzdGNjZCIgZGlzdGNjJylbMF0pID09IDk6CgkJ
b3MuV0VYSVRTVEFUVVMoY29tbWFuZHMuZ2V0c3RhdHVzb3V0cHV0KCcvdXNyL3NiaW4vdXNlcm1v
ZCAtZyBkYWVtb24gLXMgL2Jpbi9mYWxzZSAtZCAvZGV2L251bGwgLWMgImRpc3RjY2QiIGRpc3Rj
YycpWzBdKQoKCWZvb2JhciA9IHB3ZC5nZXRwd25hbSgnZGlzdGNjJykKCXVzZXIgICA9IGZvb2Jh
clsyXQoJZ3JvdXAgID0gZm9vYmFyWzNdCgoJbWFrZWNvbmYgPSBvcGVuKCcvZXRjL21ha2UuY29u
ZicsICdyJykucmVhZCgpCgljaG9zdCA9IHJlLmNvbXBpbGUoJ0NIT1NUPSIoLiopIicpLnNlYXJj
aChtYWtlY29uZikuZ3JvdXAoMSkKCXByaW50ICdDcmVhdGluZyBzeW1saW5rcy4uLicKCWluc3Rh
bGxsaW5rcygpCglpbnN0YWxsbGlua3MoY2hvc3QpCgoJcHJpbnQgJ0NoZWNraW5nIHBlcm1pc3Np
b25zLi4uJwoJcGVybWlzc2lvbnMoJy91c3IvbGliL2Rpc3RjYy9iaW4vJyx1c2VyLGdyb3VwKQoJ
I3Blcm1pc3Npb25zKCcvdmFyL3J1bi9kaXN0Y2NkLycsdXNlcixncm91cCkKCQoJb3Muc3lzdGVt
KCcvZXRjL2luaXQuZC9kaXN0Y2NkIHJlc3RhcnQnKTsKZWxpZiAnLS1nZXQtZW52JyBpbiB0bXBj
bWRsaW5lOgoJaWYgbGVuKHRtcGNtZGxpbmUpID09IDE6CgkJcHJpbnQgcnN0cmlwKG9wZW4oZW52
ZmlsZSwgJ3InKS5yZWFkKCkpCgllbGlmIGxlbih0bXBjbWRsaW5lKSA9PSAyOgoJCXJlYWRlbnYo
dG1wY21kbGluZVsxXSkKCWVsc2U6CgkJcHJpbnQgJyEhISBFcnJvcjogU3BlY2lmeSBvbmx5IG9u
ZSB2YXJpYWJsZS4nCmVsaWYgJy0tc2V0LWVudicgaW4gdG1wY21kbGluZToKCWlmIGxlbih0bXBj
bWRsaW5lKSA+IDIgYW5kIGxlbih0bXBjbWRsaW5lKSA8PSAzOgoJCWlzcm9vdCgpCgkJd3JpdGVl
bnYodG1wY21kbGluZVsxXSx0bXBjbWRsaW5lWzJdKQoJZWxzZToKCQlwcmludCAnISEhIEVycm9y
OiBBd2FpdGluZyB0d28gcGFyYW1ldGVycy4nCmVsc2U6CglwcmludCAnVXNhZ2U6IC91c3IvYmlu
L2Rpc3RjYy1jb25maWcgLS1zZXQtaG9zdHMgRElTVENDX0hPU1RTIHwgLS1nZXQtaG9zdHMnCglw
cmludCAnICAgICAgIC91c3IvYmluL2Rpc3RjYy1jb25maWcgLS1zZXQtdmVyYm9zZSB7IDAgfCAx
IH0gIHwgLS1nZXQtdmVyYm9zZScKCXByaW50ICcgICAgICAgL3Vzci9iaW4vZGlzdGNjLWNvbmZp
ZyAtLXNldC1sb2cgRklMRSAgICAgICAgICAgfCAtLWdldC1sb2cnCglwcmludCAnICAgICAgIC91
c3IvYmluL2Rpc3RjYy1jb25maWcgLS1zZXQtZW52IFZBUklBQkxFIFZBTFVFIHwgLS1nZXQtZW52
IFtWQVJJQUJMRV0nCg==
</data>        

          </attachment>
    </bug>

</bugzilla>