From 0e0c958468abed69379f0308e96c1ad6281d07c3 Mon Sep 17 00:00:00 2001 From: Joe Orton Date: Wed, 12 Feb 2020 12:48:53 +0000 Subject: [PATCH] fix FTBFS on 32-bit arches (#1800120) Resolves: rhbz#1800120 --- subversion-1.12.2-fsfspacktest.patch | 26 +++++++++++++++++++++ subversion-1.12.2-r1865987+.patch | 35 ++++++++++++++++++++++++++++ subversion.spec | 9 ++++++- 3 files changed, 69 insertions(+), 1 deletion(-) create mode 100644 subversion-1.12.2-fsfspacktest.patch create mode 100644 subversion-1.12.2-r1865987+.patch diff --git a/subversion-1.12.2-fsfspacktest.patch b/subversion-1.12.2-fsfspacktest.patch new file mode 100644 index 0000000..ba5e0fa --- /dev/null +++ b/subversion-1.12.2-fsfspacktest.patch @@ -0,0 +1,26 @@ + +get_rev_contents() has signed integer overflow with "long int" rev +and behaves unpredictably. + +--- subversion-1.12.2/subversion/tests/libsvn_fs_fs/fs-fs-pack-test.c.fsfspacktest ++++ subversion-1.12.2/subversion/tests/libsvn_fs_fs/fs-fs-pack-test.c +@@ -59,7 +59,8 @@ + get_rev_contents(svn_revnum_t rev, apr_pool_t *pool) + { + /* Toss in a bunch of magic numbers for spice. */ +- apr_int64_t num = ((rev * 1234353 + 4358) * 4583 + ((rev % 4) << 1)) / 42; ++ apr_int64_t rev64 = rev; ++ apr_int64_t num = ((rev64 * 1234353 + 4358) * 4583 + ((rev64 % 4) << 1)) / 42; + return apr_psprintf(pool, "%" APR_INT64_T_FMT "\n", num); + } + +@@ -407,7 +408,8 @@ + + if (! svn_stringbuf_compare(rstring, sb)) + return svn_error_createf(SVN_ERR_FS_GENERAL, NULL, +- "Bad data in revision %ld.", i); ++ "Bad data in revision %ld - [%s] not [%s].", ++ i, rstring->data, sb->data); + } + + return SVN_NO_ERROR; diff --git a/subversion-1.12.2-r1865987+.patch b/subversion-1.12.2-r1865987+.patch new file mode 100644 index 0000000..76c2e73 --- /dev/null +++ b/subversion-1.12.2-r1865987+.patch @@ -0,0 +1,35 @@ +# ./pullrev.sh 1865987 1866588 +http://svn.apache.org/viewvc?view=revision&revision=1865987 +http://svn.apache.org/viewvc?view=revision&revision=1866588 + +--- subversion-1.12.2/subversion/libsvn_fs_fs/verify.c ++++ subversion-1.12.2/subversion/libsvn_fs_fs/verify.c +@@ -681,10 +681,10 @@ + NULL, + _("p2l index entry for revision r%ld" + " at offset %s contains invalid item" +- " type %d"), ++ " type %u"), + start, + apr_off_t_toa(pool, offset), +- entry->type); ++ (unsigned int)entry->type); + + /* There can be only one changes entry and that has a fixed type + * and item number. Its presence and parse-ability will be checked +@@ -694,11 +694,12 @@ + return svn_error_createf(SVN_ERR_FS_INDEX_CORRUPTION, + NULL, + _("p2l index entry for changes in" +- " revision r%ld is item %ld of type" +- " %d at offset %s"), ++ " revision r%ld is item" ++ " %"APR_UINT64_T_FMT ++ " of type %u at offset %s"), + entry->item.revision, + entry->item.number, +- entry->type, ++ (unsigned int)entry->type, + apr_off_t_toa(pool, offset)); + + /* Check contents. */ diff --git a/subversion.spec b/subversion.spec index b4db231..3319902 100644 --- a/subversion.spec +++ b/subversion.spec @@ -45,7 +45,7 @@ Summary: A Modern Concurrent Version Control System Name: subversion Version: 1.12.2 -Release: 6%{?dist} +Release: 7%{?dist} License: ASL 2.0 URL: https://subversion.apache.org/ @@ -61,6 +61,8 @@ Patch1: subversion-1.12.0-linking.patch Patch2: subversion-1.12.2-py3tests.patch Patch4: subversion-1.8.0-rubybind.patch Patch5: subversion-1.8.5-swigplWall.patch +Patch6: subversion-1.12.2-r1865987+.patch +Patch7: subversion-1.12.2-fsfspacktest.patch BuildRequires: autoconf, libtool, texinfo, which BuildRequires: swig >= 1.3.24, gettext %if %{with bdb} @@ -219,6 +221,8 @@ This package includes supplementary tools for use with Subversion. %endif %patch4 -p1 -b .rubybind %patch5 -p1 -b .swigplWall +%patch6 -p1 -b .r1865987+ +%patch7 -p1 -b .fsfspacktest %build # Regenerate the buildsystem, so that: @@ -540,6 +544,9 @@ make check-javahl %endif %changelog +* Wed Feb 12 2020 Joe Orton - 1.12.2-7 +- fix FTBFS on 32-bit arches (#1800120) + * Wed Feb 12 2020 Joe Orton - 1.12.2-6 - conditionally package bdb tools in -tools