| Commit message (Collapse) | Author | Age | Files | Lines |
| |
|
|
|
|
| |
include_server/__init__.py file and StripTrailingWhitespaces vim script
|
| |
|
|
|
| |
Fixes issue 31
|
|
|
| |
Fixes issue 142
|
| |
|
|
|
|
|
|
|
| |
<http://code.google.com/p/distcc/issues/detail?id=139>:
add configure option --without-libiberty, to allow
building distcc without GPL3 license encumbrance.
|
|
|
|
|
|
| |
Passing the above option to configure should not cause ENABLE_RFC2553
to be defined.
Fixes issue 68
|
| |
|
|
|
| |
Fixes issue 85
|
|
|
|
|
| |
Only undefine _FORTIFY_SOURCE when building with -Werror.
|
| |
|
|
|
|
|
|
|
| |
in preparation for releasing distcc version 3.2.
Reviewed by Craig Silverstein.
|
|
|
|
|
| |
Reviewed by Craig Silverstein.
|
|
|
|
|
|
| |
in case we don't have getline() available.
Reviewed by Craig Silverstein.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Optional GSS-API Functionality.
This patch implements mutual authentication, out of sequence and
replay detection using the GSS-API. The changes implemented are
optional and are turned off by default.
This option is specified to the client through an environment variable
as is the name of the server principal to authenticate. Currently
the server principal can be left unspecified and a default based on
the host keytab will be used.
This option is specified to the daemon through a command line option,
with the name of the principal whose credentials the daemon should
use specified as an environment variable. A simple handshake is
exchanged between the client and server in order to prevent
unecessary delays and protocol derailments when mixing authenticating
and non-authenticating clients and servers.
Revised based on review comments.
GSS-API authentication is now implemented as a per host option.
Revised further by me (Fergus Henderson) to fix a spelling error
and to rename the per host option from ",gssapi" to ",auth".
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
-Wwrite-strings when compiling the python extension module,
due to lack of const correctness in the Python 2.2
"Python.h" header file.
This problem was introduced by the fix for distcc issue 26
<http://code.google.com/p/distcc/issues/detail?id=26>.
The solution was to explicitly disable these warnings
with -Wno-write-strings.
2. Centralize the use of gcc-specific compilation options
in conditional code in configure.ac that is only executed
if we're using gcc. Previously include_server/setup.py
was hard-coding gcc-specific options, regardless of
whether we're using gcc.
3. Don't use -Wuninitialized if CFLAGS doesn't contain "-O*",
because -Wuninitialized only works if optimization is enabled.
This avoids a gcc warning (and hence an error with -Werror)
about -Wuninitialized not having any effect
when distcc is configured with "CFLAGS=-g ./configure".
4. Add a new configure option "--disable-Werror".
For the 3.0 release of distcc, some people porting distcc
resorted to patching distcc to remove the -Werror option.
-Werror is useful, so I want to keep it enabled by default,
but I'd prefer that people are able to port distcc easily,
hence the configure option.
This addresses distcc issue 20
<http://code.google.com/p/distcc/issues/detail?id=20>.
Reviewers: Craig Silverstein
|
|
|
|
|
| |
Reviewed by Craig Silverstein.
|
| |
|
| |
|
|
|
|
| |
Reviewed by Craig Silverstein.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
was reporting an unexpected exit status: 139 instead of 110.
This was caused by a seg fault in distccd, deep in the bowels of
vsnprintf(), which appears to be due to calling vsnprintf() twice
on the same va_list. The fix is to use va_copy() in src/trace.c.
Of course it's never quite as easy as that. va_copy() exists
only in C99, not in C89. Some implementations have __va_copy()
but not va_copy(). So we need to autoconf it. There was
already an autoconf test for this, but only for __va_copy.
I've moved the code which defined VA_COPY from snprintf.c to
a new header file va_copy.h, and added a VA_COPY_END macro.
Also, fix another bug that I noticed at the same time:
snprintf.c was using va_copy(), but was not matching each
call to va_copy with a corresponding call to va_end(),
as required by the C99 standard.
|
|
|
|
|
|
|
|
| |
building distcc targeted to machines without libavahi on a machine
with libavahi.
Reviewed by Fergus Henderson.
|
| |
|
|
|
|
|
| |
3.0-rc1. But now rpm is complaining that - is illegal in a version
string, so I'm changing it back to 3.0rc1. Sorry Fergus...
|
|
|
|
|
|
| |
(for "release candidate 1").
Reviewers: Craig Silverstein
|
|
|
|
|
|
|
|
| |
and distccd.
Tested by installing avahi and running 'make' plus 'make check'.
Reviewed by klarlund
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
1) Replace http://distcc.samba.org with the new google code location
2) Add favicon.ico from the distcc.samba.org site
3) Use distcc@lists.samba.org as the only distcc mailing list (there
were at least three mailing lists scattered around the docs, some of
which don't even exist anymore!)
4) Update man pages and other docs to not use "distcc-pump" anywhere;
it's now "pump mode" or "distcc's pump mode", or "distcc-pump
mode".
I also add, to the README, some discussion of scaling to hundreds of
machines.
Reviewed by fergus and klarlund
|
| |
|
|
|
|
| |
Reviewers: Craig Silverstein
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
that fails on macs with python 2.5 (at least) because of weirdnesses
with distutils installation on that platform -- just rewrite pump at
install-time to indicate it's installed. We take the opportunity to
tell pump where the installed include_server.py is, because it needs
to know, and we know that during 'make install'.
Tested by running 'make distcheck' on linux (ubuntu) with python 2.4,
and mac 10.5 with python 2.5. I also tested by running, on the linux
machine,
./configure --prefix=/tmp/distcc.install && make install && make DISTCC_INSTALLATION=/tmp/distcc.install/bin installcheck
Furthermore, I manually inspected the installed pump file after that
to make sure it looked correct.
Reviewed by klarlund@google.com and fergus@google.com
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Tests:
I made PATH=$PATH:/usr/python/bin (where python2.5 resides on my machine). I ran
autogen and reconfigured. Then I did:
make include-server-maintainer-check
make pump-maintainer-check
and I made sure that -Is now are set according to Python2.5.
|
|
|
|
|
|
|
|
|
|
|
| |
leading to a compile command that had -I"" in it. Who knows what that
means? Now the -I is part of POPT_INCLUDES, so when it's absent we
don't add anything to CPPFLAGS.
Tested on a machine where POPT_INCLUDES is not empty and one where it
is.
Reviewed by klarlund@google.com
|
|
|
|
|
|
|
|
|
| |
Use the distutil function that generates the library name for locating the
Python stuff in an installation.
Reviewers: fergus@google.com, csilvers@google.com
Test: make distcheck
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
(1) Correct order of -Is in Makefile.
(2) remove unnessary PATH modification in configure.ac (this is fergus's
suggestion -- hopefully this will do, this replaces a circumvention mechanism I
had originally concocted.
(3) Fix place of the include of popt in CPPFLAGS.
(4) Convert quoted includes of config.h to angle bracket includes so that the
build version, not the source version, of this file is picked up.
The order of -Is in the build system is wrong: it contradicts the
VPATH mechanism.
This means that builds in a build directory different from that
of the source (distribution) directory will find wrong files even
after the hapless developer has issued only a 'configure' command
in the source directory (but not actually 'made' any thing
there). For in that case, the src/config.h will be generated in
the source directory and this will be the file picked in the
build directory even if that directory has it's own src/config.h.
This can lead to wrong builds and it can be hard to diagnose the
problem.
Currently, this what CPPFLAGS end up being (as found in the
generated Makefile):
CPPFLAGS = -DHAVE_CONFIG_H -D_GNU_SOURCE \
-I../distcc/popt -I../distcc/src \
${DIR_DEFS} \
-Isrc -Ilzo \
-I"$(srcdir)/src" -I"$(srcdir)/lzo" \
Here my source dir was ../distcc.
The presence of '-I../distcc/popt' in front of -Isrc is the exact
opposite of the semantics of VPATH mechanism, which looks for
files in the build directory, then in the source directory.
Also, note the remarks in:
http://www.gnu.org/software/autoconf/manual/autoconf.html#Configuration-Headers
(they do not quite correctly discuss the search path, btw).
TESTING: I verified that with a corrupted config.h file in the source directory,
building now succeeds.
Also: make distcheck (it fails the same place as before: this is corrected in
another change of mine --- I'll verify that with that change in place, this
change makes 'make distcheck' succeed.)
REVIEWERS: fergus@google.com, csilvers@google.com
|
|
|
|
|
| |
TESTED: make distcheck
REVIEWED: csilvers@google.com, fergus@google.com
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
for that case, but still give an error rc in that case, so the make
would fail. Now I make sure we don't fail just because we don't have
python installed.
Also, some machines (solaris 10) don't have a grep with -q, so just
use >/dev/null insteasd.
Third, we had left out a file to add to the tarball: ontest.py.
Fourth, 'make distcheck' fails a bit on the pump-installcheck. I've
addressed some of the problems, but others remain.
Finally -- and this is the bulk of the change, line-count wise, I
added quotes around all variables, so we do the right thing when
variables have spaces or other shell-meaningful characters in them, as
indeed they often do on windows machines.
Tested by running 'make check' on various architectures, including
solaris 10 x86 and cygwin.
Reviewed by klarlund@google.com and fergus@google.com
|
|
|
|
|
|
| |
Tested by running configure on a machine with python 2.2 installed.
Reviewed by fergus@google.com
|
|
|
|
|
|
| |
only requires python 2.2. Check for both, so for folks with python
2.2 or python 2.3, they can at least run the tests, even if they can't
install the include-server.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
the unittests to pass, on FreeBSD 6.0, Solaris 10 x86, and OS X
Leopard. You have to use gmake instead of standard bsd make, though,
because neither bsd nor solari make understand 'include */*.d' and
'CFLAGS += $(POPT_FLAGS).' These may be fixable later.
Most changes fall into four categories:
1) #include differences
2) New errors due to some #ifdef paths being taken differently
3) Undefined functions (see, eg, the new HAVE_STRSEP)
4) Type differences (eg tv_usec is an int on os x, not a long int)
As one concrete example, snprintf.c is an empty file on linux, where
all the functionality is part of glibc. But on Solaris, some of its
functionality is useful. This turned up a bug where if you have
vsnprintf on your system but not vasnprintf, then dopr() was not being
used but was being defined, leading to an "unused static function"
warning in gcc.
As another, solaris would complain about "index" being used as a
variable, since it's also a function name. The var was renamed idx.
Tested by compiling on FreeBSD, Solaris 10, and OS X leopard (x86). I
also compiled and ran unittests under Linux Ubuntu, to make sure
this change didn't break anything there.
Reviewed by fergus@google.com
|
|
|
|
|
|
| |
though it's needed to define UNINSTALL_GNOME.
Reviewed by fergus@google.com
|
|
|
|
|
|
|
|
|
|
|
| |
target in the Makefile to call it. Also added googlecode_upload.py to
the dist tarball.
Also update the version number to prerelease2. As part of testing
this change, I actually uploaded the tarballs and rpm files to
code.google.com.
Reviewed by fergus@google.com
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
configure.ac):
1) Create a .gz tarfile as well as a .bz2 tarfile, with "make dist".
I've also added a few more dist rules: "make rpm", "make deb", and
"make alldist", though currently they're commented out since the
scripts they call have yet to be written.
2) setup.py looks at os.environ("BUILDDIR"), so make sure that
environment variable is always set properly.
3) setup.py was hard-coding the version number. Instead, have it get
it from the environment ("DISTCC_VERSION"), and set that envvar
before calling setup.py in the Makefile. (The alternate solution,
of making a setup.py.in and having configure set the version number
in setup.py, did not work well because the Makefile really wants
setup.py to be in $srcdir, that the configure option puts it in
builddir.)
4) Clean up distcheck to have three separate directories: src, build,
and install. Before src and build were the same. This pulled up
several places that were using srcdir instead of builddir, which I
fixed.
5) Clean up distcheck to make sure that 'make distclean' cleans all
the build files created during the build. At first it didn't
quite, so I fixed that up as well.
6) Added some new files to 'make dist': particularly, the files used
to build rpm and deb files.
7) Have maintainer-check and maintainer-installcheck both call the
same routine (via recursive make) rather than copy all that code.
This simplifies things surprisingly, especially since the main
check logic no longer has be inside a big "if $(PYTHON)".
8) (Various rules:) replace $^, which is not very portable, with a
repetition of the dependency line.
9) Rename GZIP to GZIP_BIN, since GZIP as an envvar is read by gzip
and parsed as gzip options.
10) In include_server/setup.py, we weren't setting builddir/src as an
include dir, and it needs to be (as 'make distcheck' shows). I'm
not sure builddir/../../src really needs to be anymore, but I guess
it can't hurt, so I've left it in.
11) Updated INSTALL to refer to autogen.sh, which will create
configure if it's not already there.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
directory up to the top level: delete the distcc directory (I already
copied it all to the top level in my last commit).
This requires changing all files that refer to distcc/FOO to refer
directly to FOO instead. Mostly this is Makefile.in and setup.py, but
there are a few other changes in scripts that have to hard-code paths,
like configure.ac and pump.in. Also, several files changed their
comments to refer to the new location, which isn't strictly necessary
but I did anyway.
The only other change I made was to get rid of the hack I had put in
before, which renamed distcc to distcc-bin. I had needed to do that
before, temporarily, because "distcc" was already the name of a
directory, and couldn't also be the name of a binary. Now that the
distcc directory is going away, I can rename the target back to
distcc.
Tested by running './autogen; ./configure; make maintainer-check'.
I also ran 'make pump-check' and 'make distcheck'.
To be reviewed (post-facto) by klarlund@google.com and fergus@google.com
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
include_server/configure.ac into a single, top-level configure.ac
script. Likewise with the three Makefile.in scripts. Now one config
file at the top level controls everything.
I had to rewrite quite a bit of code to account for the new level-up.
In particular, I had to add "distcc/" in front of many things in order
to refer to the same files I used to refer to when the
configure.ac/Makefile.in text lived in the distcc/ directory rather
than the top-level directory. Likewise (though to a lesser extent)
for include_server.
I also had to do a bit of merge work. Typically I'd leave the
originally-distcc-directory content as close to the original as
possible, and then try to put in the include_server directory stuff.
Most of the top-level configure.ac and Makefile.in could go away,
since they were glue before. I also could get rid of other top-level
helper scripts that were used for the glue, such as version.sh.
I also fixed a number of typos and other bugs:
Makefile.in:
1) Removed obsolete CVS comment (we're 3 source-control systems past
that now!)
2) distcc/Makefile.in was using top_builddir without importing it from
the configure script.
3) Add zeroconf.h to HEADERS, which is needed for 'make dist'. I also
added all the include_server files to 'make dist'.
4) "make dist" was passing 'h' ("no symlinks") to tar. This does not
work with the include_server test-suite, which includes symlinks.
I verified no other part of the distribution uses symlinks.
Removed the h.
5) "make dist" was missing a lot of stuff (including almost all the
include-server files). Updated it to get it all now. Likewise,
updated "make clean" and its cousins to be more precise. Also made
"make distcheck" more careful in checking that kind of thing.
6) Declared more phony targets .PHONY.
7) The include-server build commands do a lot of 'cd'-ing (since
setup.py requires it), and then using make variables that might
store relative directory paths. I now go through some hoops to
make those directory paths absolute before the cd.
8) "make pump-check" was not setting the path, so it was using the
installed distcc instead of the local one in the client. Fixed
that, and added a new target, "make pump-installcheck", to use the
installed distcc instead (parallel to the maintainer-check and
maintainer-installcheck targets).
configure.ac:
1) popt test was using $srcdir rather than required ${srcdir}, and
thus was always getting the empty string. (Luckily, srcdir is
usually ".", and the empty string is usually equivalent.)
Likewise when setting CPPFLAGS, which again didn't matter because
it turns out the relevant code was redundant with what autoconf
already does automatically.
2) A merge error: apparently the avahi check was added twice. Get rid
of the second one.
3) Was using obsolete AC_OUTPUT format. Use AC_CONFIG_FILES instead.
4) Added pkg.m4 to the m4/ directory. Before it only lived in
autoconf.m4. But my system, at least, doesn't have it.
5) include-server requires python2.4, so remove checks for earlier
pythons.
autogen.sh:
1) Added aclocal call. I think it was a bug that it was left out
before.
pump.in:
1) Fixed it to notice when it can't find the .so file it needs.
I also modified INSTALL to point to the new file locations, and the
new instructions to run them (eg no more run_all_autoconf.sh).
Despite all these bugfixes, I made the minimal changes possible to get
things to work. I marked with "TODO" further improvements I'd like to
make later.
One particular TODO is that I had to rename the "distcc" target -- the
main executable -- because it conflicts with the existing distcc
directory. This is a temporary breakage which will be fixed in the
next submit after this one, where I move the subdirs under distcc to
the top level, getting rid of the artificial extra directory
introduced.
Tested by running 'make maintainer-check', 'make distcheck', and 'make
pump-check' on my local machine, which passed. I've not tested all
the various configurations and options (including using avahi, using
the library popt library, building without python, etc). I've also
not tried 'make benchmark'.
Reviewed by klarlund@google.com and fergus@google.com
|
|
|