Skip site navigation (1)Skip section navigation (2)
Date:      Wed, 26 Jun 2002 11:27:03 +0200 (CEST)
From:      Frerich Raabe <frerich.raabe@gmx.de>
To:        FreeBSD-gnats-submit@FreeBSD.org
Subject:   ports/39879: New port: distcc
Message-ID:  <20020626092703.BE78C115B@gmx.de>

next in thread | raw e-mail | index | archive | help

>Number:         39879
>Category:       ports
>Synopsis:       New port: distcc
>Confidential:   no
>Severity:       non-critical
>Priority:       low
>Responsible:    freebsd-ports
>State:          open
>Quarter:        
>Keywords:       
>Date-Required:
>Class:          change-request
>Submitter-Id:   current-users
>Arrival-Date:   Wed Jun 26 02:30:02 PDT 2002
>Closed-Date:
>Last-Modified:
>Originator:     Frerich Raabe
>Release:        FreeBSD 4.6-STABLE i386
>Organization:
>Environment:
System: FreeBSD daedalus.lan 4.6-STABLE FreeBSD 4.6-STABLE #6: Fri Jun 21 17:33:42 CEST 2002 root@daedalus.lan:/usr/obj/usr/src/sys/SWIFT i386
>Description:
distcc is a program to distribute compilation of C code across
several machines on a network. distcc should always generate the
same results as a local compile, is simple to install and use, and
is often significantly faster than a local compile.

Unlike other distributed build systems, distcc does not require all
machines to share a filesystem, have synchronized clocks, or to
have the same libraries or header files installed. Machines can be
running different operating systems, as long as they have compatible
binary formats or cross-compilers.

