Modified: subversion/branches/swig-py3/build/ac-macros/swig.m4
URL: 
http://svn.apache.org/viewvc/subversion/branches/swig-py3/build/ac-macros/swig.m4?rev=1847678&r1=1847677&r2=1847678&view=diff
==============================================================================
--- subversion/branches/swig-py3/build/ac-macros/swig.m4 (original)
+++ subversion/branches/swig-py3/build/ac-macros/swig.m4 Wed Nov 28 21:25:32 
2018
@@ -98,235 +98,242 @@ AC_DEFUN(SVN_FIND_SWIG,
       AC_MSG_WARN([Detected SWIG version $SWIG_VERSION_RAW])
       AC_MSG_WARN([Subversion requires SWIG >= 1.3.24])
     fi
-
-    SWIG_PY_COMPILE="none"
-    SWIG_PY_LINK="none"
-    SWIG_PY_OPTS="none"
-    if test "$PYTHON" != "none"; then
-      AC_MSG_NOTICE([Configuring python swig binding])
-
-      AC_CACHE_CHECK([for Python includes], [ac_cv_python_includes],[
-        ac_cv_python_includes="`$PYTHON ${abs_srcdir}/build/get-py-info.py 
--includes`"
+  fi
+ 
+  SWIG_PY_COMPILE="none"
+  SWIG_PY_LINK="none"
+  SWIG_PY_OPTS="none"
+  if test "$PYTHON" != "none"; then
+    AC_MSG_NOTICE([Configuring python swig binding])
+
+    AC_CACHE_CHECK([for Python includes], [ac_cv_python_includes],[
+      ac_cv_python_includes="`$PYTHON ${abs_srcdir}/build/get-py-info.py 
--includes`"
+    ])
+    SWIG_PY_INCLUDES="\$(SWIG_INCLUDES) $ac_cv_python_includes"
+
+    if test "$ac_cv_python_includes" = "none"; then
+      AC_MSG_WARN([python bindings cannot be built without distutils module])
+    else
+
+      python_header_found="no"
+
+      save_cppflags="$CPPFLAGS"
+      CPPFLAGS="$CPPFLAGS $ac_cv_python_includes"
+      AC_CHECK_HEADER(Python.h, [
+        python_header_found="yes"
       ])
-      SWIG_PY_INCLUDES="\$(SWIG_INCLUDES) $ac_cv_python_includes"
+      CPPFLAGS="$save_cppflags"
 
-      if test "$ac_cv_python_includes" = "none"; then
-        AC_MSG_WARN([python bindings cannot be built without distutils module])
+      if test "$python_header_found" = "no"; then
+        AC_MSG_WARN([Python.h not found; disabling python swig bindings])
       else
+        SVN_PY3C()
 
-        python_header_found="no"
-
-        save_cppflags="$CPPFLAGS"
-        CPPFLAGS="$CPPFLAGS $ac_cv_python_includes"
-        AC_CHECK_HEADER(Python.h, [
-          python_header_found="yes"
-        ])
-        CPPFLAGS="$save_cppflags"
-
-        if test "$python_header_found" = "no"; then
-          AC_MSG_WARN([Python.h not found; disabling python swig bindings])
+        if test "$py3c_found" = "no"; then
+          AC_MSG_WARN([py3c library not found; disabling python swig bindings])
         else
-          SVN_PY3C()
+          AC_CACHE_CHECK([for compiling Python extensions], 
[ac_cv_python_compile],[
+            ac_cv_python_compile="`$PYTHON ${abs_srcdir}/build/get-py-info.py 
--compile`"
+          ])
+          SWIG_PY_COMPILE="$ac_cv_python_compile $CFLAGS"
+      
+          AC_CACHE_CHECK([for linking Python extensions], [ac_cv_python_link],[
+            ac_cv_python_link="`$PYTHON ${abs_srcdir}/build/get-py-info.py 
--link`"
+          ])
+          SWIG_PY_LINK="$ac_cv_python_link"
+      
+          AC_CACHE_CHECK([for linking Python libraries], [ac_cv_python_libs],[
+            ac_cv_python_libs="`$PYTHON ${abs_srcdir}/build/get-py-info.py 
--libs`"
+          ])
+          SWIG_PY_LIBS="`SVN_REMOVE_STANDARD_LIB_DIRS($ac_cv_python_libs)`"
+
+          AC_CACHE_CHECK([for Python >= 3], [ac_cv_python_is_py3],[
+            ac_cv_python_is_py3="no"
+            $PYTHON -c 'import sys; sys.exit(0x3000000 > sys.hexversion)' && \
+               ac_cv_python_is_py3="yes"
+          ])
 
-          if test "$py3c_found" = "no"; then
-            AC_MSG_WARN([py3c library not found; disabling python swig 
bindings])
+          if test "$ac_cv_python_is_py3" = "yes"; then
+             SWIG_PY_OPTS="-python -py3"
           else
-            AC_CACHE_CHECK([for compiling Python extensions], 
[ac_cv_python_compile],[
-              ac_cv_python_compile="`$PYTHON 
${abs_srcdir}/build/get-py-info.py --compile`"
-            ])
-            SWIG_PY_COMPILE="$ac_cv_python_compile $CFLAGS"
-
-            AC_CACHE_CHECK([for linking Python extensions], 
[ac_cv_python_link],[
-              ac_cv_python_link="`$PYTHON ${abs_srcdir}/build/get-py-info.py 
--link`"
-            ])
-            SWIG_PY_LINK="$ac_cv_python_link"
-
-            AC_CACHE_CHECK([for linking Python libraries], 
[ac_cv_python_libs],[
-              ac_cv_python_libs="`$PYTHON ${abs_srcdir}/build/get-py-info.py 
--libs`"
-            ])
-            SWIG_PY_LIBS="`SVN_REMOVE_STANDARD_LIB_DIRS($ac_cv_python_libs)`"
-
-            AC_CACHE_CHECK([for Python >= 3], [ac_cv_python_is_py3],[
-              ac_cv_python_is_py3="no"
-              $PYTHON -c 'import sys; sys.exit(0x3000000 > sys.hexversion)' && 
\
-                 ac_cv_python_is_py3="yes"
-            ])
-
-            if test "$ac_cv_python_is_py3" = "yes"; then
-               SWIG_PY_OPTS="-python -py3"
-            else
-               SWIG_PY_OPTS="-python -classic"
-            fi
+             SWIG_PY_OPTS="-python -classic"
+          fi
 
-            dnl Sun Forte adds an extra space before substituting 
APR_INT64_T_FMT
-            dnl gcc-2.95 adds an extra space after substituting APR_INT64_T_FMT
-            dnl thus the egrep patterns have a + in them.
-            SVN_PYCFMT_SAVE_CPPFLAGS="$CPPFLAGS"
-            CPPFLAGS="$CPPFLAGS $SVN_APR_INCLUDES"
-            AC_CACHE_CHECK([for apr_int64_t Python/C API format string],
-                           [svn_cv_pycfmt_apr_int64_t], [
-              if test "x$svn_cv_pycfmt_apr_int64_t" = "x"; then
-                AC_EGREP_CPP([MaTcHtHiS +\"lld\" +EnDeNd],
-                             [#include <apr.h>
-                              MaTcHtHiS APR_INT64_T_FMT EnDeNd],
-                             [svn_cv_pycfmt_apr_int64_t="L"])
-              fi
-              if test "x$svn_cv_pycfmt_apr_int64_t" = "x"; then
-                AC_EGREP_CPP([MaTcHtHiS +\"ld\" +EnDeNd],r
-                             [#include <apr.h>
-                              MaTcHtHiS APR_INT64_T_FMT EnDeNd],
-                             [svn_cv_pycfmt_apr_int64_t="l"])
-              fi
-              if test "x$svn_cv_pycfmt_apr_int64_t" = "x"; then
-                AC_EGREP_CPP([MaTcHtHiS +\"d\" +EnDeNd],
-                             [#include <apr.h>
-                              MaTcHtHiS APR_INT64_T_FMT EnDeNd],
-                             [svn_cv_pycfmt_apr_int64_t="i"])
-              fi
-            ])
-            CPPFLAGS="$SVN_PYCFMT_SAVE_CPPFLAGS"
+          dnl Sun Forte adds an extra space before substituting APR_INT64_T_FMT
+          dnl gcc-2.95 adds an extra space after substituting APR_INT64_T_FMT
+          dnl thus the egrep patterns have a + in them.
+          SVN_PYCFMT_SAVE_CPPFLAGS="$CPPFLAGS"
+          CPPFLAGS="$CPPFLAGS $SVN_APR_INCLUDES"
+          AC_CACHE_CHECK([for apr_int64_t Python/C API format string],
+                         [svn_cv_pycfmt_apr_int64_t], [
+            if test "x$svn_cv_pycfmt_apr_int64_t" = "x"; then
+              AC_EGREP_CPP([MaTcHtHiS +\"lld\" +EnDeNd],
+                           [#include <apr.h>
+                            MaTcHtHiS APR_INT64_T_FMT EnDeNd],
+                           [svn_cv_pycfmt_apr_int64_t="L"])
+            fi
             if test "x$svn_cv_pycfmt_apr_int64_t" = "x"; then
-              AC_MSG_ERROR([failed to recognize APR_INT64_T_FMT on this 
platform])
+              AC_EGREP_CPP([MaTcHtHiS +\"ld\" +EnDeNd],r
+                           [#include <apr.h>
+                            MaTcHtHiS APR_INT64_T_FMT EnDeNd],
+                           [svn_cv_pycfmt_apr_int64_t="l"])
             fi
-            AC_DEFINE_UNQUOTED([SVN_APR_INT64_T_PYCFMT],
-                               ["$svn_cv_pycfmt_apr_int64_t"],
-                               [Define to the Python/C API format character 
suitable]
-                               [ for apr_int64_t])
+            if test "x$svn_cv_pycfmt_apr_int64_t" = "x"; then
+              AC_EGREP_CPP([MaTcHtHiS +\"d\" +EnDeNd],
+                           [#include <apr.h>
+                            MaTcHtHiS APR_INT64_T_FMT EnDeNd],
+                           [svn_cv_pycfmt_apr_int64_t="i"])
+            fi
+          ])
+          CPPFLAGS="$SVN_PYCFMT_SAVE_CPPFLAGS"
+          if test "x$svn_cv_pycfmt_apr_int64_t" = "x"; then
+            AC_MSG_ERROR([failed to recognize APR_INT64_T_FMT on this 
platform])
           fi
+          AC_DEFINE_UNQUOTED([SVN_APR_INT64_T_PYCFMT],
+                             ["$svn_cv_pycfmt_apr_int64_t"],
+                             [Define to the Python/C API format character 
suitable]
+                             [ for apr_int64_t])
         fi
+            
       fi
+    fi
+
+  fi
 
+  if test "$PERL" != "none"; then
+    AC_MSG_CHECKING([perl version])
+    dnl Note that the q() bit is there to avoid unbalanced brackets
+    dnl which m4 really doesn't like.
+    PERL_VERSION="`$PERL -e 'q([[); print $]] * 1000000,$/;'`"
+    AC_MSG_RESULT([$PERL_VERSION])
+    if test "$PERL_VERSION" -ge "5008000"; then
+      SWIG_PL_INCLUDES="\$(SWIG_INCLUDES) `$PERL -MExtUtils::Embed -e ccopts`"
+      SWIG_PL_LINK="`$PERL -MExtUtils::Embed -e ldopts`"
+      SWIG_PL_LINK="`SVN_REMOVE_STANDARD_LIB_DIRS($SWIG_PL_LINK)`"
+    else
+      AC_MSG_WARN([perl bindings require perl 5.8.0 or newer.])
     fi
+  fi
 
-    if test "$PERL" != "none"; then
-      AC_MSG_CHECKING([perl version])
-      dnl Note that the q() bit is there to avoid unbalanced brackets
-      dnl which m4 really doesn't like.
-      PERL_VERSION="`$PERL -e 'q([[); print $]] * 1000000,$/;'`"
-      AC_MSG_RESULT([$PERL_VERSION])
-      if test "$PERL_VERSION" -ge "5008000"; then
-        SWIG_PL_INCLUDES="\$(SWIG_INCLUDES) `$PERL -MExtUtils::Embed -e 
ccopts`"
-        SWIG_PL_LINK="`$PERL -MExtUtils::Embed -e ldopts`"
-      else
-        AC_MSG_WARN([perl bindings require perl 5.8.0 or newer.])
-      fi
+  SWIG_RB_COMPILE="none"
+  SWIG_RB_LINK="none"
+  if test "$RUBY" != "none"; then
+    if test x"$SWIG_VERSION" = x"3""00""008"; then
+      # Use a local variable to escape the '#' sign.
+      
ruby_swig_issue_602='https://subversion.apache.org/docs/release-notes/1.11#ruby-swig-issue-602'
+      AC_MSG_WARN([Ruby bindings are known not to support swig 3.0.8; see 
$ruby_swig_issue_602])
     fi
+    rbconfig="$RUBY -rrbconfig -e "
 
-    SWIG_RB_COMPILE="none"
-    SWIG_RB_LINK="none"
-    if test "$RUBY" != "none"; then
-      rbconfig="$RUBY -rrbconfig -e "
-
-      for var_name in arch archdir CC LDSHARED DLEXT LIBS LIBRUBYARG \
-                      rubyhdrdir rubyarchhdrdir sitedir sitelibdir sitearchdir 
libdir
-      do
-        rbconfig_tmp=`$rbconfig "print RbConfig::CONFIG@<:@'$var_name'@:>@"`
-        eval "rbconfig_$var_name=\"$rbconfig_tmp\""
-      done
-
-      AC_MSG_NOTICE([Configuring Ruby SWIG binding])
-
-      AC_CACHE_CHECK([for Ruby include path], [svn_cv_ruby_includes],[
-      if test -d "$rbconfig_rubyhdrdir"; then
-        dnl Ruby >=1.9
-        svn_cv_ruby_includes="-I. -I$rbconfig_rubyhdrdir 
-I$rbconfig_rubyhdrdir/ruby -I$rbconfig_rubyhdrdir/ruby/backward"
-        if test -d "$rbconfig_rubyarchhdrdir"; then
-          dnl Ruby >=2.0
-          svn_cv_ruby_includes="$svn_cv_ruby_includes 
-I$rbconfig_rubyarchhdrdir"
-        else
-          svn_cv_ruby_includes="$svn_cv_ruby_includes 
-I$rbconfig_rubyhdrdir/$rbconfig_arch"
-        fi
+    for var_name in arch archdir CC LDSHARED DLEXT LIBS LIBRUBYARG \
+                    rubyhdrdir rubyarchhdrdir sitedir sitelibdir sitearchdir 
libdir
+    do
+      rbconfig_tmp=`$rbconfig "print RbConfig::CONFIG@<:@'$var_name'@:>@"`
+      eval "rbconfig_$var_name=\"$rbconfig_tmp\""
+    done
+
+    AC_MSG_NOTICE([Configuring Ruby SWIG binding])
+
+    AC_CACHE_CHECK([for Ruby include path], [svn_cv_ruby_includes],[
+    if test -d "$rbconfig_rubyhdrdir"; then
+      dnl Ruby >=1.9
+      svn_cv_ruby_includes="-I. -I$rbconfig_rubyhdrdir 
-I$rbconfig_rubyhdrdir/ruby -I$rbconfig_rubyhdrdir/ruby/backward"
+      if test -d "$rbconfig_rubyarchhdrdir"; then
+        dnl Ruby >=2.0
+        svn_cv_ruby_includes="$svn_cv_ruby_includes -I$rbconfig_rubyarchhdrdir"
       else
-        dnl Ruby 1.8
-        svn_cv_ruby_includes="-I. -I$rbconfig_archdir"
+        svn_cv_ruby_includes="$svn_cv_ruby_includes 
-I$rbconfig_rubyhdrdir/$rbconfig_arch"
       fi
-      ])
-      SWIG_RB_INCLUDES="\$(SWIG_INCLUDES) $svn_cv_ruby_includes"
-
-      AC_CACHE_CHECK([how to compile Ruby extensions], [svn_cv_ruby_compile],[
-        svn_cv_ruby_compile="$rbconfig_CC $CFLAGS"
-      ])
-      SWIG_RB_COMPILE="$svn_cv_ruby_compile"
-      SVN_STRIP_FLAG([SWIG_RB_COMPILE], [-ansi])
-      SVN_STRIP_FLAG([SWIG_RB_COMPILE], [-std=c89])
-      SVN_STRIP_FLAG([SWIG_RB_COMPILE], [-std=c90])
-      dnl FIXME: Check that the compiler for Ruby actually supports this flag
-      SWIG_RB_COMPILE="$SWIG_RB_COMPILE -Wno-int-to-pointer-cast"
-
-      AC_CACHE_CHECK([how to link Ruby extensions], [svn_cv_ruby_link],[
-        svn_cv_ruby_link="`$RUBY -e 'ARGV.shift; print ARGV.join(%q( ))' \
-                             $rbconfig_LDSHARED`"
-        svn_cv_ruby_link="$rbconfig_CC $svn_cv_ruby_link"
-        svn_cv_ruby_link="$svn_cv_ruby_link -shrext .$rbconfig_DLEXT"
-      ])
-      SWIG_RB_LINK="$svn_cv_ruby_link"
-
-      AC_CACHE_CHECK([how to link Ruby libraries], [ac_cv_ruby_libs], [
-        ac_cv_ruby_libs="$rbconfig_LIBRUBYARG $rbconfig_LIBS"
-      ])
-      SWIG_RB_LIBS="`SVN_REMOVE_STANDARD_LIB_DIRS($ac_cv_ruby_libs)`"
+    else
+      dnl Ruby 1.8
+      svn_cv_ruby_includes="-I. -I$rbconfig_archdir"
+    fi
+    ])
+    SWIG_RB_INCLUDES="\$(SWIG_INCLUDES) $svn_cv_ruby_includes"
 
-      AC_MSG_CHECKING([for rb_errinfo])
-      old_CFLAGS="$CFLAGS"
-      old_LIBS="$LIBS"
-      CFLAGS="$CFLAGS $svn_cv_ruby_includes"
-      SVN_STRIP_FLAG([CFLAGS], [-ansi])
-      SVN_STRIP_FLAG([CFLAGS], [-std=c89])
-      SVN_STRIP_FLAG([CFLAGS], [-std=c90])
-      LIBS="$SWIG_RB_LIBS"
-      AC_LINK_IFELSE([AC_LANG_SOURCE([[
+    AC_CACHE_CHECK([how to compile Ruby extensions], [svn_cv_ruby_compile],[
+      svn_cv_ruby_compile="$rbconfig_CC $CFLAGS"
+    ])
+    SWIG_RB_COMPILE="$svn_cv_ruby_compile"
+    SVN_STRIP_FLAG([SWIG_RB_COMPILE], [-ansi])
+    SVN_STRIP_FLAG([SWIG_RB_COMPILE], [-std=c89])
+    SVN_STRIP_FLAG([SWIG_RB_COMPILE], [-std=c90])
+    dnl FIXME: Check that the compiler for Ruby actually supports this flag
+    SWIG_RB_COMPILE="$SWIG_RB_COMPILE -Wno-int-to-pointer-cast"
+
+    AC_CACHE_CHECK([how to link Ruby extensions], [svn_cv_ruby_link],[
+      svn_cv_ruby_link="`$RUBY -e 'ARGV.shift; print ARGV.join(%q( ))' \
+                           $rbconfig_LDSHARED`"
+      svn_cv_ruby_link="$rbconfig_CC $svn_cv_ruby_link"
+      svn_cv_ruby_link="$svn_cv_ruby_link -shrext .$rbconfig_DLEXT"
+    ])
+    SWIG_RB_LINK="$svn_cv_ruby_link"
+
+    AC_CACHE_CHECK([how to link Ruby libraries], [ac_cv_ruby_libs], [
+      ac_cv_ruby_libs="$rbconfig_LIBRUBYARG $rbconfig_LIBS"
+    ])
+    SWIG_RB_LIBS="`SVN_REMOVE_STANDARD_LIB_DIRS($ac_cv_ruby_libs)`"
+
+    AC_MSG_CHECKING([for rb_errinfo])
+    old_CFLAGS="$CFLAGS"
+    old_LIBS="$LIBS"
+    CFLAGS="$CFLAGS $svn_cv_ruby_includes"
+    SVN_STRIP_FLAG([CFLAGS], [-ansi])
+    SVN_STRIP_FLAG([CFLAGS], [-std=c89])
+    SVN_STRIP_FLAG([CFLAGS], [-std=c90])
+    LIBS="$SWIG_RB_LIBS"
+    AC_LINK_IFELSE([AC_LANG_SOURCE([[
 #include <ruby.h>
 int main()
 {rb_errinfo();}]])], have_rb_errinfo="yes", have_rb_errinfo="no")
-      if test "$have_rb_errinfo" = "yes"; then
-        AC_MSG_RESULT([yes])
-        AC_DEFINE([HAVE_RB_ERRINFO], [1],
-                  [Define to 1 if you have the `rb_errinfo' function.])
-      else
-        AC_MSG_RESULT([no])
-      fi
-      CFLAGS="$old_CFLAGS"
-      LIBS="$old_LIBS"
-
-      AC_CACHE_VAL([svn_cv_ruby_sitedir],[
-        svn_cv_ruby_sitedir="$rbconfig_sitedir"
-      ])
-      AC_ARG_WITH([ruby-sitedir],
-      AS_HELP_STRING([--with-ruby-sitedir=SITEDIR],
-                                 [install Ruby bindings in SITEDIR
-                                  (default is same as ruby's one)]),
-      [svn_ruby_installdir="$withval"],
-      [svn_ruby_installdir="$svn_cv_ruby_sitedir"])
-
-      AC_MSG_CHECKING([where to install Ruby scripts])
-      AC_CACHE_VAL([svn_cv_ruby_sitedir_libsuffix],[
-        svn_cv_ruby_sitedir_libsuffix="`echo "$rbconfig_sitelibdir" | \
-                                          $SED -e "s,^$rbconfig_sitedir,,"`"
-      ])
-      
SWIG_RB_SITE_LIB_DIR="${svn_ruby_installdir}${svn_cv_ruby_sitedir_libsuffix}"
-      AC_MSG_RESULT([$SWIG_RB_SITE_LIB_DIR])
-
-      AC_MSG_CHECKING([where to install Ruby extensions])
-      AC_CACHE_VAL([svn_cv_ruby_sitedir_archsuffix],[
-        svn_cv_ruby_sitedir_archsuffix="`echo "$rbconfig_sitearchdir" | \
-                                          $SED -e "s,^$rbconfig_sitedir,,"`"
-      ])
-      
SWIG_RB_SITE_ARCH_DIR="${svn_ruby_installdir}${svn_cv_ruby_sitedir_archsuffix}"
-      AC_MSG_RESULT([$SWIG_RB_SITE_ARCH_DIR])
-
-      AC_MSG_CHECKING([how to use output level for Ruby bindings tests])
-      AC_CACHE_VAL([svn_cv_ruby_test_verbose],[
-        svn_cv_ruby_test_verbose="normal"
-      ])
-      AC_ARG_WITH([ruby-test-verbose],
-      AS_HELP_STRING([--with-ruby-test-verbose=LEVEL],
-                                 [how to use output level for Ruby bindings 
tests
-                                  (default is normal)]),
-      [svn_ruby_test_verbose="$withval"],
-                    [svn_ruby_test_verbose="$svn_cv_ruby_test_verbose"])
-        SWIG_RB_TEST_VERBOSE="$svn_ruby_test_verbose"
-        AC_MSG_RESULT([$SWIG_RB_TEST_VERBOSE])
+    if test "$have_rb_errinfo" = "yes"; then
+      AC_MSG_RESULT([yes])
+      AC_DEFINE([HAVE_RB_ERRINFO], [1],
+                [Define to 1 if you have the `rb_errinfo' function.])
+    else
+      AC_MSG_RESULT([no])
     fi
+    CFLAGS="$old_CFLAGS"
+    LIBS="$old_LIBS"
+
+    AC_CACHE_VAL([svn_cv_ruby_sitedir],[
+      svn_cv_ruby_sitedir="$rbconfig_sitedir"
+    ])
+    AC_ARG_WITH([ruby-sitedir],
+    AS_HELP_STRING([--with-ruby-sitedir=SITEDIR],
+                               [install Ruby bindings in SITEDIR
+                                (default is same as ruby's one)]),
+    [svn_ruby_installdir="$withval"],
+    [svn_ruby_installdir="$svn_cv_ruby_sitedir"])
+
+    AC_MSG_CHECKING([where to install Ruby scripts])
+    AC_CACHE_VAL([svn_cv_ruby_sitedir_libsuffix],[
+      svn_cv_ruby_sitedir_libsuffix="`echo "$rbconfig_sitelibdir" | \
+                                        $SED -e "s,^$rbconfig_sitedir,,"`"
+    ])
+    
SWIG_RB_SITE_LIB_DIR="${svn_ruby_installdir}${svn_cv_ruby_sitedir_libsuffix}"
+    AC_MSG_RESULT([$SWIG_RB_SITE_LIB_DIR])
+
+    AC_MSG_CHECKING([where to install Ruby extensions])
+    AC_CACHE_VAL([svn_cv_ruby_sitedir_archsuffix],[
+      svn_cv_ruby_sitedir_archsuffix="`echo "$rbconfig_sitearchdir" | \
+                                        $SED -e "s,^$rbconfig_sitedir,,"`"
+    ])
+    
SWIG_RB_SITE_ARCH_DIR="${svn_ruby_installdir}${svn_cv_ruby_sitedir_archsuffix}"
+    AC_MSG_RESULT([$SWIG_RB_SITE_ARCH_DIR])
+
+    AC_MSG_CHECKING([how to use output level for Ruby bindings tests])
+    AC_CACHE_VAL([svn_cv_ruby_test_verbose],[
+      svn_cv_ruby_test_verbose="normal"
+    ])
+    AC_ARG_WITH([ruby-test-verbose],
+    AS_HELP_STRING([--with-ruby-test-verbose=LEVEL],
+                               [how to use output level for Ruby bindings tests
+                                (default is normal)]),
+    [svn_ruby_test_verbose="$withval"],
+                  [svn_ruby_test_verbose="$svn_cv_ruby_test_verbose"])
+      SWIG_RB_TEST_VERBOSE="$svn_ruby_test_verbose"
+      AC_MSG_RESULT([$SWIG_RB_TEST_VERBOSE])
   fi
   AC_SUBST(SWIG)
   AC_SUBST(SWIG_PY_INCLUDES)

Modified: subversion/branches/swig-py3/build/ac-macros/utf8proc.m4
URL: 
http://svn.apache.org/viewvc/subversion/branches/swig-py3/build/ac-macros/utf8proc.m4?rev=1847678&r1=1847677&r2=1847678&view=diff
==============================================================================
--- subversion/branches/swig-py3/build/ac-macros/utf8proc.m4 (original)
+++ subversion/branches/swig-py3/build/ac-macros/utf8proc.m4 Wed Nov 28 
21:25:32 2018
@@ -39,6 +39,10 @@ AC_DEFUN(SVN_UTF8PROC,
     ],
     [utf8proc_prefix=std])
 
+  if test "$utf8proc_prefix" = "no"; then
+    dnl The user has tried to disable UTF8PROC
+    AC_MSG_ERROR([Subversion requires UTF8PROC])
+  fi
   if test "$utf8proc_prefix" = "internal"; then
     AC_MSG_NOTICE([using internal utf8proc])
     AC_DEFINE([SVN_INTERNAL_UTF8PROC], [1],

Modified: subversion/branches/swig-py3/build/buildcheck.sh
URL: 
http://svn.apache.org/viewvc/subversion/branches/swig-py3/build/buildcheck.sh?rev=1847678&r1=1847677&r2=1847678&view=diff
==============================================================================
--- subversion/branches/swig-py3/build/buildcheck.sh (original)
+++ subversion/branches/swig-py3/build/buildcheck.sh Wed Nov 28 21:25:32 2018
@@ -76,26 +76,12 @@ fi
 echo "buildcheck: autoheader version $ah_version (ok)"
 
 #--------------------------------------------------------------------------
-# libtool 1.4 or newer
+# libtool 2.0 or newer
 #
-LIBTOOL_WANTED_MAJOR=1
-LIBTOOL_WANTED_MINOR=4
+LIBTOOL_WANTED_MAJOR=2
+LIBTOOL_WANTED_MINOR=0
 LIBTOOL_WANTED_PATCH=
-LIBTOOL_WANTED_VERSION=1.4
-
-# The minimum version for source releases is 1.4.3,
-# because it's required by (at least) Solaris.
-if test "$VERSION_CHECK" = "--release"; then
-  LIBTOOL_WANTED_PATCH=3
-  LIBTOOL_WANTED_VERSION=1.4.3
-else
-  case `uname -sr` in
-    SunOS\ 5.*)
-      LIBTOOL_WANTED_PATCH=3
-      LIBTOOL_WANTED_VERSION=1.4.3
-      ;;
-  esac
-fi
+LIBTOOL_WANTED_VERSION=2.0
 
 # Much like APR except we do not prefer libtool 1 over libtool 2.
 libtoolize=${LIBTOOLIZE:-`./build/PrintPath glibtoolize libtoolize 
glibtoolize1 libtoolize15 libtoolize14`}

Modified: subversion/branches/swig-py3/build/generator/extractor.py
URL: 
http://svn.apache.org/viewvc/subversion/branches/swig-py3/build/generator/extractor.py?rev=1847678&r1=1847677&r2=1847678&view=diff
==============================================================================
--- subversion/branches/swig-py3/build/generator/extractor.py (original)
+++ subversion/branches/swig-py3/build/generator/extractor.py Wed Nov 28 
21:25:32 2018
@@ -69,4 +69,6 @@ if __name__ == '__main__':
     if os.path.basename(fname) == 'svn_ctype.h':
       print('svn_ctype_table = svn_ctype_table_internal CONSTANT')
     elif os.path.basename(fname) == 'svn_wc_private.h':
+      # svn_wc__internal_walk_children() is now internal to libsvn_wc
+      # but entries-dump.c still calls it
       print('svn_wc__internal_walk_children')

Modified: subversion/branches/swig-py3/build/generator/gen_base.py
URL: 
http://svn.apache.org/viewvc/subversion/branches/swig-py3/build/generator/gen_base.py?rev=1847678&r1=1847677&r2=1847678&view=diff
==============================================================================
--- subversion/branches/swig-py3/build/generator/gen_base.py (original)
+++ subversion/branches/swig-py3/build/generator/gen_base.py Wed Nov 28 
21:25:32 2018
@@ -900,115 +900,67 @@ class TargetJava(TargetLinked):
   def __init__(self, name, options, gen_obj):
     TargetLinked.__init__(self, name, options, gen_obj)
     self.link_cmd = options.get('link-cmd')
-    self.packages = options.get('package-roots', '').split()
+    self.package = options.get('package')
     self.jar = options.get('jar')
     self.deps = [ ]
-
-class TargetJavaHeaders(TargetJava):
-  def __init__(self, name, options, gen_obj):
-    TargetJava.__init__(self, name, options, gen_obj)
     self.objext = '.class'
-    self.javah_objext = '.h'
     self.headers = options.get('headers')
     self.classes = options.get('classes')
-    self.package = options.get('package')
-    self.output_dir = self.headers
+    self.native = options.get('native', '')
+    self.output_dir = self.classes
+    self.headers_dir = self.headers
 
   def add_dependencies(self):
     sources = _collect_paths(self.sources, self.path)
+    native = _collect_paths(self.native, self.path)
+
+    class_pkg_list = self.package.split('.')
+    sourcepath = build_path_split(self.path)[:-len(class_pkg_list)]
+    sourcepath = build_path_join(*sourcepath)
 
     for src, reldir in sources:
       if src[-5:] != '.java':
         raise GenError('ERROR: unknown file extension on ' + src)
 
+      sfile = SourceFile(src, reldir)
+      sfile.sourcepath = sourcepath
+
       class_name = build_path_basename(src[:-5])
 
-      class_header = build_path_join(self.headers, class_name + '.h')
-      class_header_win = build_path_join(self.headers,
-                                         self.package.replace(".", "_")
-                                         + "_" + class_name + '.h')
-      class_pkg_list = self.package.split('.')
       class_pkg = build_path_join(*class_pkg_list)
       class_file = ObjectFile(build_path_join(self.classes, class_pkg,
                                               class_name + self.objext),
-                              self.when)
+                              self.compile_cmd, self.when)
       class_file.source_generated = 1
       class_file.class_name = class_name
-      hfile = HeaderFile(class_header, self.package + '.' + class_name,
-                         self.compile_cmd)
-      hfile.filename_win = class_header_win
-      hfile.source_generated = 1
-      self.gen_obj.graph.add(DT_OBJECT, hfile, class_file)
-      self.deps.append(hfile)
 
-      # target (a linked item) depends upon object
-      self.gen_obj.graph.add(DT_LINK, self.name, hfile)
+      self.gen_obj.graph.add(DT_OBJECT, class_file, sfile)
+      self.gen_obj.graph.add(DT_LINK, self.name, class_file)
+      self.deps.append(class_file)
+
+      if (src, reldir) in native:
+        class_header = build_path_join(self.headers, class_name + '.h')
+        class_header_win = build_path_join(self.headers,
+                                           self.package.replace(".", "_")
+                                           + "_" + class_name + '.h')
+        hfile = HeaderFile(class_header, self.package + '.' + class_name,
+                           self.compile_cmd)
+        hfile.filename_win = class_header_win
+        hfile.source_generated = 1
+        self.gen_obj.graph.add(DT_OBJECT, hfile, sfile)
+        self.deps.append(hfile)
 
+        # target (a linked item) depends upon object
+        self.gen_obj.graph.add(DT_LINK, self.name, hfile)
 
-    # collect all the paths where stuff might get built
-    ### we should collect this from the dependency nodes rather than
-    ### the sources. "what dir are you going to put yourself into?"
-    self.gen_obj.target_dirs.append(self.path)
-    self.gen_obj.target_dirs.append(self.classes)
-    self.gen_obj.target_dirs.append(self.headers)
-    for pattern in self.sources.split():
-      dirname = build_path_dirname(pattern)
-      if dirname:
-        self.gen_obj.target_dirs.append(build_path_join(self.path, dirname))
-
-    self.gen_obj.graph.add(DT_INSTALL, self.name, self)
-
-class TargetJavaClasses(TargetJava):
-  def __init__(self, name, options, gen_obj):
-    TargetJava.__init__(self, name, options, gen_obj)
-    self.objext = '.class'
-    self.lang = 'java'
-    self.classes = options.get('classes')
-    self.output_dir = self.classes
-
-  def add_dependencies(self):
-    sources = []
-    for p in self.path.split():
-      sources.extend(_collect_paths(self.sources, p))
-
-    for src, reldir in sources:
-      if src[-5:] == '.java':
-        objname = src[:-5] + self.objext
-
-        # As .class files are likely not generated into the same
-        # directory as the source files, the object path may need
-        # adjustment.  To this effect, take "target_ob.classes" into
-        # account.
-        dirs = build_path_split(objname)
-        sourcedirs = dirs[:-1]  # Last element is the .class file name.
-        while sourcedirs:
-          if sourcedirs.pop() in self.packages:
-            sourcepath = build_path_join(*sourcedirs)
-            objname = build_path_join(self.classes, *dirs[len(sourcedirs):])
-            break
-        else:
-          raise GenError('Unable to find Java package root in path "%s"' % 
objname)
-      else:
-        raise GenError('ERROR: unknown file extension on "' + src + '"')
-
-      ofile = ObjectFile(objname, self.compile_cmd, self.when)
-      sfile = SourceFile(src, reldir)
-      sfile.sourcepath = sourcepath
-
-      # object depends upon source
-      self.gen_obj.graph.add(DT_OBJECT, ofile, sfile)
-
-      # target (a linked item) depends upon object
-      self.gen_obj.graph.add(DT_LINK, self.name, ofile)
-
-      # Add the class file to the dependency tree for this target
-      self.deps.append(ofile)
 
     # collect all the paths where stuff might get built
     ### we should collect this from the dependency nodes rather than
     ### the sources. "what dir are you going to put yourself into?"
-    self.gen_obj.target_dirs.extend(self.path.split())
+    self.gen_obj.target_dirs.append(self.path)
     self.gen_obj.target_dirs.append(self.classes)
+    if self.headers:
+      self.gen_obj.target_dirs.append(self.headers)
     for pattern in self.sources.split():
       dirname = build_path_dirname(pattern)
       if dirname:
@@ -1057,8 +1009,7 @@ _build_types = {
   'apache-mod': TargetApacheMod,
   'shared-only-lib': TargetSharedOnlyLib,
   'shared-only-cxx-lib': TargetSharedOnlyCxxLib,
-  'javah' : TargetJavaHeaders,
-  'java' : TargetJavaClasses,
+  'java' : TargetJava,
   'i18n' : TargetI18N,
   'sql-header' : TargetSQLHeader,
   }

Modified: subversion/branches/swig-py3/build/generator/gen_make.py
URL: 
http://svn.apache.org/viewvc/subversion/branches/swig-py3/build/generator/gen_make.py?rev=1847678&r1=1847677&r2=1847678&view=diff
==============================================================================
--- subversion/branches/swig-py3/build/generator/gen_make.py (original)
+++ subversion/branches/swig-py3/build/generator/gen_make.py Wed Nov 28 
21:25:32 2018
@@ -309,6 +309,8 @@ class Generator(gen_base.GeneratorBase):
         ezt_target.link_cmd = target_ob.link_cmd
       if hasattr(target_ob, 'output_dir'):
         ezt_target.output_dir = target_ob.output_dir
+      if hasattr(target_ob, 'headers_dir'):
+        ezt_target.headers_dir = target_ob.headers_dir
 
       # Add additional install dependencies if necessary
       if target_ob.add_install_deps:
@@ -507,7 +509,7 @@ class Generator(gen_base.GeneratorBase):
     standalone.write('top_srcdir = .\n')
     standalone.write('top_builddir = .\n')
     standalone.write('SWIG = swig\n')
-    standalone.write('PYTHON = python\n')
+    standalone.write('PYTHON = ' + sys.executable + '\n')
     standalone.write('\n')
     standalone.write(open("build-outputs.mk","r").read())
     standalone.close()

Modified: subversion/branches/swig-py3/build/generator/gen_win.py
URL: 
http://svn.apache.org/viewvc/subversion/branches/swig-py3/build/generator/gen_win.py?rev=1847678&r1=1847677&r2=1847678&view=diff
==============================================================================
--- subversion/branches/swig-py3/build/generator/gen_win.py (original)
+++ subversion/branches/swig-py3/build/generator/gen_win.py Wed Nov 28 21:25:32 
2018
@@ -224,7 +224,6 @@ class WinGeneratorBase(gen_win_dependenc
     if 'java_sdk' not in self._libraries:
       install_targets = [x for x in install_targets
                                      if not (isinstance(x, gen_base.TargetJava)
-                                             or isinstance(x, 
gen_base.TargetJavaHeaders)
                                              or x.name == '__JAVAHL__'
                                              or x.name == '__JAVAHL_TESTS__'
                                              or x.name == 'libsvnjavahl')]
@@ -339,11 +338,9 @@ class WinGeneratorBase(gen_win_dependenc
     sources = [ ]
 
     javac_exe = "javac"
-    javah_exe = "javah"
     jar_exe = "jar"
     if self.jdk_path:
       javac_exe = os.path.join(self.jdk_path, "bin", javac_exe)
-      javah_exe = os.path.join(self.jdk_path, "bin", javah_exe)
       jar_exe = os.path.join(self.jdk_path, "bin", jar_exe)
 
     if not isinstance(target, gen_base.TargetProject):
@@ -352,25 +349,13 @@ class WinGeneratorBase(gen_win_dependenc
         ctarget = None
         cdesc = None
         cignore = None
-        if isinstance(target, gen_base.TargetJavaHeaders):
-          classes = self.path(target.classes)
-          if self.junit_path is not None:
-            classes = "%s;%s" % (classes, self.junit_path)
-
-          headers = self.path(target.headers)
-          classname = target.package + "." + source.class_name
-
-          cbuild = "%s -verbose -force -classpath %s -d %s %s" \
-                   % (self.quote(javah_exe), self.quote(classes),
-                      self.quote(headers), classname)
-
-          ctarget = self.path(object.filename_win)
-          cdesc = "Generating %s" % (object.filename_win)
-
-        elif isinstance(target, gen_base.TargetJavaClasses):
+        if isinstance(target, gen_base.TargetJava):
           classes = targetdir = self.path(target.classes)
           if self.junit_path is not None:
             classes = "%s;%s" % (classes, self.junit_path)
+          headers = ''
+          if target.headers is not None:
+            headers = '-h %s' % self.quote(self.path(target.headers))
 
           sourcepath = self.path(source.sourcepath)
 
@@ -380,17 +365,21 @@ class WinGeneratorBase(gen_win_dependenc
             per_project_flags += "-Xlint:-deprecation -Xlint:-dep-ann" \
                                  " -Xlint:-rawtypes"
 
-          cbuild = ("%s -g -Xlint -Xlint:-options " +
-                    per_project_flags +
-                    " -target 1.5 -source 1.5 -classpath "
+          cbuild = ("%s -g -Xlint -Xlint:-options %s %s "
+                    " -target 1.8 -source 1.8 -classpath "
                     " %s -d %s "
                     " -sourcepath %s $(InputPath)") \
-                   % tuple(map(self.quote, (javac_exe, classes,
-                                            targetdir, sourcepath)))
+                   % (self.quote(javac_exe), per_project_flags, headers,
+                      self.quote(classes), self.quote(targetdir),
+                      self.quote(sourcepath))
 
 
-          ctarget = self.path(object.filename)
-          cdesc = "Compiling %s" % (source)
+          if isinstance(object, gen_base.HeaderFile):
+            ctarget = self.path(object.filename_win)
+            cdesc = "Generating %s" % (object.filename_win)
+          else:
+            ctarget = self.path(object.filename)
+            cdesc = "Compiling %s" % (source)
 
         rsrc = self.path(str(source))
         if quote_path and '-' in rsrc:
@@ -410,7 +399,7 @@ class WinGeneratorBase(gen_win_dependenc
                                    custom_desc=cdesc, ignored = cignore,
                                    extension=os.path.splitext(rsrc)[1]))
 
-    if isinstance(target, gen_base.TargetJavaClasses) and target.jar:
+    if isinstance(target, gen_base.TargetJava) and target.jar:
       classdir = self.path(target.classes)
       jarfile = msvc_path_join(classdir, target.jar)
       cbuild = "%s cf %s -C %s %s" \
@@ -514,9 +503,7 @@ class WinGeneratorBase(gen_win_dependenc
     return name[0] + '.pdb'
 
   def get_output_dir(self, target):
-    if isinstance(target, gen_base.TargetJavaHeaders):
-      return msvc_path("../" + target.headers)
-    elif isinstance(target, gen_base.TargetJavaClasses):
+    if isinstance(target, gen_base.TargetJava):
       return msvc_path("../" + target.classes)
     else:
       return msvc_path(target.path)

Modified: subversion/branches/swig-py3/build/generator/gen_win_dependencies.py
URL: 
http://svn.apache.org/viewvc/subversion/branches/swig-py3/build/generator/gen_win_dependencies.py?rev=1847678&r1=1847677&r2=1847678&view=diff
==============================================================================
--- subversion/branches/swig-py3/build/generator/gen_win_dependencies.py 
(original)
+++ subversion/branches/swig-py3/build/generator/gen_win_dependencies.py Wed 
Nov 28 21:25:32 2018
@@ -1120,11 +1120,15 @@ class GenDependenciesBase(gen_base.Gener
       return
 
     try:
-      outfp = subprocess.Popen([os.path.join(jdk_path, 'bin', 'javah.exe'),
-                               '-version'], stdout=subprocess.PIPE).stdout
+      # Apparently a 1.8 javac writes its version output to stderr, while
+      # a 1.10 javac writes it to stdout. To catch them all, we redirect
+      # stderr to stdout.
+      outfp = subprocess.Popen([os.path.join(jdk_path, 'bin', 'javac.exe'),
+                               '-version'], stdout=subprocess.PIPE,
+                               stderr=subprocess.STDOUT).stdout
       line = outfp.read().decode('utf8')
       if line:
-        vermatch = re.search(r'"(([0-9]+(\.[0-9]+)+)(_[._0-9]+)?)"', line, 
re.M)
+        vermatch = re.search(r'(([0-9]+(\.[0-9]+)+)(_[._0-9]+)?)', line, re.M)
       else:
         vermatch = None
 

Modified: 
subversion/branches/swig-py3/build/generator/templates/build-outputs.mk.ezt
URL: 
http://svn.apache.org/viewvc/subversion/branches/swig-py3/build/generator/templates/build-outputs.mk.ezt?rev=1847678&r1=1847677&r2=1847678&view=diff
==============================================================================
--- subversion/branches/swig-py3/build/generator/templates/build-outputs.mk.ezt 
(original)
+++ subversion/branches/swig-py3/build/generator/templates/build-outputs.mk.ezt 
Wed Nov 28 21:25:32 2018
@@ -102,13 +102,9 @@ install-[target.install]: [target.instal
 [target.varname]_OBJECTS = [for target.objects][if-index target.objects 
first][else] [end][target.objects][end]
 [target.varname]_DEPS = $([target.varname]_HEADERS) 
$([target.varname]_OBJECTS)[for target.add_deps] [target.add_deps][end][for 
target.deps][if-index target.deps first][else] [end][target.deps][end]
 [target.name]: $([target.varname]_DEPS)
-[if-any target.headers][target.varname]_CLASS_FILENAMES =[for 
target.header_class_filenames] [target.header_class_filenames][end]
-[target.varname]_CLASSES =[for target.header_classes] 
[target.header_classes][end]
-$([target.varname]_HEADERS): $([target.varname]_CLASS_FILENAMES)
-       [target.link_cmd] -d [target.output_dir] -classpath 
[target.classes]:$([target.varname]_CLASSPATH) $([target.varname]_CLASSES)
-[end][if-any target.sources][target.varname]_SRC =[for target.sources] 
[target.sources][end]
-$([target.varname]_OBJECTS): $([target.varname]_SRC)
-       [target.link_cmd] -d [target.output_dir] -classpath 
[target.classes]:$([target.varname]_CLASSPATH) $([target.varname]_SRC)
+[if-any target.sources][target.varname]_SRC =[for target.sources] 
[target.sources][end]
+$([target.varname]_HEADERS) $([target.varname]_OBJECTS): 
$([target.varname]_SRC)
+       [target.link_cmd][if-any target.headers] -h [target.headers_dir][end] 
-d [target.output_dir] -classpath 
[target.classes]:$([target.varname]_CLASSPATH) $([target.varname]_SRC)
 [if-any target.jar]
        $(JAR) cf [target.jar_path] -C [target.classes][for target.packages] 
[target.packages][end][end][end]
 [else][is target.type "i18n"][target.varname]_DEPS =[for target.add_deps] 
[target.add_deps][end][for target.objects] [target.objects][end][for 
target.deps] [target.deps][end]

Modified: 
subversion/branches/swig-py3/build/generator/templates/vcnet_vcxproj.ezt
URL: 
http://svn.apache.org/viewvc/subversion/branches/swig-py3/build/generator/templates/vcnet_vcxproj.ezt?rev=1847678&r1=1847677&r2=1847678&view=diff
==============================================================================
--- subversion/branches/swig-py3/build/generator/templates/vcnet_vcxproj.ezt 
(original)
+++ subversion/branches/swig-py3/build/generator/templates/vcnet_vcxproj.ezt 
Wed Nov 28 21:25:32 2018
@@ -64,7 +64,6 @@
       <PreprocessorDefinitions>[if-any 
instrument_apr_pools]APR_POOL_DEBUG=[instrument_apr_pools];[end][is platforms 
"x64"]WIN64;[end][for 
configs.defines][configs.defines];[end]%(PreprocessorDefinitions)</PreprocessorDefinitions>
       <WarningLevel>Level4</WarningLevel>
       <DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
-      
<ProgramDataBaseFileName>$(OutDir)$(TargetName).pdb</ProgramDataBaseFileName>
       
<DisableSpecificWarnings>4100;4127;4206;4512;4701;4706;4800;%(DisableSpecificWarnings)</DisableSpecificWarnings>
       
<TreatSpecificWarningsAsErrors>4002;4003;4013;4020;4022;4024;4028;4029;4030;4031;4033;4047;4089;4113;4115;4133;4204;4700;4715;4789;%(TreatSpecificWarningsAsErrors)</TreatSpecificWarningsAsErrors>
 [if-any configs.forced_include_files]      <ForcedIncludeFiles>[for 
configs.forced_include_files][configs.forced_include_files];[end]%(ForcedIncludeFiles)</ForcedIncludeFiles>

Modified: subversion/branches/swig-py3/build/run_tests.py
URL: 
http://svn.apache.org/viewvc/subversion/branches/swig-py3/build/run_tests.py?rev=1847678&r1=1847677&r2=1847678&view=diff
==============================================================================
--- subversion/branches/swig-py3/build/run_tests.py (original)
+++ subversion/branches/swig-py3/build/run_tests.py Wed Nov 28 21:25:32 2018
@@ -34,6 +34,7 @@
             [--config-file=<file>] [--ssl-cert=<file>]
             [--exclusive-wc-locks] [--memcached-server=<url:port>]
             [--fsfs-compression=<type>] [--fsfs-dir-deltification=<true|false>]
+            [--allow-remote-http-connection]
             <abs_srcdir> <abs_builddir>
             <prog ...>
 
@@ -280,6 +281,8 @@ class TestHarness:
       cmdline.append('--fsfs-compression=%s' % self.opts.fsfs_compression)
     if self.opts.fsfs_dir_deltification is not None:
       cmdline.append('--fsfs-dir-deltification=%s' % 
self.opts.fsfs_dir_deltification)
+    if self.opts.allow_remote_http_connection is not None:
+      cmdline.append('--allow-remote-http-connection')
 
     self.py_test_cmdline = cmdline
 
@@ -327,7 +330,7 @@ class TestHarness:
     def _command_line(self, harness):
       if self.is_python:
         cmdline = list(harness.py_test_cmdline)
-        cmdline.insert(0, 'python')
+        cmdline.insert(0, sys.executable)
         cmdline.insert(1, self.progabs)
         # Run the test apps in "child process" mode,
         # i.e. w/o cleaning up global directories etc.
@@ -375,7 +378,7 @@ class TestHarness:
 
     def _count_py_tests(self, progabs, progdir, progbase):
       'Run a c test, escaping parameters as required.'
-      cmdline = [ 'python', progabs, '--list' ]
+      cmdline = [ sys.executable, progabs, '--list' ]
       prog = subprocess.Popen(cmdline, stdout=subprocess.PIPE, cwd=progdir)
       lines = prog.stdout.readlines()
 
@@ -448,6 +451,7 @@ class TestHarness:
     job_queue = queue.Queue()
     total_count = 0
     scrambled = list(jobs)
+    # TODO: What's this line doing, and what's the magic number?
     scrambled.sort(key=lambda x: ("1" if x.test_count() < 30 else "0") + 
str(x.number))
     for job in scrambled:
       total_count += job.test_count()
@@ -1032,6 +1036,8 @@ def create_parser():
                     help='Set compression type (for fsfs)')
   parser.add_option('--fsfs-dir-deltification', action='store', type='str',
                     help='Set directory deltification option (for fsfs)')
+  parser.add_option('--allow-remote-http-connection', action='store_true',
+                    help='Run tests that connect to remote HTTP(S) servers')
 
   parser.set_defaults(set_log_level=None)
   return parser

Modified: subversion/branches/swig-py3/build/transform_sql.py
URL: 
http://svn.apache.org/viewvc/subversion/branches/swig-py3/build/transform_sql.py?rev=1847678&r1=1847677&r2=1847678&view=diff
==============================================================================
--- subversion/branches/swig-py3/build/transform_sql.py (original)
+++ subversion/branches/swig-py3/build/transform_sql.py Wed Nov 28 21:25:32 2018
@@ -274,7 +274,7 @@ def main(input_filepath, output):
     '/* This file is automatically generated from %s and %s.\n'
     ' * Do not edit this file -- edit the source and rerun gen-make.py */\n'
     '\n'
-    % (filename, token_map_filename))
+    % (filename, os.path.basename(token_map_filename)))
 
   proc = Processor(os.path.dirname(input_filepath), output, var_name, 
token_map)
   proc.process_file(input)

Modified: subversion/branches/swig-py3/configure.ac
URL: 
http://svn.apache.org/viewvc/subversion/branches/swig-py3/configure.ac?rev=1847678&r1=1847677&r2=1847678&view=diff
==============================================================================
--- subversion/branches/swig-py3/configure.ac (original)
+++ subversion/branches/swig-py3/configure.ac Wed Nov 28 21:25:32 2018
@@ -23,7 +23,7 @@ AC_PREREQ(2.59)
 dnl Get the version of Subversion, using m4's esyscmd() command to do this
 dnl at m4-time, since AC_INIT() requires it then.
 AC_INIT([subversion],
-     [esyscmd(python build/getversion.py SVN 
subversion/include/svn_version.h)],
+     [esyscmd($PYTHON build/getversion.py SVN 
subversion/include/svn_version.h)],
      [http://subversion.apache.org/])
 
 AC_CONFIG_SRCDIR(subversion/include/svn_types.h)
@@ -593,6 +593,7 @@ if test "$with_old_gnome_keyring" != "no
                         [Is GNOME Keyring support enabled?])
               CPPFLAGS="$old_CPPFLAGS"
               SVN_GNOME_KEYRING_LIBS="`$PKG_CONFIG --libs glib-2.0 
gnome-keyring-1`"
+              SVN_GNOME_KEYRING_PCLIBS="glib-2.0 gnome-keyring-1"
             else
               AC_MSG_RESULT([no])
               if test "$with_old_gnome_keyring" = "yes"; then
@@ -866,18 +867,21 @@ fi
 
 dnl plaintext passwords -------------------
 AC_ARG_ENABLE(plaintext-password-storage,
-AS_HELP_STRING([--disable-plaintext-password-storage],
-               [Disable on-disk caching of plaintext passwords and passphrases.
-                (Leaving this functionality enabled will not force Subversion
+AS_HELP_STRING([--enable-plaintext-password-storage],
+               [Enable on-disk caching of plaintext passwords and passphrases.
+                (Enabling this functionality will not force Subversion
                 to store passwords in plaintext, but does permit users to
                 explicitly allow that behavior via runtime configuration.)]),
-[
-   if test "$enableval" = "no"; then
-      AC_MSG_NOTICE([Disabling plaintext password/passphrase storage])
-      AC_DEFINE(SVN_DISABLE_PLAINTEXT_PASSWORD_STORAGE, 1,
-                [Defined if plaintext password/passphrase storage is disabled])
-   fi
-])
+[plaintext_passwordd_storage="$enableval"],
+[plaintext_passwordd_storage="no"])
+
+if test "$plaintext_passwordd_storage" = "yes"; then
+  AC_MSG_WARN([Enabling plaintext password/passphrase storage])
+else
+  AC_MSG_NOTICE([Disabling plaintext password/passphrase storage])
+  AC_DEFINE(SVN_DISABLE_PLAINTEXT_PASSWORD_STORAGE, 1,
+            [Defined if plaintext password/passphrase storage is disabled])
+fi
 
 dnl Build and install rules -------------------
 
@@ -947,8 +951,9 @@ AC_FUNC_VPRINTF
 dnl check for functions needed in special file handling
 AC_CHECK_FUNCS(symlink readlink)
 
-dnl check for uname
+dnl check for uname and ELF headers
 AC_CHECK_HEADERS(sys/utsname.h, [AC_CHECK_FUNCS(uname)], [])
+AC_CHECK_HEADERS(elf.h)
 
 dnl check for termios
 AC_CHECK_HEADER(termios.h,[
@@ -1305,7 +1310,7 @@ fi
 AC_PATH_PROGS(PYTHON, "$PYTHON", none)
 
 # The minimum version for the JVM runtime for our Java bytecode.
-JAVA_OLDEST_WORKING_VER='1.6'
+JAVA_OLDEST_WORKING_VER='1.8'
 # SVN_CHECK_JDK sets $JAVA_CLASSPATH
 SVN_CHECK_JDK($JAVA_OLDEST_WORKING_VER)
 
@@ -1323,7 +1328,7 @@ if test "$RUBY" != "none"; then
     if test -n "$RDOC"; then
       AC_PATH_PROG(RDOC, "$RDOC", none)
     else
-      AC_PATH_PROGS(RUBY, rdoc rdoc1 rdoc1.8 rdoc18 rdoc1.9 rdoc19 rdoc1.9.3 
rdoc193 rdoc2 rdoc2.0 rdoc20 rdoc2.1 rdoc21 rdoc2.2 rdoc22 rdoc2.3 rdoc23 
rdoc2.4 rdoc24, none)
+      AC_PATH_PROGS(RDOC, rdoc rdoc1 rdoc1.8 rdoc18 rdoc1.9 rdoc19 rdoc1.9.3 
rdoc193 rdoc2 rdoc2.0 rdoc20 rdoc2.1 rdoc21 rdoc2.2 rdoc22 rdoc2.3 rdoc23 
rdoc2.4 rdoc24, none)
     fi
     AC_CACHE_CHECK([for Ruby major version], [svn_cv_ruby_major],[
     svn_cv_ruby_major="`$RUBY -rrbconfig -e 'print 
RbConfig::CONFIG.fetch(%q(MAJOR))'`"

Modified: 
subversion/branches/swig-py3/contrib/client-side/svn_load_dirs/svn_load_dirs.pl.in
URL: 
http://svn.apache.org/viewvc/subversion/branches/swig-py3/contrib/client-side/svn_load_dirs/svn_load_dirs.pl.in?rev=1847678&r1=1847677&r2=1847678&view=diff
==============================================================================
--- 
subversion/branches/swig-py3/contrib/client-side/svn_load_dirs/svn_load_dirs.pl.in
 (original)
+++ 
subversion/branches/swig-py3/contrib/client-side/svn_load_dirs/svn_load_dirs.pl.in
 Wed Nov 28 21:25:32 2018
@@ -1205,10 +1205,11 @@ while (defined (my $load_dir = &get_next
 
                 read_from_process($svn,
                                   'propset',
-                                  $property_name,
                                   '--file',
                                   $tmpfile,
-                                  $add_file);
+                                  '--',
+                                  $property_name,
+                                  $add_file . "@");
               }
           }
       }

Modified: subversion/branches/swig-py3/contrib/client-side/svn_update.pl
URL: 
http://svn.apache.org/viewvc/subversion/branches/swig-py3/contrib/client-side/svn_update.pl?rev=1847678&r1=1847677&r2=1847678&view=diff
==============================================================================
--- subversion/branches/swig-py3/contrib/client-side/svn_update.pl (original)
+++ subversion/branches/swig-py3/contrib/client-side/svn_update.pl Wed Nov 28 
21:25:32 2018
@@ -31,7 +31,7 @@
 # given file(s) that would require >n minutes, where n is the
 # server's magic timeout (5 min.??), the server will timeout.  This
 # leaves the client/user in an unswell state.  See issue #2048 for
-# details http://subversion.tigris.org/issues/show_bug.cgi?id=2048.
+# details https://issues.apache.org/jira/browse/SVN-2048.
 #
 # One solution is to wrap the 'svn update' command in a script that
 # will perform the update one file at a time.  The problem with

Modified: 
subversion/branches/swig-py3/contrib/client-side/svnmerge/svnmerge-migrate-history.py
URL: 
http://svn.apache.org/viewvc/subversion/branches/swig-py3/contrib/client-side/svnmerge/svnmerge-migrate-history.py?rev=1847678&r1=1847677&r2=1847678&view=diff
==============================================================================
--- 
subversion/branches/swig-py3/contrib/client-side/svnmerge/svnmerge-migrate-history.py
 (original)
+++ 
subversion/branches/swig-py3/contrib/client-side/svnmerge/svnmerge-migrate-history.py
 Wed Nov 28 21:25:32 2018
@@ -259,7 +259,7 @@ class Migrator:
         # Run the final version of the new svn:mergeinfo through the
         # parser to ensure it is in canonical form, e.g. no overlapping
         # or unordered rangelists, see
-        # http://subversion.tigris.org/issues/show_bug.cgi?id=3302.
+        # https://issues.apache.org/jira/browse/SVN-3302.
         mergeinfo = svn.core.svn_mergeinfo_parse(new_mergeinfo_prop_val)
         new_mergeinfo_prop_val = mergeinfo2str(mergeinfo)
 

Modified: subversion/branches/swig-py3/contrib/client-side/svnmerge/svnmerge.py
URL: 
http://svn.apache.org/viewvc/subversion/branches/swig-py3/contrib/client-side/svnmerge/svnmerge.py?rev=1847678&r1=1847677&r2=1847678&view=diff
==============================================================================
--- subversion/branches/swig-py3/contrib/client-side/svnmerge/svnmerge.py 
(original)
+++ subversion/branches/swig-py3/contrib/client-side/svnmerge/svnmerge.py Wed 
Nov 28 21:25:32 2018
@@ -1367,7 +1367,7 @@ def action_init(target_dir, target_props
         # the copy target is the merge target, then we want to mark as
         # integrated up to the specific rev of the merge target from
         # which the merge source was copied.  (Longer discussion at:
-        # http://subversion.tigris.org/issues/show_bug.cgi?id=2810  )
+        # https://issues.apache.org/jira/browse/SVN-2810  )
         cf_source, cf_rev, copy_committed_in_rev = get_copyfrom(target_dir)
 
         cf_pathid = None

Modified: 
subversion/branches/swig-py3/contrib/hook-scripts/remove-zombie-locks.py
URL: 
http://svn.apache.org/viewvc/subversion/branches/swig-py3/contrib/hook-scripts/remove-zombie-locks.py?rev=1847678&r1=1847677&r2=1847678&view=diff
==============================================================================
--- subversion/branches/swig-py3/contrib/hook-scripts/remove-zombie-locks.py 
(original)
+++ subversion/branches/swig-py3/contrib/hook-scripts/remove-zombie-locks.py 
Wed Nov 28 21:25:32 2018
@@ -28,7 +28,7 @@ Usage: remove-zombie-locks.py REPOS-PATH
   locks on files that don't exist in the HEAD revision, removing any found.
 
   This script is a workaround for Subversion issue #2507
-  http://subversion.tigris.org/issues/show_bug.cgi?id=2507
+  https://issues.apache.org/jira/browse/SVN-2507
 
 Examples:
 

Modified: subversion/branches/swig-py3/doc/user/svn-best-practices.html
URL: 
http://svn.apache.org/viewvc/subversion/branches/swig-py3/doc/user/svn-best-practices.html?rev=1847678&r1=1847677&r2=1847678&view=diff
==============================================================================
--- subversion/branches/swig-py3/doc/user/svn-best-practices.html (original)
+++ subversion/branches/swig-py3/doc/user/svn-best-practices.html Wed Nov 28 
21:25:32 2018
@@ -240,7 +240,7 @@ while somebody else is in the process of
 <li>Users commit their day-to-day work on <tt>/trunk</tt>.</li>
 
 <li>Rule #1: <tt>/trunk</tt> must compile and pass regression tests at
-all times.  Committers who violate this rule are publically
+all times.  Committers who violate this rule are publicly
 humiliated.</li>
 
 <li>Rule #2: a single commit (changeset) must not be so large

Modified: subversion/branches/swig-py3/gen-make.py
URL: 
http://svn.apache.org/viewvc/subversion/branches/swig-py3/gen-make.py?rev=1847678&r1=1847677&r2=1847678&view=diff
==============================================================================
--- subversion/branches/swig-py3/gen-make.py (original)
+++ subversion/branches/swig-py3/gen-make.py Wed Nov 28 21:25:32 2018
@@ -48,7 +48,6 @@ sys.path.insert(1, 'build')
 
 gen_modules = {
   'make' : ('gen_make', 'Makefiles for POSIX systems'),
-  'dsp' : ('gen_msvc_dsp', 'MSVC 6.x project files'),
   'vcproj' : ('gen_vcnet_vcproj', 'VC.Net project files'),
   }
 

Modified: subversion/branches/swig-py3/notes/EuroOSCON-2005-vc-bof.txt
URL: 
http://svn.apache.org/viewvc/subversion/branches/swig-py3/notes/EuroOSCON-2005-vc-bof.txt?rev=1847678&r1=1847677&r2=1847678&view=diff
==============================================================================
--- subversion/branches/swig-py3/notes/EuroOSCON-2005-vc-bof.txt (original)
+++ subversion/branches/swig-py3/notes/EuroOSCON-2005-vc-bof.txt Wed Nov 28 
21:25:32 2018
@@ -151,7 +151,7 @@ Comments from projects that switched fro
 
 * The w.c. space penalty is a real issue for large projects.  Disk
   space is not as cheap as we thought, those .svn/text-base/* files
-  hurt.  See http://subversion.tigris.org/issues/show_bug.cgi?id=525.
+  hurt.  See https://issues.apache.org/jira/browse/SVN-525.
   
   [gerv: Random thought - if you can't easily do copy-on-write, could
   you perhaps share text-base files by hard-linking between multiple

Modified: subversion/branches/swig-py3/notes/client-configuration
URL: 
http://svn.apache.org/viewvc/subversion/branches/swig-py3/notes/client-configuration?rev=1847678&r1=1847677&r2=1847678&view=diff
==============================================================================
--- subversion/branches/swig-py3/notes/client-configuration (original)
+++ subversion/branches/swig-py3/notes/client-configuration Wed Nov 28 21:25:32 
2018
@@ -59,8 +59,8 @@ [email protected]: "Bikeshed: configuration over
 [email protected]: "Default commandline args";
     http://svn.haxx.se/dev/archive-2010-12/0449.shtml
 Issue 1974: "server-side config which 'broadcasts' to clients";
-    http://subversion.tigris.org/issues/show_bug.cgi?id=1974
+    https://issues.apache.org/jira/browse/SVN-1974
 Issue 3765: "client-configurable default args";
-    http://subversion.tigris.org/issues/show_bug.cgi?id=3765
+    https://issues.apache.org/jira/browse/SVN-3765
 Issue 3769: "Add APIs which allow library consumers to specify configuration 
options"
-    http://subversion.tigris.org/issues/show_bug.cgi?id=3769
+    https://issues.apache.org/jira/browse/SVN-3769

Modified: subversion/branches/swig-py3/notes/diff-optimizations.txt
URL: 
http://svn.apache.org/viewvc/subversion/branches/swig-py3/notes/diff-optimizations.txt?rev=1847678&r1=1847677&r2=1847678&view=diff
==============================================================================
--- subversion/branches/swig-py3/notes/diff-optimizations.txt (original)
+++ subversion/branches/swig-py3/notes/diff-optimizations.txt Wed Nov 28 
21:25:32 2018
@@ -80,7 +80,7 @@ See also issue #1966 (libsvn_diff needs
 References
 ----------
 
-[1] http://subversion.tigris.org/issues/show_bug.cgi?id=1966 (libsvn_diff
+[1] https://issues.apache.org/jira/browse/SVN-1966 (libsvn_diff
 needs 'non-minimal-diff' mode)
 [2] Miller, W., and Myers, E.W. "A File Comparison Program.", Software -
     Practice & Experience 15 (1985), pp. 1025-1040.

Modified: subversion/branches/swig-py3/notes/dump-load-format.txt
URL: 
http://svn.apache.org/viewvc/subversion/branches/swig-py3/notes/dump-load-format.txt?rev=1847678&r1=1847677&r2=1847678&view=diff
==============================================================================
--- subversion/branches/swig-py3/notes/dump-load-format.txt (original)
+++ subversion/branches/swig-py3/notes/dump-load-format.txt Wed Nov 28 21:25:32 
2018
@@ -72,6 +72,10 @@ UUID: <hex-string>
 where the <hex-string> is the UUID of the originating repository.
 An example UUID is "7bf7a5ef-cabf-0310-b7d4-93df341afa7e".
 
+As generated by Subversion, these UUIDs are "Version 1", incorporating
+the MAC of the originating machine. The presentation is in RFC4122
+form without the "urn:" or "uuid:" prefixes.
+
 ==== Revision records ====
 
 A Revision record has three headers and is usually followed by a

Modified: subversion/branches/swig-py3/notes/http-and-webdav/webdav-protocol
URL: 
http://svn.apache.org/viewvc/subversion/branches/swig-py3/notes/http-and-webdav/webdav-protocol?rev=1847678&r1=1847677&r2=1847678&view=diff
==============================================================================
--- subversion/branches/swig-py3/notes/http-and-webdav/webdav-protocol 
(original)
+++ subversion/branches/swig-py3/notes/http-and-webdav/webdav-protocol Wed Nov 
28 21:25:32 2018
@@ -425,7 +425,7 @@ Purpose: Retrieve a record of the change
 
 Target URL: Prior to Subversion 1.8, the target URL was the public
             resource URL of the aforementioned subtree.  Per issue #4287
-            (http://subversion.tigris.org/issues/show_bug.cgi?id=4287),
+            (https://issues.apache.org/jira/browse/SVN-4287),
             it was discovered that this was an incorrect approach, so
             in Subversion 1.8, mod_dav_svn allowed clients to submit
             this report (with a slightly different Request syntax)

Modified: subversion/branches/swig-py3/notes/merge-tracking/func-spec.html
URL: 
http://svn.apache.org/viewvc/subversion/branches/swig-py3/notes/merge-tracking/func-spec.html?rev=1847678&r1=1847677&r2=1847678&view=diff
==============================================================================
--- subversion/branches/swig-py3/notes/merge-tracking/func-spec.html (original)
+++ subversion/branches/swig-py3/notes/merge-tracking/func-spec.html Wed Nov 28 
21:25:32 2018
@@ -166,7 +166,7 @@ mergeinfo for the merge is set on the de
   was present in the WC despite being outside its parent's 'depth'
   attribute) and could not then re-add a node of the same name in order to
   perform both halves of an incoming replacement.  <a
-  href="http://subversion.tigris.org/issues/show_bug.cgi?id=4164"; >Issue
+  href="https://issues.apache.org/jira/browse/SVN-4164"; >Issue
   #4164 "inconsistencies in merge handling of adds vs. edits in shallow
   targets"</a> is related.</em></p>
 
@@ -264,7 +264,7 @@ SSRP - Switched subtree's repository par
 
 <h3>Delete</h3>
 
-<p><a href="http://subversion.tigris.org/issues/show_bug.cgi?id=4163";
+<p><a href="https://issues.apache.org/jira/browse/SVN-4163";
   >Issue #4163 "merged deletion of switched subtrees records non-inheritable
   mergeinfo"</a>: If a merge deletes the path SS, the desired behaviour
   is currently undefined and the actual behaviour is that a commit will
@@ -473,7 +473,7 @@ command-line could also produce an outpu
 <p>Recent discussion can be found <a
 
href="http://subversion.tigris.org/servlets/ReadMsg?listName=dev&amp;msgNo=128233";
 >here</a>.  Development is tracked <a
-href="http://subversion.tigris.org/issues/show_bug.cgi?id=2820";>here</a>.</p>
+href="https://issues.apache.org/jira/browse/SVN-2820";>here</a>.</p>
 
 <p>The <a href="requirements.html#change-set-availability">Show
 Changesets Blocked from Merging</a> portion of this feature is
@@ -493,7 +493,7 @@ allow for XML-formatted output (for mach
 <p>Recent discussion can be found <a
 
href="http://subversion.tigris.org/servlets/ReadMsg?listName=dev&amp;msgNo=128233";
 >here</a>.  Development is tracked <a
-href="http://subversion.tigris.org/issues/show_bug.cgi?id=2835";>here</a>.</p>
+href="https://issues.apache.org/jira/browse/SVN-2835";>here</a>.</p>
 
 <p>The <a href="requirements.html#find-changeset">Find Paths
 containing Specific Incarnation of Versioned Resource</a> portion of
@@ -951,7 +951,7 @@ here:</p>
   >Original API proposal</a></li>
 </ul>
 
-<p><a href="http://subversion.tigris.org/issues/show_bug.cgi?id=2022";
+<p><a href="https://issues.apache.org/jira/browse/SVN-2022";
 >Issue #2022</a> is loosely related.</p>
 
 <div class="h3" id="distributable-resolution">

Modified: subversion/branches/swig-py3/notes/merge-tracking/requirements.html
URL: 
http://svn.apache.org/viewvc/subversion/branches/swig-py3/notes/merge-tracking/requirements.html?rev=1847678&r1=1847677&r2=1847678&view=diff
==============================================================================
--- subversion/branches/swig-py3/notes/merge-tracking/requirements.html 
(original)
+++ subversion/branches/swig-py3/notes/merge-tracking/requirements.html Wed Nov 
28 21:25:32 2018
@@ -122,7 +122,7 @@ section).</p>
 
 <p><code>svn merge</code> needs to handle renames better.  This
 requires <a
-href="http://subversion.tigris.org/issues/show_bug.cgi?id=898";>true
+href="https://issues.apache.org/jira/browse/SVN-898";>true
 rename support</a>.</p>
 
 <p>Edit foo.c on branch A.  Rename foo.c to bar.c on branch B.</p>
@@ -138,7 +138,7 @@ rename support</a>.</p>
 </ol>
 
 <p>Problem #2 stems from the fact that we don't have <a
-href="http://subversion.tigris.org/issues/show_bug.cgi?id=898";>true
+href="https://issues.apache.org/jira/browse/SVN-898";>true
 renames</a>, just copies (with history) and deletes.  That's not
 fixable without a FS schema change, and (probably) a libsvn_wc
 rewrite.</p>
@@ -372,7 +372,7 @@ some filesystem backend implementation d
 items in the dump as a sort of "soft data" (which would allow them to
 be used for "translating" the merge tracking data at load time, where
 those IDs would be otherwise irrelevant).  See <a
-href="http://subversion.tigris.org/issues/show_bug.cgi?id=1525";>issue
+href="https://issues.apache.org/jira/browse/SVN-1525";>issue
 1525</a> about user-visible entity IDs.</p>
 
 </div>  <!-- dump-load -->

Modified: subversion/branches/swig-py3/notes/merge-tracking/summit.html
URL: 
http://svn.apache.org/viewvc/subversion/branches/swig-py3/notes/merge-tracking/summit.html?rev=1847678&r1=1847677&r2=1847678&view=diff
==============================================================================
--- subversion/branches/swig-py3/notes/merge-tracking/summit.html (original)
+++ subversion/branches/swig-py3/notes/merge-tracking/summit.html Wed Nov 28 
21:25:32 2018
@@ -166,7 +166,7 @@ the average user needs.</p>
   resources in the first place?  Can this be achieved with a
   finer-grained <code>svn switch</code>?  Note: This is related to the
   shared file storage issue in Subversion's own issue tracker,
-  <a href="http://subversion.tigris.org/issues/show_bug.cgi?id=2286";
+  <a href="https://issues.apache.org/jira/browse/SVN-2286";
       >issue&nbsp;#2286</a>.  It was also expressed at the
   <a
   
href="http://svn.apache.org/repos/asf/subversion/trunk/notes/EuroOSCON-2005-vc-bof.txt";

Modified: 
subversion/branches/swig-py3/notes/obliterate/obliterate-functional-spec.txt
URL: 
http://svn.apache.org/viewvc/subversion/branches/swig-py3/notes/obliterate/obliterate-functional-spec.txt?rev=1847678&r1=1847677&r2=1847678&view=diff
==============================================================================
--- 
subversion/branches/swig-py3/notes/obliterate/obliterate-functional-spec.txt 
(original)
+++ 
subversion/branches/swig-py3/notes/obliterate/obliterate-functional-spec.txt 
Wed Nov 28 21:25:32 2018
@@ -1021,7 +1021,7 @@ VII. Appendix
 
     1. Link to external documentation
 
-    [1] Issue 516: http://subversion.tigris.org/issues/show_bug.cgi?id=516
+    [1] Issue 516: https://issues.apache.org/jira/browse/SVN-516
     [2] Karl Fogel's proposal to use the replay API and filters:
         http://svn.haxx.se/dev/archive-2008-04/0687.shtml
     [3] Bob Jenkins's thread about "Auditability": keep log of what has been

Modified: subversion/branches/swig-py3/notes/tree-conflicts/design-overview.txt
URL: 
http://svn.apache.org/viewvc/subversion/branches/swig-py3/notes/tree-conflicts/design-overview.txt?rev=1847678&r1=1847677&r2=1847678&view=diff
==============================================================================
--- subversion/branches/swig-py3/notes/tree-conflicts/design-overview.txt 
(original)
+++ subversion/branches/swig-py3/notes/tree-conflicts/design-overview.txt Wed 
Nov 28 21:25:32 2018
@@ -246,10 +246,10 @@ Status: incomplete
 
   * Mark as resolved, by command: the basic "svn resolved PARENT" works to some
     extent, but needs attention.
-    Issue #3145 <http://subversion.tigris.org/issues/show_bug.cgi?id=3145>
+    Issue #3145 <https://issues.apache.org/jira/browse/SVN-3145>
 
   * Mark as resolved, interactively: not started.
-    Issue #3144 <http://subversion.tigris.org/issues/show_bug.cgi?id=3144>
+    Issue #3144 <https://issues.apache.org/jira/browse/SVN-3144>
 
 To do:
 

Modified: subversion/branches/swig-py3/notes/tree-conflicts/detection.txt
URL: 
http://svn.apache.org/viewvc/subversion/branches/swig-py3/notes/tree-conflicts/detection.txt?rev=1847678&r1=1847677&r2=1847678&view=diff
==============================================================================
--- subversion/branches/swig-py3/notes/tree-conflicts/detection.txt (original)
+++ subversion/branches/swig-py3/notes/tree-conflicts/detection.txt Wed Nov 28 
21:25:32 2018
@@ -8,7 +8,7 @@ in use-cases.txt, for both files and dir
 
 Issue reference:
 
-  http://subversion.tigris.org/issues/show_bug.cgi?id=2282
+  https://issues.apache.org/jira/browse/SVN-2282
 
 ==========
 USE CASE 1

Modified: subversion/branches/swig-py3/notes/tree-conflicts/use-cases.txt
URL: 
http://svn.apache.org/viewvc/subversion/branches/swig-py3/notes/tree-conflicts/use-cases.txt?rev=1847678&r1=1847677&r2=1847678&view=diff
==============================================================================
--- subversion/branches/swig-py3/notes/tree-conflicts/use-cases.txt (original)
+++ subversion/branches/swig-py3/notes/tree-conflicts/use-cases.txt Wed Nov 28 
21:25:32 2018
@@ -3,8 +3,8 @@
               TREE CONFLICTS USE CASES AND DESIRED BEHAVIOURS
 
 
-Issue reference:  http://subversion.tigris.org/issues/show_bug.cgi?id=2282
-                  http://subversion.tigris.org/issues/show_bug.cgi?id=3630
+Issue reference:  https://issues.apache.org/jira/browse/SVN-2282
+                  https://issues.apache.org/jira/browse/SVN-3630
 
 These use cases are based on a scenario paper "SVN move/rename
 problems & suggested improvements" submitted by a corporate Subversion

Modified: subversion/branches/swig-py3/subversion/bindings/javahl/README
URL: 
http://svn.apache.org/viewvc/subversion/branches/swig-py3/subversion/bindings/javahl/README?rev=1847678&r1=1847677&r2=1847678&view=diff
==============================================================================
--- subversion/branches/swig-py3/subversion/bindings/javahl/README (original)
+++ subversion/branches/swig-py3/subversion/bindings/javahl/README Wed Nov 28 
21:25:32 2018
@@ -5,7 +5,7 @@ JavaHL provides a (mostly native, using
 a high level Java API for Subversion, which was originally targeted for
 implementors of GUI clients and IDE plug-ins for Subversion.  JavaHL
 currently provides a minimal-but-complete set of APIs which expose the
-core Subversion C API to Java.  It requires a JRE 1.6+ (runtime).
+core Subversion C API to Java.  It requires a JRE 1.8+ (runtime).
 
 It is currently quite mature, and can be considered for production use.
 
@@ -14,7 +14,7 @@ Build system
 ------------
 
 JavaHL should compile and run under Linux, Win32, and Mac OS X with
-JDK 1.6+ and a C++ compiler with a complete implementation of
+JDK 1.8+ and a C++ compiler with a complete implementation of
 C++98 (for example, GCC 3.2 and older cannot compile JavaHL 1.9+).
 
 Its build will produce both a native library (libsvnjavahl-1.so on Unix

Modified: 
subversion/branches/swig-py3/subversion/bindings/javahl/native/JNIUtil.cpp
URL: 
http://svn.apache.org/viewvc/subversion/branches/swig-py3/subversion/bindings/javahl/native/JNIUtil.cpp?rev=1847678&r1=1847677&r2=1847678&view=diff
==============================================================================
--- subversion/branches/swig-py3/subversion/bindings/javahl/native/JNIUtil.cpp 
(original)
+++ subversion/branches/swig-py3/subversion/bindings/javahl/native/JNIUtil.cpp 
Wed Nov 28 21:25:32 2018
@@ -578,16 +578,17 @@ jthrowable JNIUtil::wrappedCreateClientE
   if (JNIUtil::isJavaExceptionThrown())
     return NULL;
 
-  const char *source = NULL;
+  std::string source;
 #ifdef SVN_DEBUG
 #ifndef SVN_ERR__TRACING
   if (err->file)
     {
-      std::ostringstream buf;
-      buf << err->file;
+      source = err->file;
       if (err->line > 0)
-        buf << ':' << err->line;
-      source = buf.str().c_str();
+        {
+          source += ':';
+          source += err->line;
+        }
     }
 #endif
 #endif
@@ -615,7 +616,7 @@ jthrowable JNIUtil::wrappedCreateClientE
       JNICriticalSection cs(*g_logMutex);
       g_logStream << "Subversion JavaHL exception thrown, message:<";
       g_logStream << msg << ">";
-      if (source)
+      if (!source.empty())
         g_logStream << " source:<" << source << ">";
       if (err->apr_err != -1)
         g_logStream << " apr-err:<" << err->apr_err << ">";
@@ -624,7 +625,7 @@ jthrowable JNIUtil::wrappedCreateClientE
   if (isJavaExceptionThrown())
     POP_AND_RETURN_NULL;
 
-  jstring jsource = makeJString(source);
+  jstring jsource = (source.empty() ? NULL : makeJString(source.c_str()));
   if (isJavaExceptionThrown())
     POP_AND_RETURN_NULL;
 

Modified: 
subversion/branches/swig-py3/subversion/bindings/javahl/native/SVNClient.cpp
URL: 
http://svn.apache.org/viewvc/subversion/branches/swig-py3/subversion/bindings/javahl/native/SVNClient.cpp?rev=1847678&r1=1847677&r2=1847678&view=diff
==============================================================================
--- 
subversion/branches/swig-py3/subversion/bindings/javahl/native/SVNClient.cpp 
(original)
+++ 
subversion/branches/swig-py3/subversion/bindings/javahl/native/SVNClient.cpp 
Wed Nov 28 21:25:32 2018
@@ -1055,7 +1055,8 @@ void SVNClient::diff(const char *target1
                                    options.useGitDiffFormat(),
                                    SVN_APR_LOCALE_CHARSET,
                                    outputStream.getStream(subPool),
-                                   NULL /* error file */,
+                                   // Discard stderr; TODO: Update JavaHL API
+                                   svn_stream_empty(subPool.getPool()),
                                    changelists.array(subPool),
                                    ctx,
                                    subPool.getPool()),
@@ -1084,7 +1085,8 @@ void SVNClient::diff(const char *target1
                                options.useGitDiffFormat(),
                                SVN_APR_LOCALE_CHARSET,
                                outputStream.getStream(subPool),
-                               NULL /* error stream */,
+                               // Discard stderr; TODO: Update JavaHL API
+                               svn_stream_empty(subPool.getPool()),
                                changelists.array(subPool),
                                ctx,
                                subPool.getPool()),

Modified: 
subversion/branches/swig-py3/subversion/bindings/javahl/native/SVNRepos.cpp
URL: 
http://svn.apache.org/viewvc/subversion/branches/swig-py3/subversion/bindings/javahl/native/SVNRepos.cpp?rev=1847678&r1=1847677&r2=1847678&view=diff
==============================================================================
--- subversion/branches/swig-py3/subversion/bindings/javahl/native/SVNRepos.cpp 
(original)
+++ subversion/branches/swig-py3/subversion/bindings/javahl/native/SVNRepos.cpp 
Wed Nov 28 21:25:32 2018
@@ -332,6 +332,7 @@ void SVNRepos::load(File &path,
                     bool usePostCommitHook,
                     bool validateProps,
                     bool ignoreDates,
+                    bool normalizeProps,
                     const char *relativePath,
                     ReposNotifyCallback *notifyCallback)
 {
@@ -368,10 +369,10 @@ void SVNRepos::load(File &path,
                               path.getInternalStyle(requestPool), NULL,
                               requestPool.getPool(), requestPool.getPool()), );
 
-  SVN_JNI_ERR(svn_repos_load_fs5(repos, dataIn.getStream(requestPool),
+  SVN_JNI_ERR(svn_repos_load_fs6(repos, dataIn.getStream(requestPool),
                                  lower, upper, uuid_action, relativePath,
                                  usePreCommitHook, usePostCommitHook,
-                                 validateProps, ignoreDates,
+                                 validateProps, ignoreDates, normalizeProps,
                                  notifyCallback != NULL
                                     ? ReposNotifyCallback::notify
                                     : NULL,

Modified: 
subversion/branches/swig-py3/subversion/bindings/javahl/native/SVNRepos.h
URL: 
http://svn.apache.org/viewvc/subversion/branches/swig-py3/subversion/bindings/javahl/native/SVNRepos.h?rev=1847678&r1=1847677&r2=1847678&view=diff
==============================================================================
--- subversion/branches/swig-py3/subversion/bindings/javahl/native/SVNRepos.h 
(original)
+++ subversion/branches/swig-py3/subversion/bindings/javahl/native/SVNRepos.h 
Wed Nov 28 21:25:32 2018
@@ -61,7 +61,7 @@ class SVNRepos : public SVNBase
             Revision &revsionStart, Revision &revisionEnd,
             bool ignoreUUID, bool forceUUID,
             bool usePreCommitHook, bool usePostCommitHook,
-            bool validateProps, bool ignoreDates,
+            bool validateProps, bool ignoreDates, bool normalizeProps,
             const char *relativePath, ReposNotifyCallback *notifyCallback);
   void listUnusedDBLogs(File &path,
                         MessageReceiver &messageReceiver);

Modified: 
subversion/branches/swig-py3/subversion/bindings/javahl/native/jniwrapper/jni_list.hpp
URL: 
http://svn.apache.org/viewvc/subversion/branches/swig-py3/subversion/bindings/javahl/native/jniwrapper/jni_list.hpp?rev=1847678&r1=1847677&r2=1847678&view=diff
==============================================================================
--- 
subversion/branches/swig-py3/subversion/bindings/javahl/native/jniwrapper/jni_list.hpp
 (original)
+++ 
subversion/branches/swig-py3/subversion/bindings/javahl/native/jniwrapper/jni_list.hpp
 Wed Nov 28 21:25:32 2018
@@ -173,7 +173,10 @@ public:
     {
       Iterator iter(get_iterator());
       while (iter.has_next())
-        function(T(m_env, NativeT(iter.next())));
+        {
+          ::Java::LocalFrame frame(m_env);
+          function(T(m_env, NativeT(iter.next())));
+        }
       return function;
     }
 };

Modified: 
subversion/branches/swig-py3/subversion/bindings/javahl/native/org_apache_subversion_javahl_SVNRepos.cpp
URL: 
http://svn.apache.org/viewvc/subversion/branches/swig-py3/subversion/bindings/javahl/native/org_apache_subversion_javahl_SVNRepos.cpp?rev=1847678&r1=1847677&r2=1847678&view=diff
==============================================================================
--- 
subversion/branches/swig-py3/subversion/bindings/javahl/native/org_apache_subversion_javahl_SVNRepos.cpp
 (original)
+++ 
subversion/branches/swig-py3/subversion/bindings/javahl/native/org_apache_subversion_javahl_SVNRepos.cpp
 Wed Nov 28 21:25:32 2018
@@ -247,7 +247,7 @@ Java_org_apache_subversion_javahl_SVNRep
     jobject jrevisionStart, jobject jrevisionEnd,
     jboolean jignoreUUID, jboolean jforceUUID,
     jboolean jusePreCommitHook, jboolean jusePostCommitHook,
-    jboolean jvalidateProps, jboolean jignoreDates,
+    jboolean jvalidateProps, jboolean jignoreDates, jboolean jnormalizeProps,
     jstring jrelativePath, jobject jnotifyCallback)
 {
   JNIEntry(SVNRepos, load);
@@ -287,6 +287,7 @@ Java_org_apache_subversion_javahl_SVNRep
            jusePostCommitHook ? true : false,
            jvalidateProps ? true : false,
            jignoreDates ? true : false,
+           jnormalizeProps ? true : false,
            relativePath,
            (jnotifyCallback != NULL ? &notifyCallback : NULL));
 }

Modified: 
subversion/branches/swig-py3/subversion/bindings/javahl/src/org/apache/subversion/javahl/CommitItemStateFlags.java
URL: 
http://svn.apache.org/viewvc/subversion/branches/swig-py3/subversion/bindings/javahl/src/org/apache/subversion/javahl/CommitItemStateFlags.java?rev=1847678&r1=1847677&r2=1847678&view=diff
==============================================================================
--- 
subversion/branches/swig-py3/subversion/bindings/javahl/src/org/apache/subversion/javahl/CommitItemStateFlags.java
 (original)
+++ 
subversion/branches/swig-py3/subversion/bindings/javahl/src/org/apache/subversion/javahl/CommitItemStateFlags.java
 Wed Nov 28 21:25:32 2018
@@ -23,6 +23,8 @@
 
 package org.apache.subversion.javahl;
 
+import java.lang.annotation.*;
+
 /**
  * The constants in this interface describe the changes to an item to
  * be committed.
@@ -32,36 +34,43 @@ public interface CommitItemStateFlags
     /**
      * the item has been added
      */
+    @Native
     public static final int Add=1;
 
     /**
      * the item has been deleted
      */
+    @Native
     public static final int Delete=2;
 
     /**
      * the item has text modifications
      */
+    @Native
     public static final int TextMods=4;
 
     /**
      * the item has property modifications
      */
+    @Native
     public static final int PropMods=8;
 
     /**
      * the item has been copied
      */
+    @Native
     public static final int IsCopy=16;
 
     /**
      * the item has a lock token
      */
+    @Native
     public static final int LockToken = 32;
 
     /**
      * the item was moved to this location
      * @since 1.8
      */
+    @Native
     public static int MovedHere = 64;
 }

Modified: 
subversion/branches/swig-py3/subversion/bindings/javahl/src/org/apache/subversion/javahl/ISVNRepos.java
URL: 
http://svn.apache.org/viewvc/subversion/branches/swig-py3/subversion/bindings/javahl/src/org/apache/subversion/javahl/ISVNRepos.java?rev=1847678&r1=1847677&r2=1847678&view=diff
==============================================================================
--- 
subversion/branches/swig-py3/subversion/bindings/javahl/src/org/apache/subversion/javahl/ISVNRepos.java
 (original)
+++ 
subversion/branches/swig-py3/subversion/bindings/javahl/src/org/apache/subversion/javahl/ISVNRepos.java
 Wed Nov 28 21:25:32 2018
@@ -151,6 +151,39 @@ public interface ISVNRepos {
      * load the data of a dump into a repository
      * @param path              the path to the repository
      * @param dataInput         the data input source
+     * @param start             the first revision to load
+     * @param end               the last revision to load
+     * @param ignoreUUID        ignore any UUID found in the input stream
+     * @param forceUUID         set the repository UUID to any found in the
+     *                          stream
+     * @param usePreCommitHook  use the pre-commit hook when processing commits
+     * @param usePostCommitHook use the post-commit hook when processing 
commits
+     * @param validateProps     validate "svn:" revision and node properties
+     * @param ignoreDates       ignore revision datestamps in the dump stream
+     * @param normalizeProps    attempt to normalize invalid Subversion
+     *                          revision and node properties
+     * @param relativePath      the directory in the repository, where the data
+     *                          in put optional.
+     * @param callback          the target for processing messages
+     * @throws ClientException  throw in case of problem
+     * @since 1.10
+     */
+    public abstract void load(File path, InputStream dataInput,
+                              Revision start, Revision end,
+                              boolean ignoreUUID, boolean forceUUID,
+                              boolean usePreCommitHook,
+                              boolean usePostCommitHook,
+                              boolean validateProps,
+                              boolean ignoreDates,
+                              boolean normalizeProps,
+                              String relativePath,
+                              ReposNotifyCallback callback)
+        throws ClientException;
+
+    /**
+     * load the data of a dump into a repository
+     * @param path              the path to the repository
+     * @param dataInput         the data input source
          * @param start             the first revision to load
          * @param end               the last revision to load
      * @param ignoreUUID        ignore any UUID found in the input stream

Modified: 
subversion/branches/swig-py3/subversion/bindings/javahl/src/org/apache/subversion/javahl/NativeResources.java
URL: 
http://svn.apache.org/viewvc/subversion/branches/swig-py3/subversion/bindings/javahl/src/org/apache/subversion/javahl/NativeResources.java?rev=1847678&r1=1847677&r2=1847678&view=diff
==============================================================================
--- 
subversion/branches/swig-py3/subversion/bindings/javahl/src/org/apache/subversion/javahl/NativeResources.java
 (original)
+++ 
subversion/branches/swig-py3/subversion/bindings/javahl/src/org/apache/subversion/javahl/NativeResources.java
 Wed Nov 28 21:25:32 2018
@@ -142,7 +142,7 @@ public class NativeResources
     private static final void init()
     {
         final int SVN_VER_MAJOR = 1;
-        final int SVN_VER_MINOR = 11;
+        final int SVN_VER_MINOR = 12;
         initNativeLibrary();
         version = new Version();
         if (!version.isAtLeast(SVN_VER_MAJOR, SVN_VER_MINOR, 0))

Modified: 
subversion/branches/swig-py3/subversion/bindings/javahl/src/org/apache/subversion/javahl/SVNRepos.java
URL: 
http://svn.apache.org/viewvc/subversion/branches/swig-py3/subversion/bindings/javahl/src/org/apache/subversion/javahl/SVNRepos.java?rev=1847678&r1=1847677&r2=1847678&view=diff
==============================================================================
--- 
subversion/branches/swig-py3/subversion/bindings/javahl/src/org/apache/subversion/javahl/SVNRepos.java
 (original)
+++ 
subversion/branches/swig-py3/subversion/bindings/javahl/src/org/apache/subversion/javahl/SVNRepos.java
 Wed Nov 28 21:25:32 2018
@@ -160,6 +160,17 @@ public class SVNRepos implements ISVNRep
             throws ClientException;
 
     public void load(File path, InputStream dataInput,
+                     boolean ignoreUUID, boolean forceUUID,
+                     boolean usePreCommitHook, boolean usePostCommitHook,
+                     String relativePath, ReposNotifyCallback callback)
+        throws ClientException
+    {
+        load(path, dataInput, Revision.START, Revision.HEAD,
+             ignoreUUID, forceUUID, usePreCommitHook, usePostCommitHook,
+             false, false, false, relativePath, callback);
+    }
+
+    public void load(File path, InputStream dataInput,
                      Revision start, Revision end,
                      boolean ignoreUUID, boolean forceUUID,
                      boolean usePreCommitHook, boolean usePostCommitHook,
@@ -168,18 +179,20 @@ public class SVNRepos implements ISVNRep
     {
         load(path, dataInput, start, end,
              ignoreUUID, forceUUID, usePreCommitHook, usePostCommitHook,
-             false, false, relativePath, callback);
+             false, false, false, relativePath, callback);
     }
 
     public void load(File path, InputStream dataInput,
+                     Revision start, Revision end,
                      boolean ignoreUUID, boolean forceUUID,
                      boolean usePreCommitHook, boolean usePostCommitHook,
+                     boolean validateProps, boolean ignoreDates,
                      String relativePath, ReposNotifyCallback callback)
-            throws ClientException
+        throws ClientException
     {
-        load(path, dataInput, Revision.START, Revision.HEAD,
+        load(path, dataInput, start, end,
              ignoreUUID, forceUUID, usePreCommitHook, usePostCommitHook,
-             false, false, relativePath, callback);
+             validateProps, ignoreDates, false, relativePath, callback);
     }
 
     public native void load(File path, InputStream dataInput,
@@ -187,6 +200,7 @@ public class SVNRepos implements ISVNRep
                             boolean ignoreUUID, boolean forceUUID,
                             boolean usePreCommitHook, boolean 
usePostCommitHook,
                             boolean validateProps, boolean ignoreDates,
+                            boolean normalizeProps,
                             String relativePath, ReposNotifyCallback callback)
             throws ClientException;
 

Modified: 
subversion/branches/swig-py3/subversion/bindings/javahl/src/org/apache/subversion/javahl/callback/UserPasswordCallback.java
URL: 
http://svn.apache.org/viewvc/subversion/branches/swig-py3/subversion/bindings/javahl/src/org/apache/subversion/javahl/callback/UserPasswordCallback.java?rev=1847678&r1=1847677&r2=1847678&view=diff
==============================================================================
--- 
subversion/branches/swig-py3/subversion/bindings/javahl/src/org/apache/subversion/javahl/callback/UserPasswordCallback.java
 (original)
+++ 
subversion/branches/swig-py3/subversion/bindings/javahl/src/org/apache/subversion/javahl/callback/UserPasswordCallback.java
 Wed Nov 28 21:25:32 2018
@@ -23,6 +23,8 @@
 
 package org.apache.subversion.javahl.callback;
 
+import java.lang.annotation.*;
+
 /**
  * <p>The interface for requesting authentication credentials from the
  * user.  Should the javahl bindings need the matching information,
@@ -40,16 +42,19 @@ public interface UserPasswordCallback
     /**
      * Reject the connection to the server.
      */
+    @Native
     public static final int Reject = 0;
 
     /**
      * Accept the connection to the server <i>once</i>.
      */
+    @Native
     public static final int AcceptTemporary = 1;
 
     /**
      * Accept the connection to the server <i>forever</i>.
      */
+    @Native
     public static final int AcceptPermanently = 2;
 
     /**

Modified: 
subversion/branches/swig-py3/subversion/bindings/javahl/src/org/apache/subversion/javahl/types/Revision.java
URL: 
http://svn.apache.org/viewvc/subversion/branches/swig-py3/subversion/bindings/javahl/src/org/apache/subversion/javahl/types/Revision.java?rev=1847678&r1=1847677&r2=1847678&view=diff
==============================================================================
--- 
subversion/branches/swig-py3/subversion/bindings/javahl/src/org/apache/subversion/javahl/types/Revision.java
 (original)
+++ 
subversion/branches/swig-py3/subversion/bindings/javahl/src/org/apache/subversion/javahl/types/Revision.java
 Wed Nov 28 21:25:32 2018
@@ -23,6 +23,7 @@
 
 package org.apache.subversion.javahl.types;
 
+import java.lang.annotation.*;
 import java.text.SimpleDateFormat;
 import java.util.Date;
 import java.util.Locale;
@@ -179,6 +180,7 @@ public class Revision implements java.io
     /**
      * Marker revision number for no real revision
      */
+    @Native
     public static final int SVN_INVALID_REVNUM = -1;
 
     /**


Reply via email to