Checkout Tools
  • last updated 7 hours ago
Constraints
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/proxy.py

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

(BUILDING SWIG BINDINGS FOR SVN ON UNIX, Step 1): Update supported

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

is not supported).

Patch by: Jun Omae <jun66j5_{AT}_gmail.com>

Review by: brane

futatuki

julianfoad

  1. … 3 more files in changeset.
Improve SWIG 'INSTALL' documentation

* subversion/bindings/swig/INSTALL

(BUILDING SWIG BINDINGS FOR SVN ON UNIX, Step 1 and Step 1a):

- Attempt to make the explanation more clear, especially regarding

which versions of SWIG we support for the Python, Perl, and Ruby

bindings. Also fix a few minor grammar and spelling errors.

Suggested by: danielsh

brane

julianfoad

Restrict SWIG version for Python bindings

* Makefile.in (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

(BUILDING SWIG BINDINGS FOR SVN ON UNIX, Step1):

- Add description that SWIG installation is optional.

- Update suitable SWIG version information per language bindings.

(BUILDING SWIG BINDINGS FOR SVN ON UNIX, Step1a): Fold long line.

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

  1. … 2 more files in changeset.
Merge the swig-py3 branch to trunk.
  1. … 61 more files in changeset.
Fix Python bindings with SWIG < 3.0.6, followup on 1721488.

“%pythoncode { ... }” had to be changed to “%pythoncode %{ ... %}” to avoid

macro expansion (done in r1721488). This was a latent bug in the bindings

exposed by stricter parsing in SWIG 3.x.

However, there was a bug in SWIG through 3.0.6 which would remove part of the

commented lines inside the “%pythoncode %{ ... %}” block. This caused the

"right" fix to break everywhere except 3.0.6+.

As discussed in the SWIG bug tracker[0], an alternative form of the pythoncode

directive can be used to inline the contents of a specified file. Use of this

form works in all supported SWIG versions.

[0]: https://github.com/swig/swig/issues/379#issuecomment-107664345

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

(proxy_pythoncode): Copy %pythoncode contents to ...

* subversion/bindings/swig/include/proxy.py:

... new file which is included in proxy.swg via “%pythoncode "..."”

directive.

* build/ac-macros/swig.m4

subversion/bindings/swig/INSTALL:

Remove 3.x related SWIG restrictions. All SWIG versions are supported again.

  1. … 3 more files in changeset.
Enable building bindings with SWIG >= 3.0.6

This reinstates r1690591 and adds the minimum version checks for SWIG

proposed by Joe Orton in http://svn.haxx.se/dev/archive-2015-07/0028.shtml.

* build/ac-macros/swig.m4,

subversion/bindings/swig/INSTALL:

Change version check and documentation to allow SWIG >= 3.0.6

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

Use %{ %} with %pythoncode so comments avoid the SWIG processor,

fixing the bindings with SWIG >= 3.0.6.

  1. … 2 more files in changeset.
Require Python ≥2.7 for Subversion 1.9, part 1: documentation and dependency

version checks.

* INSTALL

(I.C. Dependencies in Detail):

Document that Python 2.7 is required.

Add statement about Python 3.x.

* subversion/tests/cmdline/README,

* subversion/bindings/swig/INSTALL:

Document that Python 2.7 is required.

* autogen.sh,

* build/find_python.sh,

* configure.ac,

* Makefile.in (check),

* subversion/tests/cmdline/svntest/__init__.py:

Update comments, version number checks, and error messages.

  1. … 7 more files in changeset.
* subversion/bindings/swig/INSTALL: Update to mention not to use 3.0.0 or newer.

Update swig INSTALL to current status
swig-py: Belatedly document importing fully-qualified C function names.

* subversion/bindings/swig/INSTALL

Teak wording.

* subversion/bindings/swig/python/README

Document the alternatives in detail.

  1. … 1 more file in changeset.
Update the SWIG bindings docs.

* subversion/bindings/swig/INSTALL

Run 'make' in the 'build' tree, not the 'source' tree. Split the 'testing

and using' section into separate sections. Expand the 'using' section for

Python.

* subversion/bindings/swig/python/README

Write better code examples.

  1. … 1 more file in changeset.
Require Python >=2.5.

* configure.ac,

* INSTALL,

* autogen.sh,

* Makefile.in,

* subversion/bindings/swig/INSTALL,

* subversion/tests/cmdline/README:

Update docs and warnings.

* build/find_python.sh,

* subversion/tests/cmdline/svntest/__init__.py:

Require Python >= 2.5.

  1. … 7 more files in changeset.
Remove check for maximal version of SWIG.

* build/ac-macros/swig.m4

(SVN_FIND_SWIG): Remove check for maximal version of SWIG.

* subversion/bindings/swig/INSTALL: Update documentation.

  1. … 1 more file in changeset.
Support SWIG 2.0.2.

* build/ac-macros/swig.m4

(SVN_FIND_SWIG):

* subversion/bindings/swig/INSTALL: Support SWIG 2.0.2.

  1. … 1 more file in changeset.
Fix comparisons of SWIG version in build system. Previously

generator.swig.Generator.version() was returning 20001 for SWIG 2.0.1, which

was incorrectly compared with hardcoded integers corresponding to SWIG 1.3.2*

(e.g. 103024 for SWIG 1.3.24).

This change also fixes building of Ruby bindings with SWIG 2.0.0 and 2.0.1.

* build/generator/swig/__init__.py

(Generator.version): Return a tuple of integers instead of

a single integer.

* build/generator/swig/checkout_swig_header.py

(Generator.checkout, Generator._skip_checkout):

* build/generator/swig/external_runtime.py

(Generator.write_external_runtime): Compare tuples returned by

generator.swig.Generator.version() with tuples of integers.

* build/ac-macros/swig.m4

(SVN_FIND_SWIG):

* subversion/bindings/swig/INSTALL: Declare SWIG 2.0.1 supported.

  1. … 4 more files in changeset.
Replace tabs with spaces.

* subversion/bindings/swig/INSTALL,

subversion/bindings/swig/NOTES,

subversion/tests/README,

subversion/libsvn_diff/diff.h,

subversion/libsvn_ra_neon/log.c,

subversion/libsvn_ra_serf/auth_kerb.c,

subversion/libsvn_ra_serf/auth_kerb.h,

subversion/libsvn_repos/commit.c,

subversion/libsvn_subr/quoprint.c,

subversion/libsvn_subr/simple_providers.c,

subversion/libsvn_subr/stream.c,

subversion/svn_private_config.hw,

subversion/tests/cmdline/commit_tests.py,

subversion/tests/cmdline/depth_tests.py,

subversion/tests/libsvn_diff/diff-diff3-test.c

Replace tabs with spaces.

  1. … 14 more files in changeset.
Update swig Python bindings install notes.

* subversion/bindings/swig/INSTALL

(6. Install the bindings): Update windows install.

Require Python >=2.4.

* build/find_python.sh: Require Python >=2.4.

* subversion/tests/cmdline/svntest/__init__.py: Require Python >=2.4.

* tools/hook-scripts/svn2feed.py: Require Python >=2.4.

* autogen.sh: Update error message.

* configure.ac: Update warning.

* Makefile.in

(check): Update error message.

* INSTALL

(Dependencies in Detail, Building the Latest Source under Windows): Update.

* subversion/bindings/swig/INSTALL

(BUILDING SWIG BINDINGS FOR SVN ON UNIX): Update.

* subversion/tests/cmdline/README: Update.

  1. … 8 more files in changeset.
Tweak the instructions for installing Python bindings, as I had some

difficulty.

* subversion/bindings/swig/INSTALL

(BUILDING SWIG BINDINGS FOR SVN ON UNIX): Clarify setting the Python search

path, and note that you may need to update your dynamic linker

configuration afterwards.

* INSTALL

* Makefile.in

* autogen.sh

* build/find_python.sh

* configure.ac

* subversion/bindings/swig/INSTALL

* subversion/tests/cmdline/README

* subversion/tests/cmdline/svntest/__init__.py

Bump Python requirement to 2.2 (released over 5.5 years ago).

  1. … 7 more files in changeset.
* subversion/bindings/swig/INSTALL: Remove note about svn.ra Python

  1. … 1 more file in changeset.
Increase SWIG upper bound to 1.3.31.

* build/ac-macros/swig.m4

* subversion/bindings/swig/INSTALL

  1. … 1 more file in changeset.
Auto-detect the Python include and library dirs on Win32 for SWIG's use.

* build/generator/gen_win.py

(__init__): Discover our Python options.

(get_win_includes): Add in our Python include directories.

(get_win_lib_dirs): Add in our Python library directory for Win32.

(_find_python): Ask distutils.sysconfig where we can find our dirs.

* subversion/bindings/swig/INSTALL: Update documentation with helpful notes.

  1. … 1 more file in changeset.
Update the bindings INSTALL document to note check-swig-py make

target.

Patch by: Bhuvaneswaran Arumugam <bhuvan@collab.net>

(Tweaked by cmpilato.)

* subversion/bindings/swig/INSTALL:

Update the document to include the "make check-swig-py" command to

test python bindings and quote the commands where it was missing.

We seem to be working just fine with SWIG 1.3.29 already, so bump the stated

prerequisite versions.

* subversion/bindings/swig/INSTALL: Increase maximum SWIG version to 1.3.29.

* build/ac-macros/swig.m4: Ditto.

  1. … 1 more file in changeset.
* subversion/bindings/swig/INSTALL

Capitalize the proper names "Perl", "Python", and "Ruby" where

appropriate.

* subversion/bindings/swig/INSTALL: Document how to install the perl

bindings in a directory other than the system perl directory.

Followup to r18491: update documentation to reflect that SWIG 1.3.28 is

compatible with Subversion.

* subversion/bindings/swig/INSTALL

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

Update list of acceptable SWIG versions to include SWIG 1.3.28.

  1. … 1 more file in changeset.
Update documentation to reflect that SWIG 1.3.26 and 1.3.27 are compatible with

Subversion.

Suggested by: julianfoad

* subversion/bindings/swig/INSTALL

Update list of acceptable SWIG versions to include SWIG 1.3.26 and 1.3.27.

* subversion/bindings/swig/NOTES

Remove warning about required versions of SWIG. Instead, folks can look in

INSTALL to find the list of acceptable SWIG versions.

* build/ac-macros/swig.m4

(SVN_FIND_SWIG): Clarify warning text. Remove subversion/bindings/swig/NOTES

from list of locations which contain version numbers.

  1. … 2 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/NOTES,

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

  1. … 2 more files in changeset.