Checkout Tools
  • last updated 32 mins ago
Constraints: committers
Constraints: files
Constraints: dates

Changeset 857842 is being indexed.

Eliminate the use of 'test -a' and 'test -o' from configure.

These operators are not POSIX compliant and apparently have strange

operator precedence issues in some environments. No functional changes.

Patch by: Peter Samuelson <>


Replace 'test -a' and 'test -o' with '&& test' and '|| test'


[in build/ac-macros]

* apr.m4, aprutil.m4, java.m4, neon.m4, svn-apache.m4, swig.m4


  1. … 6 more files in changeset.
Only allow SWIG 1.3.24 or SWIG 1.3.25. Other versions of SWIG are currently

incompatible with the Subversion bindings.

* build/ac-macros/swig.m4 (SVN_FIND_SWIG),


subversion/bindings/swig/INSTALL: Only allow SWIG 1.3.24 or SWIG 1.3.25.

  1. … 2 more files in changeset.
The setup of the preprocessor define SVN_SWIG_VERSION was damaged.

However, it was scarcely used, so convert the only use to use SWIG_VERSION

instead, and remove the remains of SVN_SWIG_VERSION support.

* build/ac-macros/swig.m4: Don't AC_SUBST(SWIG_VERSION).

* build/generator/ Don't output a -DSVN_SWIG_VERSION=foo.

* build/generator/

(WinGeneratorBase.get_win_defines): Remove references to self.swig_defines.

(WinGeneratorBase._find_swig): Don't set self.swig_defines.

* subversion/bindings/swig/core.i:

Standardize the format of number used with SWIG_VERSION.

* subversion/bindings/swig/include/apr.swg:


  1. … 4 more files in changeset.
Remove unnecessary complication in Makefile SWIG clean rules.

* (clean): Do not use AC_SUBSTed SWIG_CLEAN_RULES, use plain

clean-swig target instead.

(clean-swig): New target, simply listing each individual SWIG language clean


* build/ac-macros/swig.m4: Remove SWIG_CLEAN_RULES everywhere.

  1. … 1 more file in changeset.
Check that distutils module exists when configuring Python bindings.

* build/ac-macros/swig.m4

(SVN_FIND_SWIG): Warn if distutils module cannot be found.

* build/

Output "none" if distutils module cannot be found.

Suggested by: julianfoad

  1. … 1 more file in changeset.
Merge python-bindings-improvements to trunk, by comparing trunkURL with


Major changes:

* Always build SWIG headers in the build dir, unless we are still using

pristine SWIG headers from an official Subversion release (r15865).

* Enable SWIG bindings, even if we compile --without-swig. In release builds,

we can build the bindings without SWIG (r15857).

* Refactor SWIG generator to use a modular architecture, separate from the

Unix / Windows generators (r15855).

Minor changes:

* See r15879, r15870, r15868, r15867, r15857, and r15856.

Approved by: jerenkrantz

  1. … 17 more files in changeset.
Merge python-bindings-improvements to trunk, by comparing trunkURL with


New features:

- Automated Test Suite

* Test suite for memory pools (r15396, r15462)

* Test suite for FS library (r15590, r15632)

* In-build-directory testing (r15478)

* Nightly smoke tests (r15505)

- Automatic Memory Management

* Autogenerated proxy classes for SVN structs (r15428)

* Hand-written proxy classes for APR structs (r15484)

* Real reference counting for Pool objects (r15489, r15495, r15500)

* Treat svn_string_t objects as Python strings (r15595)

* Optional Pool Arguments (r15370, r15529)

- Better Documentation and error messages

* Enabled SWIG autodoc feature (r15490)

* Report assertion failures when variables are deleted prematurely

(r15488, r15489, r15492)

* Python argument numbers in error messages (r15460, r15493, r15525)

- Streamlined build process

* Release versions of Subversion bindings can be built without SWIG (r15620,

r15623, r15626, r15635, r15636, r15637, r15642, r15643)

