From b147803553237654f8268e831dee8fed4989ad3b Mon Sep 17 00:00:00 2001
From: Hongxu Jia <hongxu.jia@windriver.com>
Date: Sat, 11 May 2019 14:46:39 +0800
Subject: [PATCH] Submitted By: Pierre Labastie (pierre dot labastie at neuf
 dot fr) Date: 2019-04-17 Initial Package Version: 1.11.1 Origin: Upstream
 revision 1857391 Upstream Status: Committed Description: Get rid of
 apr_int64_t format string check in swig py configure.

This check relied on APR implementation details and broke with APR 1.7.0.
Rather than trying to guess a perfect format string to use, just use the
largest possible format and cast the argument accordingly.

Should fix build against APR 1.7.0 and later.

Suggested by: brane

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

* subversion/bindings/swig/python/libsvn_swig_py/swigutil_py.c
  (svn_swig_py_client_blame_receiver_func): Stop relying on the
   SVN_APR_INT64_T_PYCFMT constant from configure. Use "L" and
   acast to PY_LONG_LONG instead.

Upstream-Status: Backport [www.linuxfromscratch.org/patches/blfs/svn/subversion-1.12.0-apr_1.7.0_fix-1.patch]

Signed-off-by: Hongxu Jia <hongxu.jia@windriver.com>
---
 build/ac-macros/swig.m4                            | 35 ----------------------
 .../swig/python/libsvn_swig_py/swigutil_py.c       |  9 +++---
 2 files changed, 4 insertions(+), 40 deletions(-)

diff --git a/build/ac-macros/swig.m4 b/build/ac-macros/swig.m4
index 55501fb..2963872 100644
--- a/build/ac-macros/swig.m4
+++ b/build/ac-macros/swig.m4
@@ -128,41 +128,6 @@ AC_DEFUN(SVN_FIND_SWIG,
       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)`"
-
-    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"
-    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
 
   if test "$PERL" != "none"; then
diff --git a/subversion/bindings/swig/python/libsvn_swig_py/swigutil_py.c b/subversion/bindings/swig/python/libsvn_swig_py/swigutil_py.c
index 2c90a6a..abe5a2a 100644
--- a/subversion/bindings/swig/python/libsvn_swig_py/swigutil_py.c
+++ b/subversion/bindings/swig/python/libsvn_swig_py/swigutil_py.c
@@ -46,7 +46,7 @@
 #include "svn_mergeinfo.h"
 #include "svn_types.h"
 
-#include "svn_private_config.h" /* for SVN_APR_INT64_T_PYCFMT */
+#include "svn_private_config.h"
 
 #include "swig_python_external_runtime.swg"
 #include "swigutil_py.h"
@@ -3394,10 +3394,9 @@ svn_error_t *svn_swig_py_client_blame_receiver_func(void *baton,
   svn_swig_py_acquire_py_lock();
 
   if ((result = PyObject_CallFunction(receiver,
-                                      (char *)
-                                      (SVN_APR_INT64_T_PYCFMT "lsssO&"),
-                                      line_no, revision, author, date, line,
-                                      make_ob_pool, pool)) == NULL)
+                                      (char *)"LlsssO&",
+                                      (PY_LONG_LONG)line_no, revision, author,
+                                      date, line, make_ob_pool, pool)) == NULL)
     {
       err = callback_exception_error();
     }
-- 
2.7.4

