summaryrefslogtreecommitdiffstats
path: root/meta/recipes-devtools/subversion/subversion/subversion-1.12.0-apr_1.7.0_fix-1.patch
diff options
context:
space:
mode:
Diffstat (limited to 'meta/recipes-devtools/subversion/subversion/subversion-1.12.0-apr_1.7.0_fix-1.patch')
-rw-r--r--meta/recipes-devtools/subversion/subversion/subversion-1.12.0-apr_1.7.0_fix-1.patch107
1 files changed, 107 insertions, 0 deletions
diff --git a/meta/recipes-devtools/subversion/subversion/subversion-1.12.0-apr_1.7.0_fix-1.patch b/meta/recipes-devtools/subversion/subversion/subversion-1.12.0-apr_1.7.0_fix-1.patch
new file mode 100644
index 0000000000..f0edd5fe8a
--- /dev/null
+++ b/meta/recipes-devtools/subversion/subversion/subversion-1.12.0-apr_1.7.0_fix-1.patch
@@ -0,0 +1,107 @@
+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
+