* Automatic dependency checking for SWIG files (r15381, r15405, r15426,

r15429, r15430)

* Makefile rule for clean-swig-py (r15476)

- Other changes

* Compile-time type lookups for SWIG (r15396, r15407, r15408, r15409,

r15412, r15417)

* Move SWIG includes into include directory (r15407, r15408, r15413)

* Refactoring (r15411, r15425, r15453, r15521, r15522, r15527, r15559)

* SWIG bindings compile with Microsoft Visual C++ 6.0 (r15644)

* Minor bugfixes (r15409, r15494, r15496, r15497, r15498, r15499, r15501,

r15511, r15519, r15526, r15565, r15566, r15591, r15592, r15603, r15607,

r15645, r15646, r15653, r15579)

To see commit logs for this feature, examine

/branches/python-bindings-improvements, r15365:15846

Approved by: kfogel

Review by: dberlin




Testing by: Troy Straszheim <>

Christian Boos <>


  1. … 53 more files in changeset.
Add '--with-ruby-test-verbose' option to configure script for changing

output level of Ruby bindings tests.



(check-swig-rb): Add '--verbose' option.

* build/ac-macros/swig.m4(SVN_FIND_SWIG):

Add '--with-ruby-test-verbose' option.

  1. … 1 more file in changeset.
Fix link command configuration for Ruby bindings.

* build/ac-macros/swig.m4

(AC_CACHE_CHECK([how to link Ruby extensions])): Use '\S+'

instead of '\w+' for detecting compiler name.

Make the errors that happen when a user executes "make swig-py", but the

Python bindings were not configured, a tiny bit less obscure.

* build/ac-macros/swig.m4


Set variables which define commands to "none",

rather than "", when the relevant bindings language is not configured.

Remove the configure option --enable-swig-bindings entirely. It did not

actually enable anything. All it did was to conditionally skip a few

configure tests, whilst its presence made the swig build system just that

little bit more incomprehensible.

* build/ac-macros/swig.m4

(AC_ARG_ENABLE(swig-bindings)): Delete.


(SVN_FIND_SWIG): Do not test $svn_swig_bindings_enable_foo variables.

Remove the SWIG-Java bindings.


* build.conf:

* build/ac-macros/swig.m4:

* build/generator/

* build/generator/

* subversion/bindings/java/README:

* subversion/bindings/swig/INSTALL:

* subversion/bindings/swig/apr.i:

* subversion/bindings/swig/core.i:

* subversion/bindings/swig/svn_client.i:

* subversion/bindings/swig/svn_delta.i:

* subversion/bindings/swig/svn_fs.i:

* subversion/bindings/swig/svn_ra.i:

* subversion/bindings/swig/svn_repos.i:

* subversion/bindings/swig/svn_string.i:

* subversion/bindings/swig/svn_types.i:

* subversion/bindings/swig/svn_wc.i:

Remove SWIG-Java bindings. Many changes.

  1. … 16 more files in changeset.
Merge the ruby branch to trunk.

  1. … 46 more files in changeset.
* build/ac-macros/swig.m4: Tweak the APR_INT64_T_FMT regexps to take

account of Forte whitespace handling. (It prepends whitespace.)

* build/ac-macros/swig.m4: Tweak the APR_INT64_T_FMT regexps to take

account of gcc-2.95 whitespace handling.

Followup to r12717 - fix typo

Suggested by: Kouhei Sutou <>

* build/ac-macros/swig.m4: Fix missing parenthesis.

SWIG 1.3.24 compatibility.

Patch by: John Lenz <>



* subversion/bindings/swig/core.i: Add a typemap which (I think) is

compensating for a defect in SWIG 1.3.24.

* subversion/bindings/swig/python/libsvn_swig_py/swigutil_py.c:

* subversion/bindings/swig/perl/libsvn_swig_perl/swigutil_pl.c:

For 1.3.24+, include the SWIG runtime code inline in the libsvn_swig_py and

