diff options
author | Lisa M. Seelye <lisa@gentoo.org> | 2003-10-18 20:18:19 +0000 |
---|---|---|
committer | Lisa M. Seelye <lisa@gentoo.org> | 2003-10-18 20:18:19 +0000 |
commit | 34644e290a03effb87ffbaacd2426bf67d209047 (patch) | |
tree | b27e6f5cdff9dec933c624a7c1d9783bf6614eef /sys-devel | |
parent | Distcc-2.11.1-r1 is to test distcc-config rewritten in python as per bug 2743... (diff) | |
download | historical-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/Manifest | 10 | ||||
-rw-r--r-- | sys-devel/distcc/distcc-2.11.1-r1.ebuild | 123 | ||||
-rw-r--r-- | sys-devel/distcc/files/2.11.1p/conf | 21 | ||||
-rw-r--r-- | sys-devel/distcc/files/2.11.1p/distcc-config | 164 | ||||
-rw-r--r-- | sys-devel/distcc/files/2.11.1p/init | 27 | ||||
-rw-r--r-- | sys-devel/distcc/files/digest-distcc-2.11.1-r1 | 1 |
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 |