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&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&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 #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 ? ¬ifyCallback : 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; /**
