Changes:
BUG FIXES:
* When checking if a process exists, accept EPERM as indicating it
exists but isn't ours. This allows watching the directory of a
different user, subject only to filesystem permissions.
Reported by Ernst Bachmann.
* Correct a bug introduced in 2.12 that made distccd fail to start
when run by root because setgid failed. Fix from Wayne Davison.
* --without-gnome, --without-gtk now turn those options off rather
than on.
DOCUMENTATION:
* New man page for distccmon-text, by Shri Shrikumar and Martin
Pool.
distcc-2.12 "Figgy Pudding" 2003-12-19
FEATURES:
* New --log-level feature allows logging of only errors rather
than messages for each connection.
* IPv6 support now works better when distcc is configured with
--enable-rfc2553. The server can normally accept either IPv4 or
IPv6 connections.
* New --with-docdir configure option to set install location for
documents. The default is the same as previously. Patch from
Harold L Hunt II.
INTERNAL:
* GNU-style ChangeLog is now included in the package. Please keep
it up to date if you make your own changes!
PORTABILITY:
* setgroups() was broken by Mac OS X Panther so that it will not
accept setgroups(0, NULL) to clear the group list. Instead we
now set the group list to our single primary gid. Suggestion
from Wayne Davison.
* sendfile problems on FreeBSD 4.9-RC fixed. Patch from Allan
Saddi.
* MAXPATHLEN is provided if it's not defined, which is the case on
GNU Hurd. Reported by Santiago Vila as Debian #219600.
BUG FIXES:
* Check pkg-config information GNOME/GTK+ is now checked at
configure time, not build time. This is a bit quicker than
running the script for every file we build, and means that
PKG_CONFIG_PATH only needs to be set for configure.
DOCUMENTATION:
* Small documentation corrections.
Changes since 2.11:
distcc-2.11.2 "Muscovado" 2003-10-23
BUG FIXES:
* Correct the handling of --without-gnome. Reported by Dimitri
Papadopoulos.
* Fatal signal handlers for client and daemon should reset the
signal vector before doing anything else, to protect against an
(unlikely) spin if the signal is re-sent.
* Corrections to .desktop file from Dag Wieers.
INTERNAL:
* Remove dependency on libglade for GTK+ and GNOME monitor
programs.
PORTABILITY:
* IRIX portability fixes from Dimitri Papadopoulos.
* Use AC_TYPE_SIGNAL to generate correct signal handler return
types. (It can be either int or void.)
DOCUMENTATION:
* Various manual updates.
* Update to xinetd example from Dag Wieers.
distcc-2.11.1 "Burnt sugar" 2003-10-08
FEATURES:
* The graphical monitor can now be configured with either
--with-gnome or --with-gtk. In the second case, the GNOME
libraries are not used. In both cases the resulting program is
called distccmon-gnome and the functional differences are fairly
small.
BUG FIXES:
* An error message is emitted and compilation fails if distcc
cannot use the specified TMPDIR. This can happen if distccd is
started by root with a TMPDIR only accessible to root.
Reported by Brett Dikeman.
* GNOME data files are now only installed when the application is
configured with --with-gnome or --with-gtk. Files are installed
into a distcc/ subdirectory of the configured data directory.
(By default this is /usr/local/share/distcc/). Reported by Erik
Jan Tromp and Noe`l Ko"the.
* Fix bug in sending compressed files where errors were ignored.
* C++ compilation using -frepo must be local. Reported by Andrew
Slater.
PORTABILITY:
* Don't use stdint.h, which is not available on FreeBSD 4-STABLE,
IRIX or Solaris. Reported by Frerich Raabe.
DOCUMENTATION:
* Corrections to distcc manpage reported by Lionel Sausin.
* Documentation of how to write monitor programs, from Frerich
Raabe.
INTERNAL:
* Fix state.h for use with C++. Patch from Frerich Raabe.
* Fix problem in "make clean" reported by Lisa Seelye.
* Fix issues in temporary file handling that could allow a local
attacker to interfere with another user's distcc processes.
* Daemon niceness is incremented by +5 by default. (This can be
changed by --nice.)
* The per-user configuration directory can be set by $DISTCC_DIR.
It defaults to the old value of ~/.distcc/.
* For regular compile failure, don't say "with exit code 1".
* The server now emits warnings to the log and to the client if
its PATH is set such that it will recursively run a distcc
client. This check is done at run time for the requested
compiler name. The server's $PATH is not modified in other
ways. This may help reduce problems with finding the right
remote compiler.
* SCO/Caldera operating systems are no longer supported due to
their recent absurd attacks against Linux and IBM.
* TMPDIR is no longer required to start with '/', so that Cygwin
paths starting with a drive letter may be used. Reported by
Heiko Elger.
* Various man page updates.
* Daemon now sits in the root directory while running, not the
temporary directory.
* Temporary directory is gone. Working files are created directly
under $TMPDIR.
* Lock files and state files are stored under DISTCC_DIR, rather
than in /tmp.
* Test cases are more robust in choosing a daemon port number.
* Optional LZO1X compression of network traffic, to make distcc
faster on slow or overloaded networks. This is turned on by
appending ",lzo" to each host specification.
* The daemon by default allows 2+NCPUS, rather than 3*NCPUS. The
two extras are to allow for some processes to be blocked on
network IO, but allowing more than two of them is probably not
useful on multiprocessor machines.
* Larger files are sent and received using memory mappings where
possible.
* Use of mmap and compression makes distcc substantially faster in
at least some cases.
* Bug fixes
* New program distccmon-text shows the state of any distcc
processes run by the current user. It can be run by hand or
read by a shell script. Should be popular with vmstat fans.
* The standalone daemon now "preforks" before accepting
connections to reduce per-request overhead. Can be disabled by
--no-prefork, which restores the standard Unix behaviour.
* Bug fixes
* And much more..
* If $DISTCC_HOSTS is not set, the host list is taken from from
~/.distcc/hosts, if that exists, or otherwise $sysconfdir/distcc/hosts.
* Add --listen option to distccd, to control which IP address is
used to listen for connections. May be useful for access
control on dual-homed machines.
distcc is a program to distribute compilation of C or 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
two or more times faster than a local compile.
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.