Checkout Tools
  • last updated 5 hours ago
Constraints: committers
Constraints: files
Constraints: dates
Support building with SWIG 4 on Python 3.x

* build/ac-macros/swig.m4

(SVN_FIND_SWIG): Allow building with SWIG 4+, and add -modern option

when Python 3 and SWIG 3.x are detected.

* subversion/bindings/swig/include/

Use _get_instance_attr and _set_instance_attr.

* subversion/bindings/swig/include/proxy.swg

(_get_instance_attr): New function to get an instance attribute

without metadata for new-style and old-style classes.

(_set_instance_attr): New function to set an instance attribute for

new-style and old-style classes.

* subversion/bindings/swig/INSTALL


SWIG versions for Python 3 bindings (remove the note that SWIG 4+

is not supported).

Patch by: Jun Omae <jun66j5_{AT}>

Review by: brane



  1. … 3 more files in changeset.
Restrict SWIG version for Python bindings

* (copy-swig-py:):

Make symbolic links to C extension modules in build/test directory

(for check-swig-py with SWIG 3.0.9 and SWIG 4.0 or later)

* build/ac-macros/swig.m4:

Add SWIG version check for Python 2 and Python 3 to check its version

is suitable for Python bindings, and to set up appropriate SWIG option.

Review by: hartmannathan

* subversion/bindings/swig/INSTALL


- Add description that SWIG installation is optional.

- Update suitable SWIG version information per language bindings.


(USING SWIG BINDINGS, Python): Update URLs for ViewVC and Trac.

  1. … 2 more files in changeset.
Merge the swig-py3 branch to trunk.
    • ?
  1. … 48 more files in changeset.
Unit test driver: Reinstate SUMMARY and tweak newlines at end of tests

* build/