libsvn_swig_perl libraries.

* subversion/bindings/swig/python/libsvn_swig_py/swigutil_py.h:

* subversion/bindings/swig/perl/libsvn_swig_perl/swigutil_pl.h:

For 1.3.24+, do not use the old 'declare SWIG runtime functions' code.

* subversion/bindings/swig/perl/native/

* build/generator/ (WinGeneratorBase.get_proj_sources):

For 1.3.24+, use neither -noruntime or -c.

* build/ac-macros/swig.m4:

Accept SWIG 1.3.24+.

For 1.3.24+, use neither -noruntime or -c.

New AC_SUBSTed values LSWIGPL and LSWIGPY, defined to '-lswigpl' and

'-lswigpy' for old SWIG versions, and to empty strings for 1.3.24+.

Update versions-required message.

* build/generator/ (TargetSWIGRuntime.__init__): Use $(LSWIGPL) and

$(LSWIGPY), instead of -lswigpl and -lswigpy.

  1. … 9 more files in changeset.
Fix breakage with APR not in /usr, introduced in r12557.

* build/ac-macros/swig.m4: Add the APR includes to CPPFLAGS whilst trying to

include <apr.h>.

Python bindings: Make svn_client_blame() usable, by thunking the callback.

ATTENTION: This breaks the Windows Python bindings build!

I have left what I believe to be the appropriate fix commented out in

svn_private_config.hw, for someone who can test it to review and uncomment.

* build/ac-macros/swig.m4: Deduce the appropriate Python/C API format character

for apr_int64_t, and define it in svn_private_config.h.

* subversion/bindings/swig/python/libsvn_swig_py/swigutil_py.c:

Include svn_private_config.h.

(svn_swig_py_client_blame_receiver_func): New function.

* subversion/bindings/swig/python/libsvn_swig_py/swigutil_py.h:

(svn_swig_py_client_blame_receiver_func): Declare new function.

* subversion/bindings/swig/svn_client.i: New typemap, using the new function.

* subversion/svn_private_config.hw: Add info to help someone fix the Windows


  1. … 4 more files in changeset.
Fix the error message to tell which versions of swig are required.

* build/ac-macros/swig.m4

Only 1.3.19, 1.3.20 and 1.3.21 work.

Update our configure test and docs to show what versions of SWIG we actually

work with.

* subversion/bindings/swig/INSTALL

Update version range.

* build/ac-macros/swig.m4

Update version range for the test.

  1. … 1 more file in changeset.
Remove some confusing syntax pointed out by ghudson.

* build/ac-macros/swig.m4

test doesn't need square brackets around it.

Prefer -o over two test invocations with ||

Make configuration of SWIG location a little more user friendly.

* build/ac-macros/swig.m4

Handle the possibility that they're passing the path to the swig binary.

If the path they give is not to the binary itself or the prefix swig is

installed in immediately error out. Note that this will not cause an

error unless the users is explicitly passing the path to swig. Users

without SWIG installed can continue to build as they always have.

Explicitly link the python bindings against libpython.

* New substitution variable, SWIG_PY_LIBS.

* build.conf: Add SWIG_PY_LIBS to the libsvn_swig_py link.

* build/ac-macros/swig.m4: Set and substitute SWIG_PY_LIBS.

* build/ New --libs option to provide SWIG_PY_LIBS.

Teach how to escape OS X -framework options so libtool doesn't eat them.

Teach how to add extra library arguments on Cygwin, like distutils does.

  1. … 3 more files in changeset.
Revert the effects of r10233 and r10236 on unix. These changes caused

the build system to include swig runtime functions in our swig "core"

modules so we wouldn't have to depend on external swig runtime

libraries. But they also caused a few problems.

1) They caused a libtool error on linux


Putting the runtime into the core module meant that the other modules

would need to be linked to it to access the runtime. Libtool would do

the linking correctly during the initial build, but when it relinked

the libraries during installation it would try invoke gcc with -l_core,