distcc sends the complete preprocessed source code across the network
for each job, so all it requires of the volunteer machines is that
they be running the distccd daemon, and that they have an appropriate
compiler installed.
>How-To-Repeat:
>Fix:
# This is a shell archive.  Save it in a file, remove anything before
# this line, and then unpack it by entering "sh file".  Note, it may
# create directories; files and directories will be owned by you and
# have default permissions.
#
# This archive contains:
#
#	distcc
#	distcc/Makefile
#	distcc/distinfo
#	distcc/pkg-comment
#	distcc/pkg-descr
#	distcc/pkg-message
#	distcc/pkg-plist
#	distcc/files
#	distcc/files/patch-src::serve.c
#	distcc/files/patch-src::dparent.c
#
echo c - distcc
mkdir -p distcc > /dev/null 2>&1
echo x - distcc/Makefile
sed 's/^X//' >distcc/Makefile << 'END-of-distcc/Makefile'
X# New ports collection makefile for: distcc
X# Date created:	25 June 2002
X# Whom:	Frerich Raabe
X#
X# $FreeBSD$
X#
X
XPORTNAME=	distcc
XPORTVERSION=	0.4
XCATEGORIES=	devel
XMASTER_SITES=	http://ftp.samba.org/ftp/distcc/
X
XMAINTAINER=	frerich.raabe@gmx.de
X
XLIB_DEPENDS=	popt.0:${PORTSDIR}/devel/popt
X
XGNU_CONFIGURE=	yes
XCONFIGURE_ENV+=	CPPFLAGS="-I${LOCALBASE}/include ${CPPFLAGS}" \
X	LDFLAGS="-L${LOCALBASE}/lib ${LDFLAGS}"
X
XBUILD_WRKSRC=	${WRKSRC}/src
X
Xdo-install:
X	@${INSTALL_PROGRAM} ${WRKSRC}/src/distcc ${PREFIX}/bin
X	@${INSTALL_PROGRAM} ${WRKSRC}/src/distccd ${PREFIX}/sbin
X
Xpost-install:
X	@${CAT} ${PKGMESSAGE}
X
X.include <bsd.port.mk>
X# vim: noet
END-of-distcc/Makefile
echo x - distcc/distinfo
sed 's/^X//' >distcc/distinfo << 'END-of-distcc/distinfo'
XMD5 (distcc-0.4.tar.gz) = 3b21a4bde9810eb8040b05e6924430f8
END-of-distcc/distinfo
echo x - distcc/pkg-comment
sed 's/^X//' >distcc/pkg-comment << 'END-of-distcc/pkg-comment'
XDistribute compilation of C(++) code acrosss machines on a network
END-of-distcc/pkg-comment
echo x - distcc/pkg-descr
sed 's/^X//' >distcc/pkg-descr << 'END-of-distcc/pkg-descr'
Xdistcc is a program to distribute compilation of C code across
Xseveral machines on a network. distcc should always generate the
Xsame results as a local compile, is simple to install and use, and
Xis often significantly faster than a local compile.
X
XUnlike other distributed build systems, distcc does not require all
Xmachines to share a filesystem, have synchronized clocks, or to
Xhave the same libraries or header files installed. Machines can be
Xrunning different operating systems, as long as they have compatible
Xbinary formats or cross-compilers.
X
Xdistcc sends the complete preprocessed source code across the network
Xfor each job, so all it requires of the volunteer machines is that
Xthey be running the distccd daemon, and that they have an appropriate
Xcompiler installed.
X
XWWW: http://distcc.samba.org/
X
X- Frerich Raabe frerich.raabe@gmx.de
END-of-distcc/pkg-descr
echo x - distcc/pkg-message
sed 's/^X//' >distcc/pkg-message << 'END-of-distcc/pkg-message'
XWARNING: distcc[d] performs NO AUTHENTICATION at all and should
XONLY be used in trusted networks!
X
XThe daemon runs on port 4200 by default. You can change that
Xvalue by calling distccd with the -p parameter, e.g.
X`distccd -p 4711'.
X
XNote that remote daemons currently won't work if they cannot
Xresolve the reverse DNS of the master machine
END-of-distcc/pkg-message
echo x - distcc/pkg-plist
sed 's/^X//' >distcc/pkg-plist << 'END-of-distcc/pkg-plist'
Xbin/distcc
Xsbin/distccd
END-of-distcc/pkg-plist
echo c - distcc/files
mkdir -p distcc/files > /dev/null 2>&1
echo x - distcc/files/patch-src::serve.c
sed 's/^X//' >distcc/files/patch-src::serve.c << 'END-of-distcc/files/patch-src::serve.c'
X--- src/serve.c.orig	Tue Jun 25 15:42:07 2002
X+++ src/serve.c	Tue Jun 25 15:42:30 2002
X@@ -189,7 +189,7 @@
X      *
X      * XXX: Perhaps this should be optional so that we can compare
X      * performance each way? */
X-    if (mknod(temp_i, S_IFIFO|S_IRUSR|S_IWUSR, 0) == -1) {
X+    if (mkfifo(temp_i, S_IFIFO|S_IRUSR|S_IWUSR) == -1) {
X         rs_log_error("failed to make fifo %s: %s", temp_i,
X                      strerror(errno));
X         goto failed;
END-of-distcc/files/patch-src::serve.c
echo x - distcc/files/patch-src::dparent.c
sed 's/^X//' >distcc/files/patch-src::dparent.c << 'END-of-distcc/files/patch-src::dparent.c'
X--- src/dparent.c.orig	Tue Jun 25 15:58:35 2002
X+++ src/dparent.c	Tue Jun 25 15:58:48 2002
X@@ -126,7 +126,7 @@
X 
X     memset(&act_exited, 0, sizeof act_exited);
X     act_exited.sa_handler = dcc_child_exited;
X-    act_exited.sa_flags = SA_NOCLDSTOP;
X+    act_exited.sa_flags = SA_NOCLDSTOP|SA_RESTART;
X 
X     if (sigaction(SIGTERM, &act_catch, NULL)
X         || sigaction(SIGHUP, &act_catch, NULL)
END-of-distcc/files/patch-src::dparent.c
exit

>Release-Note:
>Audit-Trail:
>Unformatted:

To Unsubscribe: send mail to majordomo@FreeBSD.org
with "unsubscribe freebsd-ports" in the body of the message




Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20020626092703.BE78C115B>