diff options
author | bsiegert <bsiegert@pkgsrc.org> | 2019-08-09 13:09:32 +0000 |
---|---|---|
committer | bsiegert <bsiegert@pkgsrc.org> | 2019-08-09 13:09:32 +0000 |
commit | f1ee211aa95579ba276c625f95f94e2576b92c18 (patch) | |
tree | 102b0e116a05aee4051c356076af37755cd60d8b | |
parent | 1c58db8f02e2254c13d63327f5885a519777a33b (diff) | |
download | pkgsrc-f1ee211aa95579ba276c625f95f94e2576b92c18.tar.gz |
Pullup ticket #6013 - requested by bacon
devel/subversion: build fix
Revisions pulled up:
- devel/subversion/distinfo 1.113
- devel/subversion/patches/patch-configure 1.5
- devel/subversion/patches/patch-subversion_bindings_swig_python_libsvn_swig_py_swigutil_py.c 1.1
---
Module Name: pkgsrc
Committed By: markd
Date: Wed Jul 3 10:42:54 UTC 2019
Modified Files:
pkgsrc/devel/subversion: distinfo
pkgsrc/devel/subversion/patches: patch-configure
Added Files:
pkgsrc/devel/subversion/patches:
patch-subversion_bindings_swig_python_libsvn_swig_py_swigutil_py.c
Log Message:
subversion: more reliable fix for APR 1.7.0
From: Stefan Sperling <stsp%apache.org@localhost>
Date: Fri, 12 Apr 2019 09:27:33 +0000
Subject: [PATCH] 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.
-rw-r--r-- | devel/subversion/distinfo | 5 | ||||
-rw-r--r-- | devel/subversion/patches/patch-configure | 330 | ||||
-rw-r--r-- | devel/subversion/patches/patch-subversion_bindings_swig_python_libsvn_swig_py_swigutil_py.c | 47 |
3 files changed, 315 insertions, 67 deletions
diff --git a/devel/subversion/distinfo b/devel/subversion/distinfo index 49eed6e4d08..fc1dd784803 100644 --- a/devel/subversion/distinfo +++ b/devel/subversion/distinfo @@ -1,10 +1,11 @@ -$NetBSD: distinfo,v 1.112 2019/05/27 16:10:08 ryoon Exp $ +$NetBSD: distinfo,v 1.112.2.1 2019/08/09 13:09:32 bsiegert Exp $ SHA1 (subversion-1.12.0.tar.bz2) = 2dfecac56f18951182dbee4a4f14d27f27ebcdb7 RMD160 (subversion-1.12.0.tar.bz2) = cd06e97d3e109796c3370cb7633081805ee4d957 SHA512 (subversion-1.12.0.tar.bz2) = 87a00b23bdac63124fa00642e2ac7e6f7818b092bc6422cabdeb2ca8fbc8c481fb8c1e4fbd86aac94e8e1fc099fa163aa0609aca23265ceb96ef4ebe78a64c13 Size (subversion-1.12.0.tar.bz2) = 8504473 bytes SHA1 (patch-Makefile.in) = 2df6c733d563c0bc7e0d1b4b6e6e00f82ea8c176 -SHA1 (patch-configure) = d0454b65964c6d37753e0b674c2e30205df193a1 +SHA1 (patch-configure) = 3a0650395111c400c9bf0418cd31510e7179f454 SHA1 (patch-subversion_bindings_swig_perl_native_Makefile.PL.in) = 3fadde312693f2a304cd7e348c66cbd373c57854 +SHA1 (patch-subversion_bindings_swig_python_libsvn_swig_py_swigutil_py.c) = ed75c4d2fbc911a97bc47e78eaebc5b61078332b SHA1 (patch-tools_dev_benchmarks_large__dirs_create__bigdir.sh) = ff19087ff4d348fdcf904eb52406f6b717fe444a diff --git a/devel/subversion/patches/patch-configure b/devel/subversion/patches/patch-configure index 76e939a5b45..c58b7a066da 100644 --- a/devel/subversion/patches/patch-configure +++ b/devel/subversion/patches/patch-configure @@ -1,78 +1,278 @@ -$NetBSD: patch-configure,v 1.4 2019/05/27 16:10:08 ryoon Exp $ +$NetBSD: patch-configure,v 1.4.2.1 2019/08/09 13:09:32 bsiegert Exp $ * Fix build with devel/apr-1.7.0 --- configure.orig 2019-04-11 13:21:28.000000000 +0000 +++ configure -@@ -24344,7 +24344,7 @@ else - MaTcHtHiS APR_INT64_T_FMT EnDeNd - _ACEOF - if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | +@@ -24329,67 +24329,6 @@ $as_echo "$ac_cv_python_libs" >&6; } + fi + `" + +- SVN_PYCFMT_SAVE_CPPFLAGS="$CPPFLAGS" +- CPPFLAGS="$CPPFLAGS $SVN_APR_INCLUDES" +- { $as_echo "$as_me:${as_lineno-$LINENO}: checking for apr_int64_t Python/C API format string" >&5 +-$as_echo_n "checking for apr_int64_t Python/C API format string... " >&6; } +-if ${svn_cv_pycfmt_apr_int64_t+:} false; then : +- $as_echo_n "(cached) " >&6 +-else +- +- if test "x$svn_cv_pycfmt_apr_int64_t" = "x"; then +- cat confdefs.h - <<_ACEOF >conftest.$ac_ext +-/* end confdefs.h. */ +-#include <apr.h> +- MaTcHtHiS APR_INT64_T_FMT EnDeNd +-_ACEOF +-if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | - $EGREP "MaTcHtHiS +\"lld\" +EnDeNd" >/dev/null 2>&1; then : -+ $EGREP "MaTcHtHiS +\"ll(\" *\")?d\" +EnDeNd" >/dev/null 2>&1; then : - svn_cv_pycfmt_apr_int64_t="L" - fi - rm -f conftest* -@@ -24358,7 +24358,7 @@ r - MaTcHtHiS APR_INT64_T_FMT EnDeNd - _ACEOF - if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | +- svn_cv_pycfmt_apr_int64_t="L" +-fi +-rm -f conftest* +- +- fi +- if test "x$svn_cv_pycfmt_apr_int64_t" = "x"; then +- cat confdefs.h - <<_ACEOF >conftest.$ac_ext +-/* end confdefs.h. */ +-r +- #include <apr.h> +- MaTcHtHiS APR_INT64_T_FMT EnDeNd +-_ACEOF +-if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | - $EGREP "MaTcHtHiS +\"ld\" +EnDeNd" >/dev/null 2>&1; then : -+ $EGREP "MaTcHtHiS +\"l(\" *\")?d\" +EnDeNd" >/dev/null 2>&1; then : - svn_cv_pycfmt_apr_int64_t="l" - fi - rm -f conftest* -@@ -24859,7 +24859,7 @@ else - MaTcHtHiS APR_INT64_T_FMT EnDeNd - _ACEOF - if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | +- svn_cv_pycfmt_apr_int64_t="l" +-fi +-rm -f conftest* +- +- fi +- if test "x$svn_cv_pycfmt_apr_int64_t" = "x"; then +- cat confdefs.h - <<_ACEOF >conftest.$ac_ext +-/* end confdefs.h. */ +-#include <apr.h> +- MaTcHtHiS APR_INT64_T_FMT EnDeNd +-_ACEOF +-if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | +- $EGREP "MaTcHtHiS +\"d\" +EnDeNd" >/dev/null 2>&1; then : +- svn_cv_pycfmt_apr_int64_t="i" +-fi +-rm -f conftest* +- +- fi +- +-fi +-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $svn_cv_pycfmt_apr_int64_t" >&5 +-$as_echo "$svn_cv_pycfmt_apr_int64_t" >&6; } +- CPPFLAGS="$SVN_PYCFMT_SAVE_CPPFLAGS" +- if test "x$svn_cv_pycfmt_apr_int64_t" = "x"; then +- as_fn_error $? "failed to recognize APR_INT64_T_FMT on this platform" "$LINENO" 5 +- fi +- +-cat >>confdefs.h <<_ACEOF +-#define SVN_APR_INT64_T_PYCFMT "$svn_cv_pycfmt_apr_int64_t" +-_ACEOF +- + fi + + if test "$PERL" != "none"; then +@@ -24844,67 +24783,6 @@ $as_echo "$ac_cv_python_libs" >&6; } + fi + `" + +- SVN_PYCFMT_SAVE_CPPFLAGS="$CPPFLAGS" +- CPPFLAGS="$CPPFLAGS $SVN_APR_INCLUDES" +- { $as_echo "$as_me:${as_lineno-$LINENO}: checking for apr_int64_t Python/C API format string" >&5 +-$as_echo_n "checking for apr_int64_t Python/C API format string... " >&6; } +-if ${svn_cv_pycfmt_apr_int64_t+:} false; then : +- $as_echo_n "(cached) " >&6 +-else +- +- if test "x$svn_cv_pycfmt_apr_int64_t" = "x"; then +- cat confdefs.h - <<_ACEOF >conftest.$ac_ext +-/* end confdefs.h. */ +-#include <apr.h> +- MaTcHtHiS APR_INT64_T_FMT EnDeNd +-_ACEOF +-if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | - $EGREP "MaTcHtHiS +\"lld\" +EnDeNd" >/dev/null 2>&1; then : -+ $EGREP "MaTcHtHiS +\"ll(\" *\")?d\" +EnDeNd" >/dev/null 2>&1; then : - svn_cv_pycfmt_apr_int64_t="L" - fi - rm -f conftest* -@@ -24873,7 +24873,7 @@ r - MaTcHtHiS APR_INT64_T_FMT EnDeNd - _ACEOF - if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | +- svn_cv_pycfmt_apr_int64_t="L" +-fi +-rm -f conftest* +- +- fi +- if test "x$svn_cv_pycfmt_apr_int64_t" = "x"; then +- cat confdefs.h - <<_ACEOF >conftest.$ac_ext +-/* end confdefs.h. */ +-r +- #include <apr.h> +- MaTcHtHiS APR_INT64_T_FMT EnDeNd +-_ACEOF +-if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | - $EGREP "MaTcHtHiS +\"ld\" +EnDeNd" >/dev/null 2>&1; then : -+ $EGREP "MaTcHtHiS +\"l(\" *\")?d\" +EnDeNd" >/dev/null 2>&1; then : - svn_cv_pycfmt_apr_int64_t="l" - fi - rm -f conftest* -@@ -25374,7 +25374,7 @@ else - MaTcHtHiS APR_INT64_T_FMT EnDeNd - _ACEOF - if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | +- svn_cv_pycfmt_apr_int64_t="l" +-fi +-rm -f conftest* +- +- fi +- if test "x$svn_cv_pycfmt_apr_int64_t" = "x"; then +- cat confdefs.h - <<_ACEOF >conftest.$ac_ext +-/* end confdefs.h. */ +-#include <apr.h> +- MaTcHtHiS APR_INT64_T_FMT EnDeNd +-_ACEOF +-if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | +- $EGREP "MaTcHtHiS +\"d\" +EnDeNd" >/dev/null 2>&1; then : +- svn_cv_pycfmt_apr_int64_t="i" +-fi +-rm -f conftest* +- +- fi +- +-fi +-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $svn_cv_pycfmt_apr_int64_t" >&5 +-$as_echo "$svn_cv_pycfmt_apr_int64_t" >&6; } +- CPPFLAGS="$SVN_PYCFMT_SAVE_CPPFLAGS" +- if test "x$svn_cv_pycfmt_apr_int64_t" = "x"; then +- as_fn_error $? "failed to recognize APR_INT64_T_FMT on this platform" "$LINENO" 5 +- fi +- +-cat >>confdefs.h <<_ACEOF +-#define SVN_APR_INT64_T_PYCFMT "$svn_cv_pycfmt_apr_int64_t" +-_ACEOF +- + fi + + if test "$PERL" != "none"; then +@@ -25359,67 +25237,6 @@ $as_echo "$ac_cv_python_libs" >&6; } + fi + `" + +- SVN_PYCFMT_SAVE_CPPFLAGS="$CPPFLAGS" +- CPPFLAGS="$CPPFLAGS $SVN_APR_INCLUDES" +- { $as_echo "$as_me:${as_lineno-$LINENO}: checking for apr_int64_t Python/C API format string" >&5 +-$as_echo_n "checking for apr_int64_t Python/C API format string... " >&6; } +-if ${svn_cv_pycfmt_apr_int64_t+:} false; then : +- $as_echo_n "(cached) " >&6 +-else +- +- if test "x$svn_cv_pycfmt_apr_int64_t" = "x"; then +- cat confdefs.h - <<_ACEOF >conftest.$ac_ext +-/* end confdefs.h. */ +-#include <apr.h> +- MaTcHtHiS APR_INT64_T_FMT EnDeNd +-_ACEOF +-if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | - $EGREP "MaTcHtHiS +\"lld\" +EnDeNd" >/dev/null 2>&1; then : -+ $EGREP "MaTcHtHiS +\"ll(\" *\")?d\" +EnDeNd" >/dev/null 2>&1; then : - svn_cv_pycfmt_apr_int64_t="L" - fi - rm -f conftest* -@@ -25388,7 +25388,7 @@ r - MaTcHtHiS APR_INT64_T_FMT EnDeNd - _ACEOF - if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | +- svn_cv_pycfmt_apr_int64_t="L" +-fi +-rm -f conftest* +- +- fi +- if test "x$svn_cv_pycfmt_apr_int64_t" = "x"; then +- cat confdefs.h - <<_ACEOF >conftest.$ac_ext +-/* end confdefs.h. */ +-r +- #include <apr.h> +- MaTcHtHiS APR_INT64_T_FMT EnDeNd +-_ACEOF +-if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | - $EGREP "MaTcHtHiS +\"ld\" +EnDeNd" >/dev/null 2>&1; then : -+ $EGREP "MaTcHtHiS +\"l(\" *\")?d\" +EnDeNd" >/dev/null 2>&1; then : - svn_cv_pycfmt_apr_int64_t="l" - fi - rm -f conftest* -@@ -25892,7 +25892,7 @@ else - MaTcHtHiS APR_INT64_T_FMT EnDeNd - _ACEOF - if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | +- svn_cv_pycfmt_apr_int64_t="l" +-fi +-rm -f conftest* +- +- fi +- if test "x$svn_cv_pycfmt_apr_int64_t" = "x"; then +- cat confdefs.h - <<_ACEOF >conftest.$ac_ext +-/* end confdefs.h. */ +-#include <apr.h> +- MaTcHtHiS APR_INT64_T_FMT EnDeNd +-_ACEOF +-if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | +- $EGREP "MaTcHtHiS +\"d\" +EnDeNd" >/dev/null 2>&1; then : +- svn_cv_pycfmt_apr_int64_t="i" +-fi +-rm -f conftest* +- +- fi +- +-fi +-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $svn_cv_pycfmt_apr_int64_t" >&5 +-$as_echo "$svn_cv_pycfmt_apr_int64_t" >&6; } +- CPPFLAGS="$SVN_PYCFMT_SAVE_CPPFLAGS" +- if test "x$svn_cv_pycfmt_apr_int64_t" = "x"; then +- as_fn_error $? "failed to recognize APR_INT64_T_FMT on this platform" "$LINENO" 5 +- fi +- +-cat >>confdefs.h <<_ACEOF +-#define SVN_APR_INT64_T_PYCFMT "$svn_cv_pycfmt_apr_int64_t" +-_ACEOF +- + fi + + if test "$PERL" != "none"; then +@@ -25877,67 +25694,6 @@ $as_echo "$ac_cv_python_libs" >&6; } + fi + `" + +- SVN_PYCFMT_SAVE_CPPFLAGS="$CPPFLAGS" +- CPPFLAGS="$CPPFLAGS $SVN_APR_INCLUDES" +- { $as_echo "$as_me:${as_lineno-$LINENO}: checking for apr_int64_t Python/C API format string" >&5 +-$as_echo_n "checking for apr_int64_t Python/C API format string... " >&6; } +-if ${svn_cv_pycfmt_apr_int64_t+:} false; then : +- $as_echo_n "(cached) " >&6 +-else +- +- if test "x$svn_cv_pycfmt_apr_int64_t" = "x"; then +- cat confdefs.h - <<_ACEOF >conftest.$ac_ext +-/* end confdefs.h. */ +-#include <apr.h> +- MaTcHtHiS APR_INT64_T_FMT EnDeNd +-_ACEOF +-if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | - $EGREP "MaTcHtHiS +\"lld\" +EnDeNd" >/dev/null 2>&1; then : -+ $EGREP "MaTcHtHiS +\"ll(\" *\")?d\" +EnDeNd" >/dev/null 2>&1; then : - svn_cv_pycfmt_apr_int64_t="L" - fi - rm -f conftest* -@@ -25906,7 +25906,7 @@ r - MaTcHtHiS APR_INT64_T_FMT EnDeNd - _ACEOF - if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | +- svn_cv_pycfmt_apr_int64_t="L" +-fi +-rm -f conftest* +- +- fi +- if test "x$svn_cv_pycfmt_apr_int64_t" = "x"; then +- cat confdefs.h - <<_ACEOF >conftest.$ac_ext +-/* end confdefs.h. */ +-r +- #include <apr.h> +- MaTcHtHiS APR_INT64_T_FMT EnDeNd +-_ACEOF +-if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | - $EGREP "MaTcHtHiS +\"ld\" +EnDeNd" >/dev/null 2>&1; then : -+ $EGREP "MaTcHtHiS +\"l(\" *\")?d\" +EnDeNd" >/dev/null 2>&1; then : - svn_cv_pycfmt_apr_int64_t="l" - fi - rm -f conftest* +- svn_cv_pycfmt_apr_int64_t="l" +-fi +-rm -f conftest* +- +- fi +- if test "x$svn_cv_pycfmt_apr_int64_t" = "x"; then +- cat confdefs.h - <<_ACEOF >conftest.$ac_ext +-/* end confdefs.h. */ +-#include <apr.h> +- MaTcHtHiS APR_INT64_T_FMT EnDeNd +-_ACEOF +-if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | +- $EGREP "MaTcHtHiS +\"d\" +EnDeNd" >/dev/null 2>&1; then : +- svn_cv_pycfmt_apr_int64_t="i" +-fi +-rm -f conftest* +- +- fi +- +-fi +-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $svn_cv_pycfmt_apr_int64_t" >&5 +-$as_echo "$svn_cv_pycfmt_apr_int64_t" >&6; } +- CPPFLAGS="$SVN_PYCFMT_SAVE_CPPFLAGS" +- if test "x$svn_cv_pycfmt_apr_int64_t" = "x"; then +- as_fn_error $? "failed to recognize APR_INT64_T_FMT on this platform" "$LINENO" 5 +- fi +- +-cat >>confdefs.h <<_ACEOF +-#define SVN_APR_INT64_T_PYCFMT "$svn_cv_pycfmt_apr_int64_t" +-_ACEOF +- + fi + + if test "$PERL" != "none"; then diff --git a/devel/subversion/patches/patch-subversion_bindings_swig_python_libsvn_swig_py_swigutil_py.c b/devel/subversion/patches/patch-subversion_bindings_swig_python_libsvn_swig_py_swigutil_py.c new file mode 100644 index 00000000000..66e8cdb2b50 --- /dev/null +++ b/devel/subversion/patches/patch-subversion_bindings_swig_python_libsvn_swig_py_swigutil_py.c @@ -0,0 +1,47 @@ +$NetBSD: patch-subversion_bindings_swig_python_libsvn_swig_py_swigutil_py.c,v 1.1.2.2 2019/08/09 13:09:32 bsiegert Exp $ + +From: Stefan Sperling <stsp@apache.org> +Date: Fri, 12 Apr 2019 09:27:33 +0000 +Subject: [PATCH] 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. + +--- subversion/bindings/swig/python/libsvn_swig_py/swigutil_py.c.orig 2018-12-12 13:57:17.000000000 +0000 ++++ 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_re + 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(); + } |