Name: distcc
Summary: Distributed C/C++ compilation client program
Version: 2.18.3
Release: 2
License: GPL
Group: Development/Tools
URL: http://distcc.samba.org/
Description: distcc is a distributed compilation front-end. It sends command lines
and preprocessed files to other machines, that ship the resulting
object file and compiler output back. It gives significant speed ups
with make -jN.
The build was succesful. The following RPMs were generated:
The build was succesful. The following RPMs were generated:
The spec file used by the build system currently has the following contents:
# $Id$
# Authority: dag
# Upstream: Martin Pool <mbp$sourcefrog,net>
# Upstream: <distcc$lists,samba,org>
%{?rh7:%define _without_gtk2 1}
%{?el2:%define _without_gtk2 1}
%{?rh6:%define _without_gtk2 1}
%{?rh7:%define _without_freedesktop 1}
%{?el2:%define _without_freedesktop 1}
%{?rh6:%define _without_freedesktop 1}
%define desktop_vendor rpmforge
%define gccversion %(rpm -q gcc --qf '%{RPMTAG_VERSION}' | tail -1)
Summary: Distributed C/C++ compilation client program
Name: distcc
Version: 2.18.3
Release: 2%{?dist}
License: GPL
Group: Development/Tools
URL: http://distcc.samba.org/
Source: http://samba.org/ftp/distcc/distcc-%{version}.tar.bz2
BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root
%{!?_without_gtk2:BuildRequires: gtk2-devel >= 2.0, libgnome-devel, libgnomeui-devel}
Requires: gcc, gcc-c++
%{?el4:Requires: gcc4}
%{?fc3:Requires: compat-gcc, compat-gcc-c++, gcc4}
%{?fc2:Requires: compat-gcc, compat-gcc-c++, gcc34}
%{?fc1:Requires: compat-gcc, compat-gcc-c++, gcc32}
%{?rh9:Requires: compat-gcc, compat-gcc-c++}
%{?rh8:Requires: compat-gcc, compat-gcc-c++}
%{!?_without_freedesktop:BuildRequires: desktop-file-utils}
%description
distcc is a distributed compilation front-end. It sends command lines
and preprocessed files to other machines, that ship the resulting
object file and compiler output back. It gives significant speed ups
with make -jN.
%package server
Summary: distributed C/C++ compilation daemon
Group: Development/Tools
%description server
This package provides the server-side software for distcc. It must be
installed on all the hosts which are to participate in your distcc cluster.
%package gui
Summary: distributed C/C++ compilation GUI frontend
Group: Development/Tools
Requires: %{name} = %{version}-%{release}
Obsoletes: distcc-gnome
%description gui
This package provides the GNOME-based monitor for distcc. It is not required
in order to use distcc.
%prep
%setup
%{__cat} <<EOF >distccmon-gnome.desktop
[Desktop Entry]
Name=Distcc Monitor
Comment=View progress of your distributed compile tasks
Exec=distccmon-gnome
Icon=distccmon-gnome.png
Terminal=false
Type=Application
Categories=GNOME;Application;Development;
StartupNotify=true
EOF
%{__cat} <<EOF >distccd.sysconfig
### See distcc(1) manual page for more information on these options.
###
#OPTIONS="--nice 5 --jobs 5 --allow 10.0.0.0/24 --port 1234"
#USER="distcc"
### Set this if don't want distccd to use gcc or g++ by accident.
#DISTCCPATH="/usr/lib/distcc/bin"
EOF
%{__cat} <<'EOF' >distccd.sysv
#!/bin/sh
#
# Init file for Distccd - A distributed compilation front-end.
# WARNING: Don't enable on untrusted networks
#
# Written by Dag Wieers <dag@wieers.com>.
#
# chkconfig: - 80 20
# description: Distccd - distributed compilation front-end (daemon) \
# WARNING: Don't enable on untrusted networks
#
# processname: distccd
#
# config: %{_sysconfdir}/sysconfig/distccd
source %{_initrddir}/functions
source %{_sysconfdir}/sysconfig/network
### Check that networking is up.
[ "${NETWORKING}" == "no" ] && exit 0
[ -x "%{_bindir}/distccd" ] || exit 1
### Default variables
SYSCONFIG="%{_sysconfdir}/sysconfig/distccd"
OPTIONS=""
USER="distcc"
DISTCCPATH="$PATH"
### Read configuration
[ -r "$SYSCONFIG" ] && source "$SYSCONFIG"
RETVAL=0
prog="distccd"
desc="Distributed Compiler daemon"
start() {
echo -n $"Starting $desc ($prog): "
PATH="$DISTCCPATH" daemon --user "$USER" $prog --daemon --log-file="%{_localstatedir}/log/distccd.log" $OPTIONS
RETVAL=$?
echo
[ $RETVAL -eq 0 ] && touch %{_localstatedir}/lock/subsys/$prog
return $RETVAL
}
stop() {
echo -n $"Shutting down $desc ($prog): "
killproc $prog
RETVAL=$?
echo
[ $RETVAL -eq 0 ] && rm -f %{_localstatedir}/lock/subsys/$prog
return $RETVAL
}
restart() {
stop
start
}
case "$1" in
start)
start
;;
stop)
stop
;;
restart|reload)
restart
;;
condrestart)
[ -e %{_localstatedir}/lock/subsys/$prog ] && restart
RETVAL=$?
;;
status)
status $prog
RETVAL=$?
;;
*)
echo $"Usage $0 {start|stop|restart|condrestart|status}"
RETVAL=1
esac
exit $RETVAL
EOF
%{__cat} <<'EOF' >distccd.xinetd
# default: off
# description: Distccd - distributed compilation front-end (xinetd) \
# Please disable the daemon if you enable this. \
# WARNING: Don't enable on untrusted networks
service distccd
{
disable = yes
socket_type = stream
protocol = tcp
port = 3632
type = UNLISTED
wait = no
user = distcc
server = %{_bindir}/distccd
server_args = --inetd --log-file="%{_localstatedir}/log/distccd.log"
only_from = 127.0.0.1
}
EOF
%{__cat} <<EOF >distccd.logrotate
%{_localstatedir}/log/distccd.log {
missingok
copytruncate
notifempty
}
EOF
%build
%configure \
--with-docdir="./rpm-doc" \
%{!?_without_gtk2:--with-gnome}
%{__make} %{?_smp_mflags}
%install
%{__rm} -rf %{buildroot}
%makeinstall \
pkgdocdir="./rpm/"
%{__install} -Dp -m0644 distccd.xinetd %{buildroot}%{_sysconfdir}/xinetd.d/distccd
%{__install} -Dp -m0755 distccd.sysv %{buildroot}%{_initrddir}/distccd
%{__install} -Dp -m0644 distccd.logrotate %{buildroot}%{_sysconfdir}/logrotate.d/distccd
%{__install} -Dp -m0644 distccd.sysconfig %{buildroot}%{_sysconfdir}/sysconfig/distccd
%{__install} -d -m0755 %{buildroot}%{_libdir}/distcc/bin/
for compiler in cc c++ gcc g++; do
%{__ln_s} -f %{_bindir}/distcc %{buildroot}%{_libdir}/distcc/bin/$compiler
%{__ln_s} -f %{_bindir}/distcc %{buildroot}%{_libdir}/distcc/bin/i386-redhat-linux-$compiler-%{gccversion}
done
%{?fc3:%define has_gcc4 1}
%{?fc2:%define has_gcc296 1}
%{?fc1:%define has_gcc296 1}
%{?rh9:%define has_gcc296 1}
%{?rh8:%define has_gcc296 1}
%{?rh7:%define has_gcc296 1}
%{?el2:%define has_gcc296 1}
%if %{?has_gcc296:1}0
for compiler in gcc296 g++296; do
%{__ln_s} -f %{_bindir}/distcc %{buildroot}%{_libdir}/distcc/bin/$compiler
done
%endif
%{?fc1:%define has_gcc323 1}
%if %{?has_gcc323:1}0
for compiler in gcc32 gcc323; do
%{__ln_s} -f %{_bindir}/distcc %{buildroot}%{_libdir}/distcc/bin/$compiler
done
%endif
%{?fc2:%define has_gcc34 1}
%if %{?has_gcc34:1}0
for compiler in gcc34 g++34; do
%{__ln_s} -f %{_bindir}/distcc %{buildroot}%{_libdir}/distcc/bin/$compiler
done
%endif
%{?fc2:%define has_gcc4 1}
%if %{?has_gcc4:1}0
for compiler in gcc4 g++4; do
%{__ln_s} -f %{_bindir}/distcc %{buildroot}%{_libdir}/distcc/bin/$compiler
done
%endif
%if %{!?_without_gtk2:1}0
%{__install} -Dp -m0644 gnome/distccmon-gnome-icon.png %{buildroot}%{_datadir}/pixmaps/distccmon-gnome.png
%{__install} -d -m0755 %{buildroot}%{_datadir}/applications/
desktop-file-install --vendor %{desktop_vendor} \
--add-category X-Red-Hat-Base \
--dir %{buildroot}%{_datadir}/applications \
distccmon-gnome.desktop
%endif
%pre server
/usr/sbin/useradd -M -s /sbin/nologin -r distcc &>/dev/null || :
/usr/sbin/usermod -s /sbin/nologin distcc &>/dev/null || :
%post server
if [ $1 -eq 1 ]; then
/sbin/chkconfig --add distccd
fi
touch /var/log/distccd.log
%{__chown} distcc.distcc /var/log/distccd.log
if ! grep -q "3632/tcp" /etc/services; then
echo -e "distcc\t\t3632/tcp\t\t\t# Distcc Distributed Compiler" >> /etc/services
fi
if ! grep -q "^distcc:" /etc/hosts.allow; then
echo -e "distcc:\t127.0.0.1" >> /etc/hosts.allow
fi
/sbin/service distccd condrestart &>/dev/null || :
%preun server
if [ $1 -eq 0 ]; then
/sbin/service distccd stop &>/dev/null || :
/sbin/chkconfig --del distccd
fi
%postun server
/sbin/service distccd condrestart &>/dev/null || :
%clean
%{__rm} -rf %{buildroot}
%files
%defattr(-, root, root, 0755)
%doc rpm-doc/*
%doc %{_mandir}/man1/distcc.*
%doc %{_mandir}/man1/distccmon-text.*
%{_bindir}/distcc
%{_bindir}/distccmon-text
%{_libdir}/distcc/
%files server
%defattr(-, root, root, 0755)
%doc %{_mandir}/man1/distccd.*
%config(noreplace) %{_sysconfdir}/logrotate.d/distccd
%config(noreplace) %{_sysconfdir}/sysconfig/distccd
%config(noreplace) %{_sysconfdir}/xinetd.d/distccd
%config %{_initrddir}/distccd
%{_bindir}/distccd
%if %{!?_without_gtk2:1}0
%files gui
%defattr(-, root, root, 0755)
%{_bindir}/distccmon-gnome
%{_datadir}/distcc/
%{_datadir}/applications/%{desktop_vendor}-distccmon-gnome.desktop
%{_datadir}/pixmaps/distccmon-gnome.png
%endif
%changelog
* Mon Mar 07 2005 Dag Wieers <dag@wieers.com> - 2.18.3-2
- Dropped compat-gcc requirement for EL4. (Rob Starkey)
* Wed Dec 01 2004 Dag Wieers <dag@wieers.com> - 2.18.3-1
- Updated to release 2.18.3.
* Fri Nov 12 2004 Dag Wieers <dag@wieers.com> - 2.18.2-1
- Updated to release 2.18.2.
* Tue Nov 09 2004 Dag Wieers <dag@wieers.com> - 2.18.1-1
- Updated to release 2.18.1.
* Mon Nov 01 2004 Dag Wieers <dag@wieers.com> - 2.18-1
- Updated to release 2.18.
* Sun Aug 01 2004 Dag Wieers <dag@wieers.com> - 2.17-1
- Updated to release 2.17.
* Thu Jul 08 2004 Dag Wieers <dag@wieers.com> - 2.16-1
- Updated to release 2.16.
* Wed Jul 07 2004 Dag Wieers <dag@wieers.com> - 2.15-1
- Updated to release 2.15.
* Sun May 02 2004 Dag Wieers <dag@wieers.com> - 2.14-1
- Updated to release 2.14.
* Tue Apr 20 2004 Dag Wieers <dag@wieers.com> - 2.13-3
- Fixed a bug in the sysv script introduced in 2.13-1. (Martijn Lievaart)
* Fri Apr 09 2004 Dag Wieers <dag@wieers.com> - 2.13-2
- Added patch to build gui for RH80. (Martin Pool)
* Tue Mar 02 2004 Dag Wieers <dag@wieers.com> - 2.13-1
- Updated to release 2.13.
* Sun Jan 25 2004 Dag Wieers <dag@wieers.com> - 2.12.1-1
- Made distcc aware of gcc296 and gcc32 packages.
- Now require gcc and compat-gcc packages too.
* Fri Jan 09 2004 Dag Wieers <dag@wieers.com> - 2.12.1-0
- Updated to release 2.12.1.
* Sat Dec 20 2003 Dag Wieers <dag@wieers.com> - 2.12-0
- Updated to release 2.12.
* Thu Oct 23 2003 Dag Wieers <dag@wieers.com> - 2.11.2-0
- Updated to release 2.11.2.
* Wed Oct 08 2003 Dag Wieers <dag@wieers.com> - 2.11.1-0
- Updated to release 2.11.1.
* Wed Sep 24 2003 Dag Wieers <dag@wieers.com> - 2.11-0
- Updated to release 2.11.
* Mon Aug 11 2003 Dag Wieers <dag@wieers.com> - 2.10-0
- Updated to release 2.10.
* Mon Jul 21 2003 Dag Wieers <dag@wieers.com> - 2.9-1
- Improved the default config files. (Martin Pool)
- Updated to release 2.9.
* Wed Jul 09 2003 Dag Wieers <dag@wieers.com> - 2.8-0
- Updated to release 2.8.
* Tue Jun 24 2003 Dag Wieers <dag@wieers.com> - 2.7-0
- Updated to release 2.7.
* Thu Jun 12 2003 Dag Wieers <dag@wieers.com> - 2.6-0
- Updated to release 2.6.
* Thu Jun 05 2003 Dag Wieers <dag@wieers.com> - 2.5.1-0
- Updated to release 2.5.1.
* Wed May 28 2003 Dag Wieers <dag@wieers.com> - 2.5-0
- Updated to release 2.5.
* Wed May 21 2003 Dag Wieers <dag@wieers.com> - 2.4-0
- Updated to release 2.4.
* Fri May 16 2003 Dag Wieers <dag@wieers.com> - 2.3-0
- Updated to release 2.3.
* Wed May 14 2003 Dag Wieers <dag@wieers.com> - 2.2-2
- Updated to release 2.2.
- Added seperate logfile and logrotate script.
* Sun May 04 2003 Dag Wieers <dag@wieers.com> - 2.1-0
- Updated to release 2.1.
* Thu Apr 17 2003 Dag Wieers <dag@wieers.com> - 2.0.1-0
- Updated to release 2.0.1.
* Mon Mar 10 2003 Dag Wieers <dag@wieers.com> - 1.2.3-0
- Updated to release 1.2.3.
* Fri Feb 28 2003 Dag Wieers <dag@wieers.com> - 1.2.2-0
- Updated to release 1.2.2.
- Added sysv and xinet scripts.
* Mon Feb 24 2003 Dag Wieers <dag@wieers.com> - 1.2-0
- Updated to release 1.2.
* Fri Feb 14 2003 Dag Wieers <dag@wieers.com> - 1.1-0
- Initial package. (using DAR)