which doesn't work because core modules have names like, not This is probably a bug in libtool.

2) They don't work on cygwin because they create mutual dependencies

between core modules and libsvn_swig_(perl|py|java) modules. On cygwin,

libtool can't make two shared libraries which depend on each other.

A solution to this which was never committed was to build the

libsvn_swig_* libraries as static libraries.


3) They don't work on darwin. Having other modules depend on the core

modules is no good on darwin because the core moules are built

as dynamically loadable libraries, not dynamically linked libraries

on that platform. On darwin, a library can be either dynamically

loadable or dynamically linked, but not both.


* build/ac-macros/swig.m4:


revert r10236

* build/generator/

(SWIGObject._init_, TargetSWIG.add_dependencies):

revert r10236

(TargetSWIGRuntime, TargetSWIG.add_dependencies):

undo effects of r10233 on unix build, restore dependency on external

swig runtime libraries

* build.conf

(swig_client, swig_delta, swig_fs, swig_ra, swig_repos, swig_wc):

undo effects of r10233 on unix build, make dependencies on

"swig_core" into "nonlib" dependencies so they only show up

on windows

  1. … 4 more files in changeset.
Get python bindings to build on unix and to not depend on an external

swig runtime library.

* build/ac-macros/swig.m4:


new make variable for swig -runtime option



use separate commands for running swig with and without runtime

* build.conf


use "nonlibs" dependency on "swig_core" instead of "libs" dependency

to avoid circular dependency error in make

* build/generator/

(SWIGObject.__init__, TargetSWIG.add_dependencies):

add new "target" member to swig objects to expose more build

information to make backend

* build/generator/


use "include-runtime" values on swig targets to determine whether to

call swig with runtime or not

  1. … 4 more files in changeset.
Fix incorrect quoting in swig.m4.

* build/ac-macros/swig.m4

Use [] not "".

No longer build any bindings code by default, per agreement with sussman,

cmpilato and myself on IRC.


Remove SWIG_BUILD_RULES from local-all, SWIG_INSTALL_RULES from local-install.

* build/ac-macros/swig.m4



Update the Perl documentation, now that it isn't built by default.

  1. … 2 more files in changeset.
Add test for perl version to disable perl bindings if not 5.8.0 or newer.

Also remove some cruft from the old build setup.


Remove SWIG_PL_COMPILE and SWIG_PL_LINK which are unused.

SWIG_PL_INCLUDES doesn't need the path to libsvn_swig_perl.

* build/ac-macros/swig.m4

Remove SWIG_PL_COMPILE and SWIG_PL_LINK which are unused.

Add test for perl version newer than 5.8.0.

  1. … 1 more file in changeset.
Finish up making the Perl binding build integrated into the Subversion mainline

build process. In the process make the Perl bindings build a lot smarter about

dependcies! Also the Perl bindings will now build and install by default if

they are enabled.



they are unused now.

Add SWIG_PL_DIR to make things more readable.

Add PERL variable to acquire the PERL detected by configure.

Add SWIG_CLEAN_RULES to the local-clean target.

Add target to build the Perl Makefile from Makefile.PL

Add targets to build, check/test, install and clean the perl bindings.

* build.conf

Remove the perl bindings from build.conf so the Python generator won't

generate the wrong targets that don't work. But leave in the configuration

for libsvn_swig_perl, the support library, that the mainline build already

knew how to build properly.

* build/ac-macros/swig.m4

Enable Perl bindings to build and install by default.

Add SWIG_CLEAN_RULES and set it so clean-swig-pl can be called by the

clean target.

* subversion/bindings/swig/perl/native

Add Makefile.PL to the svn:ignore property.

* subversion/bindings/swig/perl/native/

Add dependency on the relevent library we're binding so if the library is

changed the bindings will be rebuilt.

* subversion/bindings/swig/INSTALL

Update documentation to match the new and improved build process.

  1. … 5 more files in changeset.