( Reinstate printing SUMMARY; move the extra

newline from 'Python version' line to 'SUMMARY' line.

* build/

( Tweak new output.

Print the Python version used by the unit test driver.

* build/ ( Print the interpreter version

in the test summary.

* build/generator/

(TargetExe.add_dependencies): Add 'svnmover' as another special case,

so 'make davautocheck' will work correctly without 'make svnmover'

or 'make tools' having been run before it.

Found by: danielsh

Fix link flags and include directory in pkg-config template

* build/generator/

(write_pkg_config_dot_in_files): Add version variable for template.

Include version in link flag for svn lib.

* build/generator/templates/

(): Add /subversion-1 to include path

Fix format of Requires(.private) fields in pkg-config files

Per pkg-config(1), the field "is a comma-separated list of packages that are

required by your package", not a space-separated field.

* build/generator/templates/

(): Generate comma-separated lists for Requires(.private)


(old_gnome_keyring): Use a comma separated list for SVN_GNOME_KEYRING_PCLIBS

  1. … 1 more file in changeset.
* build/generator/

(quote_value): Fix yet another stupid bug introduced by remote testing :(.

* build/generator/

(quote_define): Fix another stupid typo.

Following up on r1860175, fix typo in python code.

* build/generator/

(quote_define): Add missing ':'.

Fix compiling Subversion with Visual Studio 2005 and 2008 by properly escaping

the e-mail address we use for the Win32 crash handler.

* build/generator/

(quote_define): New function

* build/generator/

(get_win_defines): Quote e-mail address in defines.

(quote_define): Add function (stub).

Get rid of apr_int64_t format string check in swig py configure.

This check relied on APR implementation details and broke with APR 1.7.0.

Rather than trying to guess a perfect format string to use, just use the

largest possible format and cast the argument accordingly.

Should fix build against APR 1.7.0 and later.

Suggested by: brane

* build/ac-macros/swig.m4: Remove code related to SVN_APR_INT64_T_PYCFMT.

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

(svn_swig_py_client_blame_receiver_func): Stop relying on the

SVN_APR_INT64_T_PYCFMT constant from configure. Use "L" and

acast to PY_LONG_LONG instead.

  1. … 1 more file in changeset.
Add support for generating Microsoft Visual Studio 2019 project files.

* build/generator/

(parse_options): Add magic numbers for Visual Studio 2019.

Switch all SVN++ tests to Boost.Test.

* build/ac-macros/ax_boost_unit_test_framework.m4: New; imported from the Autoconf Archive.

* LICENSE: Add entry for ax_boost_unit_test_framework.m4.

* aclocal.m4: Include ax_boost_unit_test_framework.m4.



(BOOST_TEST_LDFLAGS): Rename from BOOST_LDFLAGS, redefine.

(COMPILE_SVNXX): Rename from COMPILE_SVNXX_CXX, redefine.


(LINK_SVNXX_TEST): Rename from LINK_CXX_BOOST, redefine.

* build.conf

(libsvnxx, svnxx-tests): Update compile and link commands.

* Update SVN++ bits.

* subversion/bindings/cxx/src/aprwrap/array.hpp:

Add comments to mark obsolete constructs that should change to C++11 idiom.

* subversion/bindings/cxx/src/aprwrap/hash.hpp: Likewise.

* subversion/bindings/cxx/tests/cxxhl-tests.cpp.

* subversion/bindings/cxx/tests/test_aprwrap.cpp: Removed.

* subversion/bindings/cxx/tests/svnxx-tests.cpp,

* subversion/bindings/cxx/tests/fixture_initialize_apr.hpp,

* subversion/bindings/cxx/tests/test_aprwrap_array_helpers.hpp: New.

* subversion/bindings/cxx/tests/test_aprwrap_arrays.cpp,

* subversion/bindings/cxx/tests/test_aprwrap_const_arrays.cpp,

* subversion/bindings/cxx/tests/test_aprwrap_hashes.cpp,

* subversion/bindings/cxx/tests/test_aprwrap_pools.cpp: New; extracted from the

removed test_aprwrap.cpp and reworked for Boost.Test.

* subversion/bindings/cxx/tests/test_exceptions.cpp: Renamed from test_exception.cpp

and reworked for Boost.Test.

    • ?
  1. … 18 more files in changeset.
Add optional dependency on the Boost C++ libraries for the SVN++ test suite.

* build/ac-macros/ax_boost_base.m4: New; imported from The Autoconf Archive.

* LICENSE, NOTICE: Document the license for ax_boost_base.m4.

* aclocal.m4: Inlcude build/ac-macros/ax_boost_base.m4

* build.conf

(options.private-includes): Add headers from subversion/bindings/cxx/tests.

(svnxx-tests): Declare test target for SVN++.

* Check for Boost availability.



(COMPILE_SVNXX_CXX_BOOST, LINK_CXX_BOOST): New compile and link commands.

  1. … 6 more files in changeset.
Rename the C++HL library to SVN++, renaming files, namespaces and directories.


(SVNXX_INCLUDES): Renamed and changed from CXXHL_INCLUDES.

(COMPILE_SVNXX_CXX): Renamed and changed from COMPILE_CXXHL_CXX.

* build.conf

(options.private-includes): Update C++ bindings' header paths.

(libsvnxx): Rename and update target from libsvncxxhl.

* build/generator/

(Generator.write): Use 'svnxx-' instead of 'cxxhl-' for extra-install check.

* build/generator/

(WinGeneratorBase.get_win_includes): Check for 'svnxx', not 'cxxhl'.

* subversion/bindings/cxx/: Renamed from .../bindings/cxxhl/.

* subversion/bindings/cxx/include/svnxx/: Renamed from .../include/svncxxhl/.

* subversion/bindings/cxx/include/svnxx.hpp: Renamed from .../include/svncxxhl.hpp.

* subversion/bindings/cxx/**: Rename namespaces, include paths and guards.

  1. … 19 more files in changeset.
Switch default C++ language level to C++11 on Unix.

- "Modern" C++ (C++11 and later) has become ubiquitous.

- We already need C++11 to compile the KWallet plugin.

- JavaHL compiles in C++11 mode, otherwise it would not build on Windows

with newer versions of MSVC.

- Our core code is not affected at all.

* Display the C and C++ language level flags.

* build/ac-macros/compiler.m4

(SVN_CXX_MODE_SETUP): Switch to C++11.

(SVN_CXX_MODE_SETUP11): Remove; it's now obsolete.

* build/ac-macros/kwallet.m4

(SVN_LIB_KWALLET): Remove reference to SVN_CXX_MODE_SETUP11.

* subversion/bindings/javahl/native/RemoteSession.cpp

(compare_c_strings::operator()): Make this method const to avoid a warning.

  1. … 2 more files in changeset.
Silence warnings about macOS-specific dependencies in the Windows build.

* build/generator/

(GenDependenciesBase._optional_libraries): Added 'macos-plist' and 'macos-keychain'.

Move the Windows crash reporter mail out of the source code and into

the build generator, where it belongs.

* build/generator/ (WinGeneratorBase.get_win_defines):

Define the SVN_WIN32_CRASHREPORT_EMAIL symbol at the same time as


* subversion/libsvn_subr/win32_crashrpt.c


(svn__unhandled_exception_filter): Use SVN_WIN32_CRASHREPORT_EMAIL here.

  1. … 1 more file in changeset.
Add a test to check if our client works with GitHub's SVN bridge.

Because testing this involves connecting to a remote server, which our

test suite did not do up to now, the new test is skipped unless such

remote connections are explicitly allowed in the test run.

* (check): Add new option ALLOW_REMOTE_HTTP_CONNECTION.

* build/ Update docstring.

(create_parser): Add option --allow-remote-http-connection.

(TestHarness._init_py_tests): Propagate the option to test fixtures.

* subversion/tests/cmdline/

(connect_to_github_server): New test case.

* subversion/tests/cmdline/svntest/

(is_remote_http_connection_allowed): New predicate function.

(_create_parser): Add option --allow-remote-http-connection.

(TestSpawningThread.run_one): Propagate the option to subprocesses.

  1. … 3 more files in changeset.
Make only libsvn_subr directly depend on some macOS frameworks.

The comment in build/ac-macros/macosx.m4, which said that libtool 1.5.x

doesn't track transitive dependencies for macOS frameworks, has not been

true since libtlool-1.5.24.

Consequently, take the daring step of updating the requred libtool

version to 2.0, which is (*gasp!*) only 11 years old.



* build.conf

(macos-plist, macos-keychain): New external libraries.

(libsvn_subr): Links with macos-plist and macos-keychain.

* build/ac-macros/macosx.m4

(SVN_LIB_MACOS_PLIST): Remove obsolete comment.

Do not update LIBS, define SVN_MACOS_PLIST_LIBS instead.


* build/


Remove the special version check for libtool on Solaris.

  1. … 2 more files in changeset.
Fix search for Serf via pkg-config when the include directory contains '-D'.

* build/ac-macros/serf.m4

(SVN_SERF_PKG_CONFIG): Use "pkg-config --cflags-only-I".

Patch by: Ian Miller

Fixes #4670

Fix a bug in 'make check GLOBAL_SCHEDULER=1'.

* build/

(TestHarness.Job._command_line, TestHarness.CollectingThread._count_py_tests):

Use sys.executable.

(TestHarness._run_global_scheduler): Ask a question.

* build/ac-macros/swig.m4

(SVN_FIND_SWIG): Warn on the combination of swig-3.0.8 --with-ruby due to

a known issue.

* build/generator/ Transfer some knowledge from a log message.
* build/generator/

(_find_jdk): Fix indentation of comments (tabs -> spaces).

Fix detection of JDK 10 on Windows when --with-jdk is used.

* build/generator/

(_find_jdk): Use javac.exe instead of javah.exe for validating the

--with-jdk option. Drop the quotes from the vermatch regex, because

with javac the version number is not quoted.

Merge the 'java10-compat' branch to trunk
  1. … 3 more files in changeset.