Author: pierre
Date: Wed Apr 17 13:37:07 2019
New Revision: 3915

Log:
Patch subversion for building with apr-1.7.0

Added:
   trunk/subversion/subversion-1.11.1-apr_1.7.0_fix-1.patch

Added: trunk/subversion/subversion-1.11.1-apr_1.7.0_fix-1.patch
==============================================================================
--- /dev/null   00:00:00 1970   (empty, because file is newly added)
+++ trunk/subversion/subversion-1.11.1-apr_1.7.0_fix-1.patch    Wed Apr 17 
13:37:07 2019        (r3915)
@@ -0,0 +1,90 @@
+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.
+--- trunk/build/ac-macros/swig.m4      2019/04/12 09:27:12     1857390
++++ trunk/build/ac-macros/swig.m4      2019/04/12 09:27:33     1857391
+@@ -128,41 +128,6 @@
+       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
+--- trunk/subversion/bindings/swig/python/libsvn_swig_py/swigutil_py.c 
2019/04/12 09:27:12     1857390
++++ trunk/subversion/bindings/swig/python/libsvn_swig_py/swigutil_py.c 
2019/04/12 09:27:33     1857391
+@@ -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"
+@@ -3369,10 +3369,9 @@
+   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();
+     }
-- 
http://lists.linuxfromscratch.org/listinfo/patches
FAQ: http://www.linuxfromscratch.org/blfs/faq.html
Unsubscribe: See the above information page

Reply via email to