summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMatsuu Takuto <matsuu@gentoo.org>2008-10-18 16:21:59 +0000
committerMatsuu Takuto <matsuu@gentoo.org>2008-10-18 16:21:59 +0000
commit3ecc83d8eb2a70a29784e612224116f197d6dfa2 (patch)
tree387d4495bf30fa2188a068150d014e94edbc41ea /sys-devel
parentStable on amd64 (bug #239543) (diff)
downloadhistorical-3ecc83d8eb2a70a29784e612224116f197d6dfa2.tar.gz
historical-3ecc83d8eb2a70a29784e612224116f197d6dfa2.tar.bz2
historical-3ecc83d8eb2a70a29784e612224116f197d6dfa2.zip
Version bumped and clean up, bug #234312.
Package-Manager: portage-2.2_rc12/cvs/Linux 2.6.27-gentoo x86_64
Diffstat (limited to 'sys-devel')
-rw-r--r--sys-devel/distcc/ChangeLog9
-rw-r--r--sys-devel/distcc/Manifest8
-rw-r--r--sys-devel/distcc/distcc-3.0.ebuild154
-rw-r--r--sys-devel/distcc/files/3.0/conf40
-rw-r--r--sys-devel/distcc/files/3.0/distcc-config164
-rwxr-xr-xsys-devel/distcc/files/3.0/init23
-rw-r--r--sys-devel/distcc/files/distcc-3.0-gentoo.patch33
7 files changed, 429 insertions, 2 deletions
diff --git a/sys-devel/distcc/ChangeLog b/sys-devel/distcc/ChangeLog
index f6a3ff09a326..918f702c0a8b 100644
--- a/sys-devel/distcc/ChangeLog
+++ b/sys-devel/distcc/ChangeLog
@@ -1,6 +1,13 @@
# ChangeLog for sys-devel/distcc
# Copyright 2000-2008 Gentoo Foundation; Distributed under the GPL v2
-# $Header: /var/cvsroot/gentoo-x86/sys-devel/distcc/ChangeLog,v 1.174 2008/08/17 03:24:18 mr_bones_ Exp $
+# $Header: /var/cvsroot/gentoo-x86/sys-devel/distcc/ChangeLog,v 1.175 2008/10/18 16:21:59 matsuu Exp $
+
+*distcc-3.0 (18 Oct 2008)
+
+ 18 Oct 2008; MATSUU Takuto <matsuu@gentoo.org> +files/3.0/conf,
+ +files/3.0/init, +files/distcc-3.0-gentoo.patch, +files/3.0/distcc-config,
+ +distcc-3.0.ebuild:
+ Version bumped and clean up, bug #234312.
17 Aug 2008; Michael Sterrett <mr_bones_@gentoo.org>
distcc-2.18.3-r10.ebuild, distcc-2.18.3-r11.ebuild,
diff --git a/sys-devel/distcc/Manifest b/sys-devel/distcc/Manifest
index b08a76a339bc..5f9233f4ee54 100644
--- a/sys-devel/distcc/Manifest
+++ b/sys-devel/distcc/Manifest
@@ -3,6 +3,10 @@ AUX 2.18-r1/init 927 RMD160 11638f1be4f1a55414517e9982b3a2ee508b9b9d SHA1 6456b0
AUX 2.18/conf 1267 RMD160 a12045786088255c9bc8f4ad826928c00efac567 SHA1 828f62bee16cfb4b2667cdbda5a18e9516bcf969 SHA256 51365685f2f02c6f2846e4b35ed1ae3628999ed5035af3ad0c7b2d68acfe7c3d
AUX 2.18/distcc-config.patch 1200 RMD160 46adf137db41c3278463125caeb132b9626ead54 SHA1 080ba28e0cc2eab5cdcb9c860dd255460926cadd SHA256 0abca6ee532de72ef19f1b210a09bd661ea7110cf36654c8c8ac016ee6573e55
AUX 2.18/init 733 RMD160 935e52d2ddfc6363f26a916666bbbc28b6fdb79b SHA1 737e969b122c70df6d54c7a98bfdc872af278ff6 SHA256 1477ab79b8be398b6acb7d44e0f0a66bb75d1918365b350b824e16b8b02af22b
+AUX 3.0/conf 1286 RMD160 52f0fb469fc83b2f28f032c81515773d09add0d5 SHA1 4860a6e2eea10d918058b0cdcb76ac196a2d7992 SHA256 28fa9a9ce30c9f979eac3d5be3fc64f199ecffa9d7e38e02f11957019152dc46
+AUX 3.0/distcc-config 4827 RMD160 cdd402bbd605825a713073956a295c02af266a5d SHA1 8231f4337c6cf0b890f50a33ad02dd93bf5cb582 SHA256 c1db689b74dbab2ce8c8dae1053205cdc748b3470d8bb70c3b8f9b432b377e7d
+AUX 3.0/init 618 RMD160 a11c5cb400ed91bc6f1e94cdc5017741cbbdb7d3 SHA1 a56616c6b0d9306f8b5d95ca506ef64f8b01d430 SHA256 f29c6bc97b9215e89116ddf0d6fedad6946fb2d9979304e50f83b406b5829805
+AUX distcc-3.0-gentoo.patch 1225 RMD160 5c305052c9ee62c7d60377b26e53f69a67438b39 SHA1 7114da1f2ddda38498d19a685782da48a8b37f30 SHA256 ba1895fa906ba18490b722f9eda07a96459949d879412c2aba0218f8854ca7cc
AUX distcc-as-needed.patch 558 RMD160 faebf24490e3dd2a5247cfb6914dc88fb7b98e35 SHA1 5e5547032b6492f9f8b0511fd621a005dbd455a2 SHA256 9e87d3b0487ffc52ccf6362866e967dff9c2a85681175096ece11413f8c91e54
AUX distcc-avahi-configure.patch 1263 RMD160 de3ba2d651b5a76d5ee71cde79a2555f77a70b1b SHA1 eddae708be95f4bbd7cbfed53439e2dc38a979e8 SHA256 9d967456da6631845b4262ae7508948d629764149fd568c367e76e89168bb132
AUX distcc-config 4874 RMD160 07bd612fc11c785691bd56e4e7bb7994a2e4dbb8 SHA1 85b5f38d6024e4f454bfa07d96c13b4749ce3e2a SHA256 c6a7bb74eb235fd7896ca101c033a2e9faf80afeb7232bff3afe22f8a6268a5c
@@ -13,9 +17,11 @@ AUX distcc-gentoo-multilib.patch 3784 RMD160 f48a3f2f8c82379c30c9da0e49aa66ba346
AUX distcc-march-native.patch 934 RMD160 29908d5b5c4622285a78f221b2633e3ee495a648 SHA1 e1ac6912d55c9b3dda9b6f1a03c973ad1a85f359 SHA256 bc95daad65a3c3a7429b94b432b5d2aa470cb50d6e67c65303865df1e28831e7
DIST distcc-2.18-avahi.patch.bz2 9447 RMD160 eaf358bc417566bb8cf7ea005ce853df880f4e49 SHA1 af76073bdde6668f3013f4e84f693155b3b887ad SHA256 1c6fb40b57385870b267d3ce4285ba3fa32e57a335cfcd3b96f4f9a36645a97f
DIST distcc-2.18.3.tar.bz2 341601 RMD160 c7ac6f3e161dccf39b841b57a3328b4208d28c2d SHA1 88e4c15826bdbc5a3de0f7c1bcb429e558c6976d SHA256 6500f1bc2a30b1f044ebed79c6ce15457d1712263e65f0db7d6046af262ba434
+DIST distcc-3.0.tar.bz2 582700 RMD160 1e187fe09129dcc6e561bfb0cd0db9a43619acca SHA1 90cea1d7500e95d3c698e6ab9b9536a946f62824 SHA256 bb6f5674b619ef1438da67739d982e8a6b11e01f748708e0fcbe371c02f020fe
EBUILD distcc-2.18.3-r10.ebuild 4991 RMD160 a226c12d97f1e212c5bf703cd32e476ee4e2e7d5 SHA1 ef05e330f2cf5d5a323b7abb9cdc534c382099f8 SHA256 9cbcc217ee05bbebe5b9085f8c2c95f58b2038751493f61baad47a64d7abc0d8
EBUILD distcc-2.18.3-r11.ebuild 5684 RMD160 4e7232be695e39b41017bda3a1df5b5fa269ed75 SHA1 b34c8080941f221549e11ac23974c68b33c853e9 SHA256 2c9bbaae12891f56918065cfb18c3d3666845b52b8331ef03c7fa3b87e2168f6
EBUILD distcc-2.18.3-r12.ebuild 5639 RMD160 c70f35d9cf254d407a5d48688b09ce4f4ddc1271 SHA1 618ff9a60867cfdbd08f537ee35f41c28b9ce370 SHA256 d937b713f022bb4675ac1b1d0cdf0ae5a8ec683a523c3a5b9f948545cb960516
EBUILD distcc-2.18.3-r13.ebuild 5686 RMD160 c875bd6c6260a61dbf487f53d7ac3f090e3f23c8 SHA1 5f17f8e6343fe2401f688090ddea3f5c183a8cf8 SHA256 fb5f9b7bb5230f8de7e87914abba720b2dc57940e27a0264e012fa39225bd843
-MISC ChangeLog 32160 RMD160 5d3f3fdb65b29ab7b4ed5b02fa0c9a5a13605de2 SHA1 5247044d29d1141401262f7103a5dc965faaa453 SHA256 23931583783c79aefec18bd0bb7c8292206c5eac57e13422e129902d2243179c
+EBUILD distcc-3.0.ebuild 4301 RMD160 71a677aa9f2cf2e05f3ed7718d02ee5cefbd969b SHA1 4a0006b6197271258cf293e2e21ff30894bec096 SHA256 eb2ddca451cf3ce70c22dd692af9a486e538f160570167326c135da73a15288a
+MISC ChangeLog 32394 RMD160 405445033749227f99904723fd311fa87e225820 SHA1 0bbd434f28bd1a1a4870aa676bbc787450586bd6 SHA256 420ca932834d598a95104c86af4d3068b81d5bcb71a2438ac4ce4237a7cbcb08
MISC metadata.xml 379 RMD160 420726180bf16a6ecc3f4be5f57ed0841926fb9c SHA1 cec305f87acbaeea3c2c106df48c9654451ab346 SHA256 fdee311afe18ec1446a2da7b4cf5c59189e7adb5b3c3f2955762d01b04bb6ad9
diff --git a/sys-devel/distcc/distcc-3.0.ebuild b/sys-devel/distcc/distcc-3.0.ebuild
new file mode 100644
index 000000000000..c87a5b1e57f1
--- /dev/null
+++ b/sys-devel/distcc/distcc-3.0.ebuild
@@ -0,0 +1,154 @@
+# Copyright 1999-2008 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Header: /var/cvsroot/gentoo-x86/sys-devel/distcc/distcc-3.0.ebuild,v 1.1 2008/10/18 16:21:59 matsuu Exp $
+
+# If you change this in any way please email lisa@gentoo.org and make an
+# entry in the ChangeLog (this means you spanky :P). (2004-04-11) Lisa Seelye
+
+inherit eutils fdo-mime flag-o-matic multilib toolchain-funcs
+
+DESCRIPTION="a program to distribute compilation of C code across several machines on a network"
+HOMEPAGE="http://distcc.org/"
+SRC_URI="http://distcc.googlecode.com/files/${P}.tar.bz2"
+
+LICENSE="GPL-2"
+SLOT="0"
+KEYWORDS="~alpha ~amd64 ~arm ~hppa ~ia64 ~mips ~ppc ~ppc64 ~s390 ~sh ~sparc ~x86 ~x86-fbsd"
+IUSE="avahi gnome gtk ipv6 selinux"
+
+RESTRICT="test"
+
+RDEPEND=">=dev-lang/python-2.4
+ dev-libs/popt
+ avahi? ( >=net-dns/avahi-0.6 )
+ gnome? (
+ >=gnome-base/libgnome-2
+ >=gnome-base/libgnomeui-2
+ >=x11-libs/gtk+-2
+ x11-libs/pango
+ )
+ gtk? (
+ >=x11-libs/gtk+-2
+ )"
+DEPEND="${RDEPEND}
+ dev-util/pkgconfig"
+RDEPEND="${RDEPEND}
+ !net-misc/pump
+ >=sys-devel/gcc-config-1.3.1
+ selinux? ( sec-policy/selinux-distcc )"
+
+pkg_setup() {
+ if use ipv6; then
+ ewarn "To use IPv6 you must have IPv6 compiled into your kernel"
+ ewarn "either via a module or compiled code"
+ ewarn "You can recompile without ipv6 with: USE='-ipv6' emerge distcc"
+ epause 5
+ fi
+
+ enewuser distcc 240 -1 -1 daemon
+}
+
+src_unpack() {
+ unpack ${A}
+ cd "${S}"
+ epatch "${FILESDIR}/${P}-gentoo.patch"
+}
+
+src_compile() {
+ # More legacy stuff?
+ [ "$(gcc-major-version)" = "2" ] && filter-lfs-flags
+
+ # -O? is required
+ [ "${CFLAGS/-O}" = "${CFLAGS}" ] && CFLAGS="${CFLAGS} -O2"
+
+ econf \
+ $(use_with avahi) \
+ $(use_with gtk) \
+ $(use_with gnome) \
+ $(use_enable ipv6 rfc2553) \
+ --with-docdir="/usr/share/doc/${PF}" || die "econf failed"
+ emake || die "emake failed"
+}
+
+src_install() {
+ emake DESTDIR="${D}" install || die
+
+ dobin "${FILESDIR}/${PV}/distcc-config"
+
+ newinitd "${FILESDIR}/${PV}/init" distccd
+ cp "${FILESDIR}/${PV}/conf" "${T}/conf"
+ if use avahi; then
+ (
+ echo
+ echo '# Enable zeroconf support in distccd'
+ echo 'DISTCCD_OPTS="${DISTCCD_OPTS} --zeroconf"'
+ ) >> "${T}/conf"
+ fi
+ newconfd "${T}/conf" distccd
+
+ # create the masquerade directory
+ local DCCC_PATH="/usr/$(get_libdir)/distcc/bin/"
+ dodir "${DCCC_PATH}"
+ for f in cc c++ gcc g++; do
+ dosym /usr/bin/distcc "${DCCC_PATH}${f}"
+ if [ "${f}" != "cc" ]; then
+ dosym /usr/bin/distcc "${DCCC_PATH}${CTARGET:-${CHOST}}-${f}"
+ fi
+ done
+
+ # create the distccd pid directory
+ keepdir /var/run/distccd
+ fowners distcc:daemon /var/run/distccd
+
+ if use gnome || use gtk; then
+ einfo "Renaming /usr/bin/distccmon-gnome to /usr/bin/distccmon-gui"
+ einfo "This is to have a little sensability in naming schemes between distccmon programs"
+ mv "${D}/usr/bin/distccmon-gnome" "${D}/usr/bin/distccmon-gui" || die
+ dosym distccmon-gui /usr/bin/distccmon-gnome
+ fi
+
+ rm -rf "${D}/etc/default"
+ rm -f "${D}/etc/distcc/clients.allow"
+ rm -f "${D}/etc/distcc/commands.allow.sh"
+ prepalldocs
+}
+
+pkg_postinst() {
+ use gnome && fdo-mime_desktop_database_update
+
+ # By now everyone should be using the right envfile
+ if [ "${ROOT}" = "/" ]; then
+ einfo "Installing links to native compilers..."
+ /usr/bin/distcc-config --install
+ else
+ # distcc-config can *almost* handle ROOT installs itself
+ # but for now, but user must finsh things off
+ elog "*** Installation is not complete ***"
+ elog "You must run the following as root:"
+ elog " /usr/bin/distcc-config --install"
+ elog "after booting or chrooting into ${ROOT}"
+ fi
+
+ elog
+ elog "Tips on using distcc with Gentoo can be found at"
+ elog "http://www.gentoo.org/doc/en/distcc.xml"
+ elog
+ elog "To use the distccmon programs with Gentoo you should use this command:"
+ elog "# DISTCC_DIR=\"${DISTCC_DIR}\" distccmon-text 5"
+
+ if use gnome || use gtk; then
+ elog "Or:"
+ elog "# DISTCC_DIR=\"${DISTCC_DIR}\" distccmon-gnome"
+ fi
+
+ elog
+ elog "***SECURITY NOTICE***"
+ elog "If you are upgrading distcc please make sure to run etc-update to"
+ elog "update your /etc/conf.d/distccd and /etc/init.d/distccd files with"
+ elog "added security precautions (the --listen and --allow directives)"
+ elog
+}
+
+pkg_postrm() {
+ use gnome && fdo-mime_desktop_database_update
+}
diff --git a/sys-devel/distcc/files/3.0/conf b/sys-devel/distcc/files/3.0/conf
new file mode 100644
index 000000000000..eb784c3ac88b
--- /dev/null
+++ b/sys-devel/distcc/files/3.0/conf
@@ -0,0 +1,40 @@
+# /etc/conf.d/distccd: config file for /etc/init.d/distccd
+
+DISTCCD_OPTS=""
+
+# this is the distccd executable
+DISTCCD_EXEC="/usr/bin/distccd"
+
+# this is where distccd will store its pid file
+DISTCCD_PIDFILE="/var/run/distccd/distccd.pid"
+
+# set this option to run distccd with extra parameters
+# Default port is 3632. For most people the default is okay.
+DISTCCD_OPTS="${DISTCCD_OPTS} --port 3632"
+
+# Logging
+# You can change some logging options here:
+# --log-file FILE
+# --log-level LEVEL [critical,error,warning, notice, info, debug]
+#
+# Leaving --log-file blank will log to syslog
+# example: --log-file /dev/null --log-level warning
+# example: --log-level critical
+
+DISTCCD_OPTS="${DISTCCD_OPTS} --log-level critical"
+
+# SECURITY NOTICE:
+# It is HIGHLY recomended that you use the --listen option
+# for increased security. You can specify an IP to permit connections
+# from or a CIDR mask
+# --listen accepts only a single IP
+# --allow is now mandatory as of distcc-2.18.
+# example: --allow 192.168.0.0/24
+# example: --allow 192.168.0.5 --allow 192.168.0.150
+# example: --listen 192.168.0.2
+DISTCCD_OPTS="${DISTCCD_OPTS} --allow 192.168.0.0/24"
+#DISTCCD_OPTS="${DISTCCD_OPTS} --listen 192.168.0.2"
+
+# set this for niceness
+# Default is 15
+DISTCCD_OPTS="${DISTCCD_OPTS} -N 15"
diff --git a/sys-devel/distcc/files/3.0/distcc-config b/sys-devel/distcc/files/3.0/distcc-config
new file mode 100644
index 000000000000..ae5424f95c13
--- /dev/null
+++ b/sys-devel/distcc/files/3.0/distcc-config
@@ -0,0 +1,164 @@
+#!/usr/bin/env python
+# Copyright 1999-2004 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Header: /var/cvsroot/gentoo-x86/sys-devel/distcc/files/3.0/distcc-config,v 1.1 2008/10/18 16:21:59 matsuu Exp $
+
+import os, re, signal, sys, commands, pwd
+from string import rstrip
+
+options=[
+ '--get-hosts',
+ '--set-hosts',
+ '--get-verbose',
+ '--set-verbose',
+ '--get-log',
+ '--set-log',
+ '--install',
+ '--help',
+ '--get-env',
+ '--set-env'
+]
+
+tmpcmdline=sys.argv[1:]
+cmdline=[]
+envfile = '/etc/env.d/02distcc'
+
+def exithandler(foo,bar):
+ os.kill(0,signal.SIGKILL)
+ sys.exit(1)
+
+signal.signal(signal.SIGINT,exithandler)
+
+def isroot(ret=0):
+ if os.getuid() != 0:
+ if ret == 0:
+ print '!!!',sys.argv[:1][0],tmpcmdline[0],'must be run as root'
+ sys.exit(1)
+ else:
+ retval = 0
+ else:
+ retval = 1
+ return retval
+
+def writeenv(var,value):
+ isroot()
+ distcc_env = []
+ distcc_env = open(envfile, 'r').readlines()
+ distcc_env_new = open(envfile, 'w')
+ for i in range(len(distcc_env)):
+ if re.compile(var+'="(.*)"').match(distcc_env[i]):
+ distcc_env[i] = var+'="'+value+'"\n'
+ distcc_env_new.write(distcc_env[i])
+ #print 'Set',var,'to:',value
+ os.popen('/usr/sbin/env-update')
+ print 'If you want to use these new settings in an existing shell,'
+ print 'you need to "source /etc/profile" to get the changes.'
+
+def readenv(var):
+ distcc_env = open(envfile, 'r').read()
+ match = re.compile(var+'="(.*)"').search(distcc_env)
+ if match:
+ print var+'='+match.group(1)
+ else:
+ print var,'not set.'
+
+def permissions(path,user,group):
+ for file in os.listdir(path):
+ #print 'Configuring',path+file+'...'
+ os.chown(path+file,user,group)
+
+def installlinks(chost=''):
+ for file in ['gcc', 'cc', 'c++', 'g++']:
+ path = '/usr/lib/distcc/bin/'
+ if not chost == '':
+ file = chost+'-'+file
+ if os.path.exists('/usr/bin/'+file):
+ #print 'Creating',path+file,'symlink...'
+ if not os.path.exists(path+file):
+ os.symlink('/usr/bin/distcc',path+file)
+ #else:
+ # print 'Already exists. Skipping...'
+
+def createdistccdir(dir):
+ if not os.path.exists(dir):
+ os.mkdir(dir)
+ os.chmod(dir, 0755)
+
+for x in tmpcmdline:
+ if not x:
+ continue
+ if x[0:2]=="--":
+ if not x in options:
+ print "!!! Error:",x,"is an invalid option."
+ sys.exit(1)
+ else:
+ cmdline = x
+
+if '--get-hosts' in tmpcmdline:
+ HOSTS_ENV = os.environ.get('DISTCC_HOSTS')
+ HOSTS_HOME = os.environ.get('HOME')+'/hosts'
+ if HOSTS_ENV:
+ print HOSTS_ENV
+ elif os.path.isfile(HOSTS_HOME) and os.path.getsize(HOSTS_HOME) != 0:
+ print HOSTS_HOME
+ elif os.path.exists('/etc/distcc/hosts'):
+ print rstrip(open('/etc/distcc/hosts', 'r').read())
+ else:
+ print 'No configuration file found. Setup your hosts with --set-hosts.'
+elif '--set-hosts' in tmpcmdline:
+ if isroot(1):
+ PATH = '/etc/distcc'
+ else:
+ PATH = os.environ.get('HOME')
+ createdistccdir(PATH)
+ open(PATH+'/hosts', 'w').write(cmdline + '\n')
+elif '--get-verbose' in tmpcmdline:
+ readenv('DISTCC_VERBOSE')
+elif '--set-verbose' in tmpcmdline:
+ writeenv('DISTCC_VERBOSE',tmpcmdline[1])
+elif '--get-log' in tmpcmdline:
+ readenv('DISTCC_LOG')
+elif '--set-log' in tmpcmdline:
+ writeenv('DISTCC_LOG',tmpcmdline[1])
+elif '--install' in tmpcmdline:
+ isroot()
+ print 'Creating',envfile+'...'
+ distcc_env = open(envfile, 'w')
+ distcc_env.write('# This file is managed by distcc-config; use it to change these settings.\n')
+ distcc_env.write('DISTCC_LOG=""\n')
+ distcc_env.write('DCCC_PATH="/usr/lib/distcc/bin"\n')
+ distcc_env.write('DISTCC_VERBOSE="0"\n')
+
+ if os.WEXITSTATUS(commands.getstatusoutput('/usr/sbin/useradd -u 240 -g daemon -s /bin/false -d /dev/null -c "distccd" distcc')[0]) == 9:
+ os.WEXITSTATUS(commands.getstatusoutput('/usr/sbin/usermod -g daemon -s /bin/false -d /dev/null -c "distccd" distcc')[0])
+
+ foobar = pwd.getpwnam('distcc')
+ user = foobar[2]
+ group = foobar[3]
+
+ makeconf = open('/etc/make.conf', 'r').read()
+ chost = re.compile('CHOST="(.*)"').search(makeconf).group(1)
+ print 'Creating symlinks...'
+ installlinks()
+ installlinks(chost)
+
+ print 'Checking permissions...'
+ permissions('/var/run/distccd/',user,group)
+elif '--get-env' in tmpcmdline:
+ if len(tmpcmdline) == 1:
+ print rstrip(open(envfile, 'r').read())
+ elif len(tmpcmdline) == 2:
+ readenv(tmpcmdline[1])
+ else:
+ print '!!! Error: Specify only one variable.'
+elif '--set-env' in tmpcmdline:
+ if len(tmpcmdline) > 2 and len(tmpcmdline) <= 3:
+ isroot()
+ writeenv(tmpcmdline[1],tmpcmdline[2])
+ else:
+ print '!!! Error: Awaiting two parameters.'
+else:
+ print 'Usage: /usr/bin/distcc-config --set-hosts DISTCC_HOSTS | --get-hosts'
+ print ' /usr/bin/distcc-config --set-verbose { 0 | 1 } | --get-verbose'
+ print ' /usr/bin/distcc-config --set-log FILE | --get-log'
+ print ' /usr/bin/distcc-config --set-env VARIABLE VALUE | --get-env [VARIABLE]'
diff --git a/sys-devel/distcc/files/3.0/init b/sys-devel/distcc/files/3.0/init
new file mode 100755
index 000000000000..0c1e62711286
--- /dev/null
+++ b/sys-devel/distcc/files/3.0/init
@@ -0,0 +1,23 @@
+#!/sbin/runscript
+# Copyright 1999-2008 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Header: /var/cvsroot/gentoo-x86/sys-devel/distcc/files/3.0/init,v 1.1 2008/10/18 16:21:59 matsuu Exp $
+
+depend() {
+ need net
+ use avahi-daemon ypbind
+}
+
+start() {
+ ebegin "Starting distccd"
+ PATH="$(gcc-config --get-bin-path):${PATH}" \
+ start-stop-daemon --start --quiet --exec "${DISTCCD_EXEC}" -- \
+ --pid-file "${DISTCCD_PIDFILE}" --user distcc ${DISTCCD_OPTS}
+ eend $?
+}
+
+stop() {
+ ebegin "Stopping distccd"
+ start-stop-daemon --stop --quiet --pidfile "${DISTCCD_PIDFILE}"
+ eend $?
+}
diff --git a/sys-devel/distcc/files/distcc-3.0-gentoo.patch b/sys-devel/distcc/files/distcc-3.0-gentoo.patch
new file mode 100644
index 000000000000..e2464dfa5abc
--- /dev/null
+++ b/sys-devel/distcc/files/distcc-3.0-gentoo.patch
@@ -0,0 +1,33 @@
+diff -Naur distcc-3.0.orig/include_server/c_extensions/distcc_pump_c_extensions_module.c distcc-3.0/include_server/c_extensions/distcc_pump_c_extensions_module.c
+--- distcc-3.0.orig/include_server/c_extensions/distcc_pump_c_extensions_module.c 2008-08-07 05:52:20.000000000 +0900
++++ distcc-3.0/include_server/c_extensions/distcc_pump_c_extensions_module.c 2008-10-14 22:34:38.000000000 +0900
+@@ -23,17 +23,18 @@
+
+ #include "Python.h"
+
+-static char *version = ".01";
++static const char *version = ".01";
+
+ /* To suppress compiler warnings */
+ #define UNUSED(v) ((void)&v)
+
+-char *rs_program_name = "distcc_include_server";
++const char *rs_program_name = "distcc_include_server";
+
+ #include "distcc.h"
+ #include "rpc.h"
+
+ static PyObject *distcc_pump_c_extensionsError;
++void initdistcc_pump_c_extensions(void);
+
+
+ /***********************************************************************
+@@ -385,7 +386,7 @@
+ PyObject *module;
+ PyObject *py_str;
+ distcc_pump_c_extensionsError = PyErr_NewException(
+- "distcc_pump_c_extensions.Error", NULL, NULL);
++ (char *)"distcc_pump_c_extensions.Error", NULL, NULL);
+
+ module = Py_InitModule4("distcc_pump_c_extensions",
+ methods,