summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLisa M. Seelye <lisa@gentoo.org>2003-08-12 16:31:09 +0000
committerLisa M. Seelye <lisa@gentoo.org>2003-08-12 16:31:09 +0000
commitc3c2ab83ae4549509450a712cce07d021fbefa39 (patch)
tree2d5307efc1b4bd6b4328dee6a4db3ed4b7e679e8 /sys-devel/distcc
parentadd distcc 2.10 and related files (diff)
downloadgentoo-2-c3c2ab83ae4549509450a712cce07d021fbefa39.tar.gz
gentoo-2-c3c2ab83ae4549509450a712cce07d021fbefa39.tar.bz2
gentoo-2-c3c2ab83ae4549509450a712cce07d021fbefa39.zip
add distcc 2.10 and related files
Diffstat (limited to 'sys-devel/distcc')
-rw-r--r--sys-devel/distcc/ChangeLog8
-rw-r--r--sys-devel/distcc/Manifest10
-rw-r--r--sys-devel/distcc/distcc-2.10.ebuild110
-rw-r--r--sys-devel/distcc/files/2.10/conf17
-rw-r--r--sys-devel/distcc/files/2.10/distcc-config325
-rw-r--r--sys-devel/distcc/files/2.10/init26
-rw-r--r--sys-devel/distcc/files/digest-distcc-2.101
7 files changed, 491 insertions, 6 deletions
diff --git a/sys-devel/distcc/ChangeLog b/sys-devel/distcc/ChangeLog
index c36d73a4d3db..93139b5dd74b 100644
--- a/sys-devel/distcc/ChangeLog
+++ b/sys-devel/distcc/ChangeLog
@@ -1,6 +1,12 @@
# ChangeLog for sys-devel/distcc
# Copyright 2000-2003 Gentoo Technologies, Inc.; Distributed under the GPL v2
-# $Header: /var/cvsroot/gentoo-x86/sys-devel/distcc/ChangeLog,v 1.67 2003/08/11 01:56:36 pebenito Exp $
+# $Header: /var/cvsroot/gentoo-x86/sys-devel/distcc/ChangeLog,v 1.68 2003/08/12 16:30:37 lisa Exp $
+
+*distcc-2.10 (12 Aug 2003)
+
+ 12 Aug 2003; Lisa Seelye <lisa@gentoo.org> distcc-2.10.ebuild, files/2.10/conf,
+ files/2.10/distcc-config, files/2.10/init:
+ add distcc 2.10 and related files
10 Aug 2003; Chris PeBenito <pebenito@gentoo.org> distcc-2.5-r1.ebuild,
distcc-2.8-r2.ebuild, distcc-2.9.ebuild:
diff --git a/sys-devel/distcc/Manifest b/sys-devel/distcc/Manifest
index 5b392653273c..1425c01111cd 100644
--- a/sys-devel/distcc/Manifest
+++ b/sys-devel/distcc/Manifest
@@ -1,8 +1,8 @@
MD5 c68dd76338384f0a996204db7364f8f7 distcc-2.8-r2.ebuild 3357
MD5 564b09fcdf279623746f23731af6cdef distcc-2.5-r1.ebuild 3209
-MD5 f1c3def0fb90f18465bad07db5010be9 distcc-2.10.ebuild 3454
+MD5 8cfcda064781a10ddcddbc85f43b032a distcc-2.10.ebuild 3451
MD5 373ecd7b47b4a64266c19fb0d7e830a7 distcc-2.9.ebuild 3450
-MD5 dcf6fcd0a13404584279be3f9368cf9b ChangeLog 11683
+MD5 d14d25559f4fa4970d36914fc1898fec ChangeLog 11871
MD5 70619e7eb5fa4fd0aa4f3588579cd50d metadata.xml 443
MD5 ade4e8cda892045944e204fc2c3df8bd files/digest-distcc-2.9 63
MD5 e1ecfcc1aad7c385cf3c41966277cda7 files/digest-distcc-2.5-r1 63
@@ -16,6 +16,6 @@ MD5 05483b8174e619ee439b905cca85c7ad files/2.9/conf 592
MD5 c400119892789344a9702d466476ddbd files/2.9/init 625
MD5 63dd07135a46fcef934e3fa4c926d5f7 files/2.9/distcc-config 7559
MD5 ced4e94d8c61a8f175d62a39478e7afc files/2.9/001_fix_tmpdir.patch.gz 248
-MD5 a25c4eb504c016d8047357b1915ceb1f files/2.10/conf 593
-MD5 844532d376fbe2ab36c239465527af8f files/2.10/init 619
-MD5 304d5d72858271ca20183ea43362b447 files/2.10/distcc-config 7575
+MD5 c2a0343f9e9ca3d4d1e0f0c099dfa229 files/2.10/conf 594
+MD5 eff3d6f240d8ffe05bef7505e347d0b0 files/2.10/init 620
+MD5 efc7f3962c4be47255b910ff5ed2462b files/2.10/distcc-config 7576
diff --git a/sys-devel/distcc/distcc-2.10.ebuild b/sys-devel/distcc/distcc-2.10.ebuild
new file mode 100644
index 000000000000..00e412cc9176
--- /dev/null
+++ b/sys-devel/distcc/distcc-2.10.ebuild
@@ -0,0 +1,110 @@
+# 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.10.ebuild,v 1.1 2003/08/12 16:30:38 lisa Exp $
+
+inherit eutils gcc flag-o-matic
+[ `gcc-major-version` -eq 2 ] && filter-flags -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE
+
+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="gtk"
+
+DEPEND=">=sys-apps/portage-2.0.46-r11
+ >=sys-devel/gcc-config-1.3.1
+ sys-apps/shadow"
+
+RDEPEND="gtk? ( >=x11-libs/gtk+-2.2.1 )
+ selinux? ( sec-policy/selinux-distcc )"
+
+
+src_compile() {
+ local myconf="--with-included-popt "
+ #Here we use the built in parse-options package. It saves a dependancy
+
+ use gtk && myconf="--enable-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}/${PV}/distcc-config"
+
+ insinto /etc/conf.d
+ newins "${FILESDIR}/${PV}/conf" distccd
+
+ exeinto /etc/init.d
+ newexe "${FILESDIR}/${PV}/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}" ${ROOT}usr/bin/distcc-config --set-hosts \
+ $(egrep '^DISTCC_HOSTS' "${ENVFILE}" | sed 's,[^=]*=,,')
+ # 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-user
+ /usr/bin/distcc-config --install-links
+ /usr/bin/distcc-config --install-links "${CHOST}"
+ 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"
+ echo ""
+ einfo "As of this release (2.10), you can specify where you want state"
+ einfo "files to go (these are for monitoring). You can specify this setting"
+ einfo "in /etc/make.conf by setting DISTCC_DIR to somewhere portage can write to"
+ einfo "such as /tmp, also, change it in /etc/conf.d/distccd."
+ echo ""
+ einfo "To use the distccmon programs with Gentoo you should use this command:"
+ einfo " sudo -H -u portage distccmon-text OR sudo -H -u portage distccmon-gnome"
+}
diff --git a/sys-devel/distcc/files/2.10/conf b/sys-devel/distcc/files/2.10/conf
new file mode 100644
index 000000000000..f2b3f23c9382
--- /dev/null
+++ b/sys-devel/distcc/files/2.10/conf
@@ -0,0 +1,17 @@
+# Copyright 2003 Gentoo Technologies, Inc
+# $Header: /var/cvsroot/gentoo-x86/sys-devel/distcc/files/2.10/conf,v 1.1 2003/08/12 16:30:38 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="--nice 20 --port 3632"
+
+# This is the path that distccd and the monitors will look
+# for the state files.
+DISTCC_DIR="/tmp"
diff --git a/sys-devel/distcc/files/2.10/distcc-config b/sys-devel/distcc/files/2.10/distcc-config
new file mode 100644
index 000000000000..7f4e22c01aaa
--- /dev/null
+++ b/sys-devel/distcc/files/2.10/distcc-config
@@ -0,0 +1,325 @@
+#!/bin/bash
+#
+# distcc-config - helper script for distcc and distccd
+#
+# Copyright 2003 Superlucidity Services, LLC
+# This program licensed under the GNU GPL version 2.
+#
+# This script developed by Zachary T Welch at Superlucidity Services, LLC
+# based on ideas from irc discussion and the clear need for this support
+#
+# $Header: /var/cvsroot/gentoo-x86/sys-devel/distcc/files/2.10/distcc-config,v 1.1 2003/08/12 16:30:38 lisa Exp $
+# Changelog
+#
+# 21 Jul 2003 - Changed install environment to EXCLUDE DISTCC_HOSTS from /etc/env.d/02distcc.
+# The hosts are stored by default to /etc/distcc/hosts. <lisa@gentoo.org>
+
+[ -z "${ROOT}" ] && ROOT=/
+
+# distcc-config manges the DISTCC_{HOSTS,LOG,VERBOSE} settings here
+# moved to accomodate 02ccache and leave 0[14]* free
+DCCC_ENV_FILE="${ROOT}etc/env.d/02distcc"
+DCCC_OLD_ENV="${ROOT}etc/env.d/04distcc"
+
+is_super_user() {
+ [ "$(id -u)" = 0 ]
+}
+# this should be getopt'd someday (override with DCCC_QUIET)
+DCCC_VERBOSE=1
+
+source /sbin/functions.sh
+
+dccc_echo() {
+ [ -z "${DCCC_QUIET}" -a -n "${DCCC_VERBOSE}" ] && echo "$*"
+}
+dccc_exit() {
+ dccc_echo "$*"
+ exit 1
+}
+
+# create the appropriate configuration directory
+is_super_user && \
+ DCCC_HOSTS_FILE="${ROOT}etc/distcc/hosts" || \
+ DCCC_HOSTS_FILE="${ROOT}${HOME#/}/.distcc/hosts"
+mkdir -p $(dirname ${DCCC_HOSTS_FILE}) || \
+ dccc_exit "unable to create configuration directory"
+
+
+###
+# the following functions manage the distcc symlinks
+# they allow the user or other scripts (namely gcc-config) to
+# automatically update distcc's links when upgrading toolchains
+#
+dccc_remove_link() {
+ local t="${ROOT}usr/lib/distcc/bin/${1}"
+ if [ -L ${t} ]; then
+ dccc_echo "Removing ${t}..."
+ rm -f "${t}"
+ fi
+}
+dccc_install_link() {
+ # Search the PATH for the specified compiler
+ # then create shadow link in ${ROOT}usr/lib/distcc/bin to distcc
+ # note: this `type' doesn't do the right thing if ROOT != /
+ if [ -n "$(type -p ${1})" ]; then
+ # first be sure any old link is removed
+ DCCC_QUIET=1 dccc_remove_link "${1}"
+
+ # then create the new link
+ local t="${ROOT}usr/lib/distcc/bin/${1}"
+ dccc_echo "Creating distcc shadow link: ${t}..."
+ ln -s /usr/bin/distcc "${t}"
+ fi
+}
+dccc_links() {
+ local a
+ for a in gcc cc c++ g++ ; do
+ [ -n "${2}" ] && a="${2}-${a}"
+ eval "dccc_${1}_link" "${a}"
+ done
+}
+
+dccc_install_user() {
+ # update or create, depending on whether user already exists
+ einfo "Updating or creating distcc user..."
+ local USERFIX
+ id distcc >/dev/null 2>&1 && USERFIX=usermod || USERFIX=useradd
+ USERFIX="/usr/sbin/${USERFIX}"
+ if [ -x "${USERFIX}" ]
+ then
+ if ! ${USERFIX} -g daemon -s /bin/false -d /dev/null \
+ -c "distccd" distcc
+ then
+ dccc_exit "unable to create or modify user"
+ fi
+ elif [ "${USERFIX}" = "/usr/sbin/useradd" ]
+ then
+ ewarn "${USERFIX} not found: You need to add the distcc user"
+ ewarn "to /etc/passwd by hand. Add the following line:\n"
+ ewarn " distcc:x:240:2:distccd:/dev/null:/bin/false\n"
+ ewarn "and then run 'distcc-config --install' again root."
+ dccc_exit "Unable to create distcc user!"
+ fi
+
+ for d in ${ROOT}usr/lib/distcc/bin ${ROOT}var/run/distccd ; do
+ einfo "Configuring $d..."
+ chown distcc:daemon $d && chmod 0755 $d || \
+ dccc_exit "Unable to configure ${d}!"
+ done
+}
+
+dccc_guess_chost() {
+ echo "$(grep CHOST /etc/make.conf | \
+ grep -v '^#' | sed 's,^.*=\"\(.*\)\",\1,')"
+
+}
+
+######
+# routines for manipulating ${DCCC_ENV_FILE}
+
+dccc_install_env() {
+ [ -f ${DCCC_OLD_ENV} ] && mv ${DCCC_OLD_ENV} ${DCCC_ENV_FILE}
+ [ -f ${DCCC_ENV_FILE} ] && return
+ einfo "Creating ${DCCC_ENV_FILE}..."
+ cat <<_EOF_ > ${DCCC_ENV_FILE} || \
+ dccc_exit "Unable to create ${DCCC_ENV_FILE}..."
+# This file is managed by distcc-config; use it to change these settings.
+# DISTCC_VERBOSE is not set
+# DISTCC_LOG is not set
+# DCCC_PATH is not set
+DISTCC_DIR=/tmp
+_EOF_
+}
+
+dccc_show_env() {
+ grep -v '^#' ${DCCC_ENV_FILE} | sed -e 's,^,export ,'
+}
+
+dccc_test_env() {
+ dccc_show_env | grep "$1" | tail -1 | sed -e "s,${1}=,,"
+}
+
+dccc_load_defaults() {
+ rm -f ${DCCC_ENV_FILE}
+ dccc_install_env
+}
+
+dccc_set_env() {
+ local xxENV="${1}"
+ shift
+ dccc_install_env
+ mv -f ${DCCC_ENV_FILE} ${DCCC_ENV_FILE}.tmp
+ if [ -n "${*}" ]; then
+ einfo "Setting ${xxENV}=\"${*}\""
+ else
+ einfo "Clearing ${xxENV}"
+ fi
+ # redirect the following block to create new file
+ {
+ egrep -v "${xxENV}[= ]" ${DCCC_ENV_FILE}.tmp
+ if [ -n "${*}" ]; then
+ echo "${xxENV}=\"${*}\""
+ else
+ echo "# ${xxENV} is not set"
+ fi
+ } >> ${DCCC_ENV_FILE}
+ rm -f ${DCCC_ENV_FILE}.tmp
+}
+dccc_regen_env() {
+ env-update
+ if [ -z "${DCCC_NO_WARN}" ]; then
+ einfo "If you want to use these new settings in an existing shell,"
+ einfo "you need to 'source /etc/profile' to get the changes."
+ fi
+}
+
+dccc_get_env() {
+ if [ -f ${DCCC_ENV_FILE} ]; then
+ local xxENV="$(grep ${1} ${DCCC_ENV_FILE} | \
+ grep -v '^#' | tail -1)"
+ echo ${xxENV#*=} | sed -e 's,^",,;s,"$,,'
+ elif [ -n "${2}" ]; then
+ echo "${2}"
+ fi
+}
+
+dccc_set_hosts() {
+ echo "${*}" > $DCCC_HOSTS_FILE
+}
+dccc_get_hosts() {
+ cat $DCCC_HOSTS_FILE
+}
+
+dccc_set_verbose() {
+ dccc_set_env DISTCC_VERBOSE ${1}
+ dccc_regen_env
+}
+dccc_get_verbose() {
+ dccc_get_env DISTCC_VERBOSE
+}
+
+dccc_set_log() {
+ dccc_set_env DISTCC_LOG ${1}
+ dccc_regen_env
+}
+dccc_get_log() {
+ dccc_get_env DISTCC_LOG
+}
+
+dccc_set_j() {
+ local j="$(echo ${1} | sed -e 's,[^0-9],,g')"
+ [ -z "${j}" ] && \
+ dccc_exit "$0: invalid -j option (must be a number)"
+ dccc_set_env MAKEOPTS "-j${j}"
+ dccc_regen_env
+}
+dccc_get_j() {
+ dccc_get_env MAKEOPTS
+}
+
+####
+# main install routine
+
+dccc_install() {
+ local xxCHOST
+ dccc_install_user
+ dccc_links install ""
+ for f in make.conf make.globals make.profile/make.defaults
+ do
+ xxCHOST="$(dccc_guess_chost /etc/${f})"
+ if [ -n "${xxCHOST}" ]; then
+ dccc_links install "${xxCHOST}"
+ break
+ fi
+ done
+
+ dccc_install_env
+}
+
+
+###
+# main routine
+
+# helper checks that user has privs
+must_be_root() {
+ if ! is_super_user
+ then
+ [ -n "${1}" -a "${1}" = "${2}" ] && return
+ dccc_exit "$0 $1 must be run by root"
+ fi
+}
+
+
+# The --no-profile-warning option is meant to be used with
+# the following helper function (add to ~/.bashrc)
+#
+# distcc-config() {
+# command distcc-config --no-profile-warning "$@" && \
+# source /etc/profile
+# }
+
+if [ "${1}" = "--no-profile-warning" ]; then
+ DCCC_NO_WARN=1
+ shift
+fi
+
+case "${1}" in
+ --get-* )
+ eval "dccc_$(echo ${1} | sed -e 's/^--//;s/-/_/g')"
+ ;;
+ --set-* )
+ must_be_root "--set-hosts" "${1}"
+ SET_FUNC="$(echo ${1} | sed -e 's/^--//;s/-/_/g')"
+ shift
+ [ "${#}" -eq 0 ] && dccc_exit "argument required"
+ eval "dccc_${SET_FUNC} ${*}"
+ ;;
+ --has-path )
+ dccc_test_env DCCC_PATH
+ ;;
+ --add-path )
+ must_be_root
+ dccc_set_env DCCC_PATH "/usr/lib/distcc/bin"
+ dccc_regen_env
+ if [ -z "${DCCC_NO_WARN}" ]; then
+ einfo "You must then set PATH=\"${DCCC_PATH}/\${PATH}\""
+ fi
+ ;;
+ --no-path )
+ must_be_root
+ dccc_set_env DCCC_PATH ""
+ dccc_regen_env
+ ;;
+ --show-env )
+ dccc_show_env
+ ;;
+ --load-defaults )
+ must_be_root
+ dccc_load_defaults
+ ;;
+ --install )
+ must_be_root
+ dccc_install
+ ;;
+ --install-user )
+ must_be_root
+ dccc_install_user
+ ;;
+ --install-links )
+ must_be_root
+ dccc_links install "${2}"
+ ;;
+ --remove-links )
+ must_be_root
+ dccc_links remove "${2}"
+ ;;
+ * )
+ echo "usage: ${0} --set-hosts DISTCC_HOSTS | --get-hosts"
+ echo " ${0} --set-verbose { 0 | 1 } | --get-verbose"
+ echo " ${0} --set-log FILE | --get-log"
+ echo " ${0} --add-path | --no-path"
+# echo " ${0} --install-links | --remove-links } [ CHOST ]"
+ exit 1
+ ;;
+esac
+
diff --git a/sys-devel/distcc/files/2.10/init b/sys-devel/distcc/files/2.10/init
new file mode 100644
index 000000000000..30cc55a139e4
--- /dev/null
+++ b/sys-devel/distcc/files/2.10/init
@@ -0,0 +1,26 @@
+#!/sbin/runscript
+# $Header: /var/cvsroot/gentoo-x86/sys-devel/distcc/files/2.10/init,v 1.1 2003/08/12 16:30:38 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} \
+ -c distcc --pidfile ${DISTCCD_PIDFILE} \
+ -- --pid-file ${DISTCCD_PIDFILE} ${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.10 b/sys-devel/distcc/files/digest-distcc-2.10
new file mode 100644
index 000000000000..0dbf80357d04
--- /dev/null
+++ b/sys-devel/distcc/files/digest-distcc-2.10
@@ -0,0 +1 @@
+MD5 044474020e864123b01aaa1c06fc831a distcc-2.10.tar.bz2 239769