Jun Omae <jun66j5@gmail.com>


Patch Suggested
r1877338, r1877259, r1869853, r1869403, r1869193 r1870561, r1870217

r1869193 | futatuki | 2019-10-31 01:30:41 +0000 (Thu, 31 Oct 2019)

On branch swig-py3: Remove .swig_{pl,py,rb}_checked files on reconfiguration
and distclean task.

* Makefile.in (clean-swig-pl, clean-swig-py, clean-swig-rb):
  Remove .swig_<lang>_checked file.

 * configure.ac
   Remove .swig_<lang>_checked files on reconfiguration. 

Patch by: Jun Omae <jun66j5{_AT_}gmail.com>


r1869403 | futatuki | 2019-11-05 14:12:09 +0000 (Tue, 05 Nov 2019)

Avoid deprecation warnings about PY_SSIZE_T_CLEAN since Python 3.8

On Python C API, use of # variants of formats in parsing or building value,
(e.g. PyObject_CallFunction(), etc) without PY_SSIZE_T_CLEAN defined
raises DeprecationWarning since Python 3.8 [1][2]. As PY_SSIZE_T_CLEAN
feature was introduced in Python 2.5 and we only support Python >= 2.7,
there is no compatibility problem to use it.

[1] https://docs.python.org/3/whatsnew/3.8.html#changes-in-the-c-api
[2] https://docs.python.org/3/c-api/arg.html#arg-parsing

* subversion/bindings/swig/python/libsvn_swig_py/swigutil_py.c
  (PY_SSIZE_T_CLEAN): New definition
  (change_dir_prop, change_file_prop, parse_fn3_set_revision_property,
   parse_fn3_set_node_property, write_handler_pyio): Cast the length
   argument of '#' variants of formats to build Python argment value,
   to Py_ssize_t. 

Patch by: Jun Omae <jun66j5{_AT_}gmail.com>


r1869853 | hartmannathan | 2019-11-15 14:09:09 +0000 (Fri, 15 Nov 2019)

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


r1870217 | futatuki | 2019-11-23 10:08:30 +0000 (Sat, 23 Nov 2019)

Follow up to r1870204: Fix encoding to decode bytes data from stderr 

* tools/server-side/svn-backup-dumps.py (SvnBackup.exec_cmd_unix):
 - Decoding the data from 'svnadmin dump' as 'utf-8' causes crash when 
  LC_CTYPE is not 'utf-8'. So we use sys.stdout.encoding which is set
  by environment instead.

Suggested by: Jun Omae <jun66j5{_AT_}gmail.com>

 - remove white space after printing each stderr output



r1870561 | futatuki | 2019-11-28 17:16:38 +0000 (Thu, 28 Nov 2019)

Follow up to r1870204,r1870217,r1870266: Reduce work to communicate to child 

* tools/server-side/svn-backup-dumps.py (SvnBackup.exec_cmd_unix):
  - Use Popen.communicate if output is None.
  - Pass stdout of the parent to the child process as stderr directly if
   printerr is True, to avoid extra encode/decode on py3 and buffering. 

Suggested by: Jun Omae <jun66j5{_AT_}gmail.com>


r1877259 | brane | 2020-05-01 13:23:50 +0000 (Fri, 01 May 2020)

* subversion/bindings/swig/python/libsvn_swig_py/swigutil_py.c
  (svn_swig_py_stringhash_from_dict,
   svn_swig_py_mergeinfo_from_dict,
   svn_swig_py_prophash_from_dict): Move variable declarations to
    the start of block the to fix syntax errors with VC9.

Patch by: Jun Omae <jun66j5{_AT_}gmail.com>


r1877338 | futatuki | 2020-05-04 04:43:37 +0000 (Mon, 04 May 2020)

* build/generator/gen_win_dependencies.py (GenDependenciesBase._find_python):
 Fix differences of SWIG_PY_OPTS between Unix and Windows.
 (Just same logic as function SVN_FIND_SWIG in build/ac-macros/swig.m4)

Patch by: Jun Omae <jun66j5{_AT_}gmail.com>