summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLisa M. Seelye <lisa@gentoo.org>2003-10-18 20:18:19 +0000
committerLisa M. Seelye <lisa@gentoo.org>2003-10-18 20:18:19 +0000
commit34644e290a03effb87ffbaacd2426bf67d209047 (patch)
treeb27e6f5cdff9dec933c624a7c1d9783bf6614eef /sys-devel
parentDistcc-2.11.1-r1 is to test distcc-config rewritten in python as per bug 2743... (diff)
downloadhistorical-34644e290a03effb87ffbaacd2426bf67d209047.tar.gz
historical-34644e290a03effb87ffbaacd2426bf67d209047.tar.bz2
historical-34644e290a03effb87ffbaacd2426bf67d209047.zip
Distcc-2.11.1-r1 is to test distcc-config rewritten in python as per bug 27432. Thanks to Pyrania for the rewrite.
Diffstat (limited to 'sys-devel')
-rw-r--r--sys-devel/distcc/Manifest10
-rw-r--r--sys-devel/distcc/distcc-2.11.1-r1.ebuild123
-rw-r--r--sys-devel/distcc/files/2.11.1p/conf21
-rw-r--r--sys-devel/distcc/files/2.11.1p/distcc-config164
-rw-r--r--sys-devel/distcc/files/2.11.1p/init27
-rw-r--r--sys-devel/distcc/files/digest-distcc-2.11.1-r11
6 files changed, 341 insertions, 5 deletions
diff --git a/sys-devel/distcc/Manifest b/sys-devel/distcc/Manifest
index c96caf948d04..a777fdd89658 100644
--- a/sys-devel/distcc/Manifest
+++ b/sys-devel/distcc/Manifest
@@ -1,4 +1,4 @@
-MD5 1485715d250d577863963f36cfd3b69e ChangeLog 13395
+MD5 a9559284e196be726795aef299ad9292 ChangeLog 13689
MD5 58d1c3a6aa178de53f9e352990c8ff23 distcc-2.10-r3.ebuild 3380
MD5 2feb5ef608b6a01791939a04b33548a3 distcc-2.11-r1.ebuild 3549
MD5 e4e4e2dca5c232ba88219df0097f734b distcc-2.11-r2.ebuild 3551
@@ -7,7 +7,7 @@ MD5 c68dd76338384f0a996204db7364f8f7 distcc-2.8-r2.ebuild 3357
MD5 f7332ba9718f262c2f3efb2f7f8945c7 distcc-2.9.ebuild 3445
MD5 70619e7eb5fa4fd0aa4f3588579cd50d metadata.xml 443
MD5 967c3d0113029203557f2ab5a2a65d92 distcc-2.11.1.ebuild 3923
-MD5 c441b05e8f125d14889daf44fade05ea distcc-2.11.1-r1.ebuild 3926
+MD5 3ff4da6034987831999fa16e10d2abcd distcc-2.11.1-r1.ebuild 3812
MD5 996b45704fdf266745dfc2e6038a1f76 files/digest-distcc-2.10-r3 64
MD5 8d8b631e78e00fe0e948b53145e0e47a files/digest-distcc-2.11-r1 64
MD5 8d8b631e78e00fe0e948b53145e0e47a files/digest-distcc-2.11-r2 64
@@ -22,9 +22,9 @@ MD5 3375d451fca8db4a3280b16679bc5858 files/2.10/distcc-config 7560
MD5 e40dfa1f21a9a2301faaff21cf76e7d8 files/2.11/conf 655
MD5 c8ff220b60c105fcede2c72f274995db files/2.11/init 630
MD5 272d85cd71c7dd7eaf3772f895371a41 files/2.11/distcc-config 7560
-MD5 c8ff220b60c105fcede2c72f274995db files/2.11.1p/init 630
-MD5 e40dfa1f21a9a2301faaff21cf76e7d8 files/2.11.1p/conf 655
-MD5 470a0a173e31294170a0f630563c5389 files/2.11.1p/distcc-config 4660
+MD5 606dd55609a04a0f21b9875259148332 files/2.11.1p/init 633
+MD5 66c4af6f8dd87d270e5da50341ca6e14 files/2.11.1p/conf 658
+MD5 e57b256f4198a7d489a372f2eff6802d files/2.11.1p/distcc-config 4792
MD5 ee4f0fde9d5e6fe88bf7f513cf12920c files/2.8/001_fix_tempfile.patch.gz 251
MD5 41f782125d594b7249fcd1fc6c306b02 files/2.8/conf 592
MD5 9e01d7b626696716500bbf56c68a5680 files/2.8/distcc-config 7559
diff --git a/sys-devel/distcc/distcc-2.11.1-r1.ebuild b/sys-devel/distcc/distcc-2.11.1-r1.ebuild
new file mode 100644
index 000000000000..e57429755ba3
--- /dev/null
+++ b/sys-devel/distcc/distcc-2.11.1-r1.ebuild
@@ -0,0 +1,123 @@
+# Copyright 1999-2003 Gentoo Technologies, Inc.
+# Distributed under the terms of the GNU General Public License v2
+# $Header: /var/cvsroot/gentoo-x86/sys-devel/distcc/distcc-2.11.1-r1.ebuild,v 1.1 2003/10/18 20:18:15 lisa Exp $
+
+inherit eutils gcc flag-o-matic
+[ `gcc-major-version` -eq 2 ] && filter-flags -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE
+
+PATCHLEVEL="2.11.1p"
+
+HOMEPAGE="http://distcc.samba.org/"
+SRC_URI="http://distcc.samba.org/ftp/distcc/distcc-${PV}.tar.bz2"
+DESCRIPTION="a program to distribute compilation of C code across several machines on a network"
+
+LICENSE="GPL-2"
+SLOT="0"
+KEYWORDS="~x86 ~ppc ~sparc ~alpha ~hppa ~mips ~arm"
+IUSE="gnome gtk"
+
+DEPEND=">=sys-apps/portage-2.0.49-r6
+ >=sys-devel/gcc-config-1.3.1
+ sys-apps/shadow"
+
+RDEPEND="gnome? ( >=x11-libs/gtk+-2.0.0
+ >=gnome-base/libgnome-2.0.0
+ >=gnome-base/libgnomeui-2.0.0.0
+ >=gnome-base/libglade-2.0.0
+ x11-libs/pango
+ )
+ gtk? (
+ >=x11-libs/gtk+-2.0.0
+ >=gnome-base/libglade-2.0.0
+ x11-libs/pango
+ )
+ selinux? ( sec-policy/selinux-distcc )"
+
+src_compile() {
+ local myconf="--with-included-popt "
+ #Here we use the built in parse-options package. saves a dependancy
+
+ #not taking any chances here, guessing which takes precedence in the
+ #configure script, so we'll just make the distinction here:
+ #gnome takes precedence over gtk if both are specified (gnome pulls
+ #in gtk anyways...)
+ use gtk && ! use gnome && myconf="${myconf} --with-gtk"
+ use gtk && use gnome && myconf="${myconf} --with-gnome"
+
+ econf ${myconf} || die "econf ${myconf} failed"
+ emake || die "emake failed"
+}
+
+src_install() {
+ make DESTDIR="${D%/}" install
+
+ insinto /usr/share/doc/${PN}
+ doins "${S}/survey.txt"
+
+ exeinto /usr/bin
+ doexe "${FILESDIR}/${PATCHLEVEL}/distcc-config"
+
+ insinto /etc/conf.d
+ newins "${FILESDIR}/${PATCHLEVEL}/conf" distccd
+
+ exeinto /etc/init.d
+ newexe "${FILESDIR}/${PATCHLEVEL}/init" distccd
+
+ # create and keep the symlink dir
+ dodir /usr/lib/distcc/bin
+ keepdir /usr/lib/distcc/bin
+
+ # create the distccd pid directory
+ dodir /var/run/distccd
+ keepdir /var/run/distccd
+}
+
+pkg_preinst() {
+ # non-/ installs don't require us to do anything here
+ [ "${ROOT}" != "/" ] && return 0
+
+ # stop daemon since script is being updated
+ [ -n "$(pidof distccd)" -a -x /etc/init.d/distccd ] && \
+ /etc/init.d/distccd stop
+
+ # moved user creation and permissions to distcc-config script
+ # because of ROOT install requirements
+}
+
+pkg_postinst() {
+ # handle DISTCC_HOSTS upgrade better
+ local ENVFILE
+ ENVFILE="${ROOT}etc/env.d/02distcc"
+ [ ! -f "${ENVFILE}" ] && \
+ ENVFILE="${ROOT}etc/env.d/04distcc"
+ if [ -f "${ENVFILE}" ]
+ then
+ # save hosts to new file
+ ROOT="${ROOT}"
+ HOSTS=$(egrep '^DISTCC_HOSTS' "${ENVFILE}" | sed 's,[^=]*=,,')
+ [ ${HOSTS} ] && ${ROOT}usr/bin/distcc-config --set-hosts ${HOSTS}
+ # now remove from the file
+ grep -v 'DISTCC_HOSTS' "${ENVFILE}" > "${ENVFILE}.new"
+ mv "${ENVFILE}.new" "${ENVFILE}"
+ fi
+
+ 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
+ ewarn "*** Installation is not complete ***"
+ ewarn "You must run the following as root:"
+ ewarn " /usr/bin/distcc-config --install"
+ ewarn "after booting or chrooting into ${ROOT}"
+ fi
+ einfo "Tips on using distcc with Gentoo can be found at"
+ einfo "http://www.gentoo.org/doc/en/distcc.xml"
+ ewarn "As of distcc-2.11, the only thing you have to do to configure distcc"
+ ewarn "is to set your hosts (see the Guide, above) and to add distcc to"
+ ewarn "the FEATURES line in /etc/make.conf"
+ echo ""
+ einfo "To use the distccmon programs with Gentoo you should use this command:"
+ einfo " DISTCC_DIR=/var/tmp/portage/.distcc distccmon-text N"
+}
diff --git a/sys-devel/distcc/files/2.11.1p/conf b/sys-devel/distcc/files/2.11.1p/conf
new file mode 100644
index 000000000000..d76a02999705
--- /dev/null
+++ b/sys-devel/distcc/files/2.11.1p/conf
@@ -0,0 +1,21 @@
+# Copyright 2003 Gentoo Technologies, Inc
+# $Header: /var/cvsroot/gentoo-x86/sys-devel/distcc/files/2.11.1p/conf,v 1.1 2003/10/18 20:18:15 lisa Exp $
+# distccd configuration file
+
+# 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="--port 3632"
+
+# set this for niceness
+# Default is 15
+DISTCCD_NICE="15"
+
+# This is the path that distccd and the monitors will look
+# for the state files.
+DISTCC_DIR="/var/tmp/distccd"
diff --git a/sys-devel/distcc/files/2.11.1p/distcc-config b/sys-devel/distcc/files/2.11.1p/distcc-config
new file mode 100644
index 000000000000..a2df2f9e4bf5
--- /dev/null
+++ b/sys-devel/distcc/files/2.11.1p/distcc-config
@@ -0,0 +1,164 @@
+#!/usr/bin/env python
+# Copyright 1999-2003 Gentoo Technologies, Inc.
+# Distributed under the terms of the GNU General Public License v2
+# $Header: /var/cvsroot/gentoo-x86/sys-devel/distcc/files/2.11.1p/distcc-config,v 1.1 2003/10/18 20:18:15 lisa 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, '1777')
+
+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.exists(HOSTS_HOME) and os.path.getsize(HOSTS_HOME) != 0:
+ print HOSTS_HOME
+ else:
+ print rstrip(open('/etc/distcc/hosts', 'r').read())
+elif '--set-hosts' in tmpcmdline:
+ if isroot(1):
+ FILE = '/etc/distcc/hosts'
+ else:
+ FILE = os.environ.get('HOME')+'/hosts'
+ open(FILE, '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 -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('/usr/lib/distcc/bin/',user,group)
+ #permissions('/var/run/distccd/',user,group)
+
+ os.system('/etc/init.d/distccd restart');
+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/2.11.1p/init b/sys-devel/distcc/files/2.11.1p/init
new file mode 100644
index 000000000000..754fe9a3587d
--- /dev/null
+++ b/sys-devel/distcc/files/2.11.1p/init
@@ -0,0 +1,27 @@
+#!/sbin/runscript
+# $Header: /var/cvsroot/gentoo-x86/sys-devel/distcc/files/2.11.1p/init,v 1.1 2003/10/18 20:18:15 lisa Exp $
+
+depend() {
+ need net
+}
+
+start() {
+ rm -f ${DISTCCD_PIDFILE}
+ ebegin "Starting distccd"
+ DISTCC_DIR="${DISTCC_DIR}" \
+ PATH="$(gcc-config --get-bin-path):${PATH}" \
+ /sbin/start-stop-daemon --start --quiet --startas ${DISTCCD_EXEC} \
+ --pidfile ${DISTCCD_PIDFILE} -- \
+ --pid-file ${DISTCCD_PIDFILE} -N ${DISTCCD_NICE} --user distcc \
+ ${DISTCCD_OPTS}
+
+ eend $?
+}
+
+stop() {
+ ebegin "Stopping distccd"
+ start-stop-daemon --stop --quiet --pidfile "${DISTCCD_PIDFILE}"
+ rm -f "${DISTCCD_PIDFILE}"
+ eend $?
+}
+
diff --git a/sys-devel/distcc/files/digest-distcc-2.11.1-r1 b/sys-devel/distcc/files/digest-distcc-2.11.1-r1
new file mode 100644
index 000000000000..078e2ae837ea
--- /dev/null
+++ b/sys-devel/distcc/files/digest-distcc-2.11.1-r1
@@ -0,0 +1 @@
+MD5 7b096504d7ef4805d30b0638224c7f46 distcc-2.11.1.tar.bz2 251577