[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Bug#1034330: marked as done (unblock: protobuf/3.21.12-3)



Your message dated Thu, 13 Apr 2023 07:26:07 +0000
with message-id <E1pmrLL-00FGrq-DT@respighi.debian.org>
and subject line unblock protobuf
has caused the Debian Bug report #1034330,
regarding unblock: protobuf/3.21.12-3
to be marked as done.

This means that you claim that the problem has been dealt with.
If this is not the case it is now your responsibility to reopen the
Bug report if necessary, and/or fix the problem forthwith.

(NB: If you are a system administrator and have no idea what this
message is talking about, this may indicate a serious mail system
misconfiguration somewhere. Please contact owner@bugs.debian.org
immediately.)


-- 
1034330: https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=1034330
Debian Bug Tracking System
Contact owner@bugs.debian.org with problems
--- Begin Message ---
Package: release.debian.org
Severity: normal
User: release.debian.org@packages.debian.org
Usertags: unblock
Control: affects -1 + src:protobuf

Hi RMs,

Please unblock package protobuf. It's running build time tests with those fixes.

[ Reason ]
It was discovered late that build time tests are not run [1] and the
fix is easy. Reporter stated firmly that he is even going to NMU the
package in unstable and/or stable to fix this issue. My bad that I
thought this change was fully tested and I only checked it on amd64.
Then it turned out build time tests are broken on 32 bit platforms [2].

[ Impact ]
I took my time and fixed build tests. On hppa I had to extend the
ignorance of a static_assert() due to over alignment on this platform.
Now it has a working self-check on package changes including security
ones during Bookworm lifecycle.

[ Tests ]
Upstream test suite. Done build tests with the following rdeps:
clementine and grpc on both i386 and amd64 including tests of those
packages. Those worked without a hitch.
Package tests for migration also worked.

[ Risks ]
Low, the changes are pretty straightforward and only affects the
self-testing parts of the package.

[ Checklist ]
  [x] all changes are documented in the d/changelog
  [x] I reviewed all changes and I approve them
  [x] attach debdiff against the package in testing

[ Other info ]
Uploaded four days ago, built on all previous architectures and no new
bug reports are filed.

unblock protobuf/3.21.12-3

Thanks for considering,
Laszlo/GCS
[1] https://bugs.debian.org/1033989
[2] https://bugs.debian.org/1033998
diff -Nru protobuf-3.21.12/debian/changelog protobuf-3.21.12/debian/changelog
--- protobuf-3.21.12/debian/changelog	2022-12-17 09:18:06.000000000 +0100
+++ protobuf-3.21.12/debian/changelog	2023-04-09 07:50:55.000000000 +0200
@@ -1,3 +1,16 @@
+protobuf (3.21.12-3) unstable; urgency=medium
+
+  * Fix build-time tests on 32 bit architectures (closes: #1033998).
+
+ -- Laszlo Boszormenyi (GCS) <gcs@debian.org>  Sun, 09 Apr 2023 05:50:55 +0000
+
+protobuf (3.21.12-2) unstable; urgency=medium
+
+  [ Helmut Grohne <helmut@subdivi.de> ]
+  * Reenable build-time testing (closes: #1033989).
+
+ -- Laszlo Boszormenyi (GCS) <gcs@debian.org>  Wed, 05 Apr 2023 21:57:20 +0200
+
 protobuf (3.21.12-1) unstable; urgency=medium
 
   * New upstream release.
diff -Nru protobuf-3.21.12/debian/elpa-test protobuf-3.21.12/debian/elpa-test
--- protobuf-3.21.12/debian/elpa-test	1970-01-01 01:00:00.000000000 +0100
+++ protobuf-3.21.12/debian/elpa-test	2023-04-05 21:57:20.000000000 +0200
@@ -0,0 +1 @@
+disable=please_do_run_dh_auto_test
diff -Nru protobuf-3.21.12/debian/patches/build_32_bit_tests.patch protobuf-3.21.12/debian/patches/build_32_bit_tests.patch
--- protobuf-3.21.12/debian/patches/build_32_bit_tests.patch	1970-01-01 01:00:00.000000000 +0100
+++ protobuf-3.21.12/debian/patches/build_32_bit_tests.patch	2023-04-05 21:57:20.000000000 +0200
@@ -0,0 +1,140 @@
+From 01c340d0bb9abb2654554afc732df2c89774ce81 Mon Sep 17 00:00:00 2001
+From: Mike Kruskal <62662355+mkruskal-google@users.noreply.github.com>
+Date: Mon, 19 Sep 2022 09:50:19 -0700
+Subject: [PATCH] Adding full build to 32 bit tests (#10589)
+
+* Adding full build to 32 bit tests
+
+* Running C++ tests in 32 bit builds
+
+* Patching static assert test failure
+
+* Test fixes for 32-bit architectures
+
+* Cleanup after CMake build
+
+* Save protoc before cleanup
+
+* Route protoc better
+---
+ .../compiler/cpp/message_size_unittest.cc     |  2 +-
+ src/google/protobuf/extension_set_unittest.cc |  6 ++--
+ .../protobuf/io/zero_copy_stream_unittest.cc  |  3 ++
+ .../protobuf/repeated_field_unittest.cc       |  4 +--
+ src/google/protobuf/util/time_util_test.cc    | 28 +++++++++++--------
+ 8 files changed, 42 insertions(+), 20 deletions(-)
+
+diff --git a/src/google/protobuf/compiler/cpp/message_size_unittest.cc b/src/google/protobuf/compiler/cpp/message_size_unittest.cc
+index a75d77a70cb..ed4a90e223f 100644
+--- a/src/google/protobuf/compiler/cpp/message_size_unittest.cc
++++ b/src/google/protobuf/compiler/cpp/message_size_unittest.cc
+@@ -139,9 +139,9 @@ TEST(GeneratedMessageTest, OneStringSize) {
+ 
+ TEST(GeneratedMessageTest, MoreStringSize) {
+   struct MockGenerated : public MockMessageBase {  // 16 bytes
+-    int has_bits[1];                               // 4 bytes
+     int cached_size;                               // 4 bytes
+     MockRepeatedPtrField data;                     // 24 bytes
++    // + 4 bytes padding
+   };
+   GOOGLE_CHECK_MESSAGE_SIZE(MockGenerated, 48);
+   EXPECT_EQ(sizeof(protobuf_unittest::MoreString), sizeof(MockGenerated));
+diff --git a/src/google/protobuf/extension_set_unittest.cc b/src/google/protobuf/extension_set_unittest.cc
+index 8b436bc20c9..84da3c5465a 100644
+--- a/src/google/protobuf/extension_set_unittest.cc
++++ b/src/google/protobuf/extension_set_unittest.cc
+@@ -852,8 +852,10 @@ TEST(ExtensionSetTest, SpaceUsedExcludingSelf) {
+     const size_t old_capacity =                                                \
+         message->GetRepeatedExtension(unittest::repeated_##type##_extension)   \
+             .Capacity();                                                       \
+-    EXPECT_GE(old_capacity,                                                    \
+-              (RepeatedFieldLowerClampLimit<cpptype, sizeof(void*)>()));       \
++    EXPECT_GE(                                                                 \
++        old_capacity,                                                          \
++        (RepeatedFieldLowerClampLimit<cpptype, std::max(sizeof(cpptype),       \
++                                                        sizeof(void*))>()));   \
+     for (int i = 0; i < 16; ++i) {                                             \
+       message->AddExtension(unittest::repeated_##type##_extension, value);     \
+     }                                                                          \
+diff --git a/src/google/protobuf/io/zero_copy_stream_unittest.cc b/src/google/protobuf/io/zero_copy_stream_unittest.cc
+index d82354e571b..d656da5f13b 100644
+--- a/src/google/protobuf/io/zero_copy_stream_unittest.cc
++++ b/src/google/protobuf/io/zero_copy_stream_unittest.cc
+@@ -719,6 +719,9 @@ TEST_F(IoTest, StringIo) {
+ 
+ // Verifies that outputs up to kint32max can be created.
+ TEST_F(IoTest, LargeOutput) {
++  // Filter out this test on 32-bit architectures.
++  if(sizeof(void*) < 8) return;
++
+   std::string str;
+   StringOutputStream output(&str);
+   void* unused_data;
+diff --git a/src/google/protobuf/repeated_field_unittest.cc b/src/google/protobuf/repeated_field_unittest.cc
+index eb0b9091cf8..3baf6f25bb2 100644
+--- a/src/google/protobuf/repeated_field_unittest.cc
++++ b/src/google/protobuf/repeated_field_unittest.cc
+@@ -374,14 +374,14 @@ TEST(RepeatedField, ReserveNothing) {
+ 
+ TEST(RepeatedField, ReserveLowerClamp) {
+   int clamped_value = internal::CalculateReserveSize<bool, sizeof(void*)>(0, 1);
+-  EXPECT_GE(clamped_value, 8 / sizeof(bool));
++  EXPECT_GE(clamped_value, sizeof(void*) / sizeof(bool));
+   EXPECT_EQ((internal::RepeatedFieldLowerClampLimit<bool, sizeof(void*)>()),
+             clamped_value);
+   // EXPECT_EQ(clamped_value, (internal::CalculateReserveSize<bool,
+   // sizeof(void*)>( clamped_value, 2)));
+ 
+   clamped_value = internal::CalculateReserveSize<int, sizeof(void*)>(0, 1);
+-  EXPECT_GE(clamped_value, 8 / sizeof(int));
++  EXPECT_GE(clamped_value, sizeof(void*) / sizeof(int));
+   EXPECT_EQ((internal::RepeatedFieldLowerClampLimit<int, sizeof(void*)>()),
+             clamped_value);
+   // EXPECT_EQ(clamped_value, (internal::CalculateReserveSize<int,
+diff --git a/src/google/protobuf/util/time_util_test.cc b/src/google/protobuf/util/time_util_test.cc
+index 464e57b4ee5..dceb6dbe2bf 100644
+--- a/src/google/protobuf/util/time_util_test.cc
++++ b/src/google/protobuf/util/time_util_test.cc
+@@ -48,15 +48,18 @@ using google::protobuf::Timestamp;
+ namespace {
+ 
+ TEST(TimeUtilTest, TimestampStringFormat) {
+-  Timestamp begin, end;
+-  EXPECT_TRUE(TimeUtil::FromString("0001-01-01T00:00:00Z", &begin));
+-  EXPECT_EQ(TimeUtil::kTimestampMinSeconds, begin.seconds());
+-  EXPECT_EQ(0, begin.nanos());
+-  EXPECT_TRUE(TimeUtil::FromString("9999-12-31T23:59:59.999999999Z", &end));
+-  EXPECT_EQ(TimeUtil::kTimestampMaxSeconds, end.seconds());
+-  EXPECT_EQ(999999999, end.nanos());
+-  EXPECT_EQ("0001-01-01T00:00:00Z", TimeUtil::ToString(begin));
+-  EXPECT_EQ("9999-12-31T23:59:59.999999999Z", TimeUtil::ToString(end));
++  // These these are out of bounds for 32-bit architectures.
++  if(sizeof(time_t) >= sizeof(uint64_t)) {
++    Timestamp begin, end;
++    EXPECT_TRUE(TimeUtil::FromString("0001-01-01T00:00:00Z", &begin));
++    EXPECT_EQ(TimeUtil::kTimestampMinSeconds, begin.seconds());
++    EXPECT_EQ(0, begin.nanos());
++    EXPECT_TRUE(TimeUtil::FromString("9999-12-31T23:59:59.999999999Z", &end));
++    EXPECT_EQ(TimeUtil::kTimestampMaxSeconds, end.seconds());
++    EXPECT_EQ(999999999, end.nanos());
++    EXPECT_EQ("0001-01-01T00:00:00Z", TimeUtil::ToString(begin));
++    EXPECT_EQ("9999-12-31T23:59:59.999999999Z", TimeUtil::ToString(end));
++  }
+ 
+   // Test negative timestamps.
+   Timestamp time = TimeUtil::NanosecondsToTimestamp(-1);
+@@ -94,9 +97,12 @@ TEST(TimeUtilTest, DurationStringFormat) {
+   EXPECT_TRUE(TimeUtil::FromString("0001-01-01T00:00:00Z", &begin));
+   EXPECT_TRUE(TimeUtil::FromString("9999-12-31T23:59:59.999999999Z", &end));
+ 
+-  EXPECT_EQ("315537897599.999999999s", TimeUtil::ToString(end - begin));
++  // These these are out of bounds for 32-bit architectures.
++  if(sizeof(time_t) >= sizeof(uint64_t)) {
++    EXPECT_EQ("315537897599.999999999s", TimeUtil::ToString(end - begin));
++    EXPECT_EQ("-315537897599.999999999s", TimeUtil::ToString(begin - end));
++  }
+   EXPECT_EQ(999999999, (end - begin).nanos());
+-  EXPECT_EQ("-315537897599.999999999s", TimeUtil::ToString(begin - end));
+   EXPECT_EQ(-999999999, (begin - end).nanos());
+ 
+   // Generated output should contain 3, 6, or 9 fractional digits.
diff -Nru protobuf-3.21.12/debian/patches/fix_C++_32bit_tests.patch protobuf-3.21.12/debian/patches/fix_C++_32bit_tests.patch
--- protobuf-3.21.12/debian/patches/fix_C++_32bit_tests.patch	1970-01-01 01:00:00.000000000 +0100
+++ protobuf-3.21.12/debian/patches/fix_C++_32bit_tests.patch	2023-04-07 20:17:12.000000000 +0200
@@ -0,0 +1,58 @@
+Description: fix C++ build tests
+ Add bits to expect 32 bit systems.
+Author: Laszlo Boszormenyi (GCS) <gcs@debian.org>
+Bug-Debian: https://bugs.debian.org/1033998
+Forwarded: no
+Last-Update: 2023-04-07
+
+---
+
+--- protobuf-3.21.12.orig/src/google/protobuf/any_test.cc
++++ protobuf-3.21.12/src/google/protobuf/any_test.cc
+@@ -62,9 +62,14 @@ TEST(AnyTest, TestPackAndUnpack) {
+ 
+ TEST(AnyTest, TestPackFromSerializationExceedsSizeLimit) {
+   protobuf_unittest::TestAny submessage;
+-  submessage.mutable_text()->resize(INT_MAX, 'a');
+   protobuf_unittest::TestAny message;
+-  EXPECT_FALSE(message.mutable_any_value()->PackFrom(submessage));
++  try {
++    submessage.mutable_text()->resize(INT_MAX, 'a');
++    EXPECT_FALSE(message.mutable_any_value()->PackFrom(submessage));
++  }
++  catch (...) {
++    EXPECT_TRUE(message.mutable_any_value()->PackFrom(submessage));
++  }
+ }
+ 
+ TEST(AnyTest, TestUnpackWithTypeMismatch) {
+--- protobuf-3.21.12.orig/src/google/protobuf/arena_unittest.cc
++++ protobuf-3.21.12/src/google/protobuf/arena_unittest.cc
+@@ -1375,11 +1375,11 @@ TEST(ArenaTest, SpaceAllocated_and_Used)
+   options.initial_block_size = arena_block.size();
+   Arena arena_2(options);
+   EXPECT_EQ(1024, arena_2.SpaceAllocated());
+-  EXPECT_EQ(0, arena_2.SpaceUsed());
++  EXPECT_EQ(8 - sizeof(void*), arena_2.SpaceUsed());
+   EXPECT_EQ(1024, arena_2.Reset());
+   Arena::CreateArray<char>(&arena_2, 55);
+   EXPECT_EQ(1024, arena_2.SpaceAllocated());
+-  EXPECT_EQ(Align8(55), arena_2.SpaceUsed());
++  EXPECT_EQ(Align8(55) + 8 - sizeof(void*), arena_2.SpaceUsed());
+   EXPECT_EQ(1024, arena_2.Reset());
+ }
+ 
+@@ -1418,11 +1418,11 @@ TEST(ArenaTest, BlockSizeSmallerThanAllo
+ 
+     *Arena::Create<int64_t>(&arena) = 42;
+     EXPECT_GE(arena.SpaceAllocated(), 8);
+-    EXPECT_EQ(8, arena.SpaceUsed());
++    EXPECT_EQ(16 - sizeof(void*), arena.SpaceUsed());
+ 
+     *Arena::Create<int64_t>(&arena) = 42;
+     EXPECT_GE(arena.SpaceAllocated(), 16);
+-    EXPECT_EQ(16, arena.SpaceUsed());
++    EXPECT_EQ(24 - sizeof(void*), arena.SpaceUsed());
+   }
+ }
+ 
diff -Nru protobuf-3.21.12/debian/patches/fix_hppa_alignof_assert.patch protobuf-3.21.12/debian/patches/fix_hppa_alignof_assert.patch
--- protobuf-3.21.12/debian/patches/fix_hppa_alignof_assert.patch	2022-11-22 19:00:45.000000000 +0100
+++ protobuf-3.21.12/debian/patches/fix_hppa_alignof_assert.patch	2023-04-09 07:40:31.000000000 +0200
@@ -1,13 +1,13 @@
-Description: on hppa this is over aligned and fails
- Filter out hppa machines on the static_assert line.
+Description: hppa is over aligned and fails
+ Filter out hppa machines on the static_assert lines.
 Author: Laszlo Boszormenyi (GCS) <gcs@debian.org>
 Forwarded: no
-Last-Update: 2022-11-22
+Last-Update: 2023-04-09
 
 ---
 
---- protobuf-3.21.9.orig/src/google/protobuf/descriptor.cc
-+++ protobuf-3.21.9/src/google/protobuf/descriptor.cc
+--- a/src/google/protobuf/descriptor.cc
++++ b/src/google/protobuf/descriptor.cc
 @@ -370,7 +370,9 @@ class FlatAllocatorImpl {
      GOOGLE_CHECK(!has_allocated());
      if (std::is_trivially_destructible<U>::value) {
@@ -18,3 +18,15 @@
        total_.template Get<char>() += RoundUpTo<8>(array_size * sizeof(U));
      } else {
        // Since we can't use `if constexpr`, just make the expression compile
+--- a/src/google/protobuf/map.h
++++ b/src/google/protobuf/map.h
+@@ -121,7 +121,9 @@ class MapAllocator {
+   // MapAllocator does not support alignments beyond 8. Technically we should
+   // support up to std::max_align_t, but this fails with ubsan and tcmalloc
+   // debug allocation logic which assume 8 as default alignment.
++#if !defined(__hppa__)
+   static_assert(alignof(value_type) <= 8, "");
++#endif
+ 
+   pointer allocate(size_type n, const void* /* hint */ = nullptr) {
+     // If arena is not given, malloc needs to be called which doesn't
diff -Nru protobuf-3.21.12/debian/patches/fix_Python_32bit_tests.patch protobuf-3.21.12/debian/patches/fix_Python_32bit_tests.patch
--- protobuf-3.21.12/debian/patches/fix_Python_32bit_tests.patch	1970-01-01 01:00:00.000000000 +0100
+++ protobuf-3.21.12/debian/patches/fix_Python_32bit_tests.patch	2023-04-07 20:17:02.000000000 +0200
@@ -0,0 +1,178 @@
+Description: fix Python build tests
+ Add bits to expect 32 bit systems.
+Author: Laszlo Boszormenyi (GCS) <gcs@debian.org>
+Bug-Debian: https://bugs.debian.org/1033998
+Forwarded: no
+Last-Update: 2023-04-07
+
+---
+
+--- protobuf-3.21.12.orig/python/google/protobuf/internal/descriptor_test.py
++++ protobuf-3.21.12/python/google/protobuf/internal/descriptor_test.py
+@@ -32,6 +32,7 @@
+ 
+ __author__ = 'robinson@google.com (Will Robinson)'
+ 
++import platform
+ import unittest
+ import warnings
+ 
+@@ -269,16 +270,18 @@ class DescriptorTest(unittest.TestCase):
+         unittest_custom_options_pb2.int32_opt])
+     self.assertEqual(kint64max, message_options.Extensions[
+         unittest_custom_options_pb2.int64_opt])
+-    self.assertEqual(kuint32max, message_options.Extensions[
+-        unittest_custom_options_pb2.uint32_opt])
++    if platform.architecture()[0] != '32bit':
++        self.assertEqual(kuint32max, message_options.Extensions[
++            unittest_custom_options_pb2.uint32_opt])
+     self.assertEqual(kuint64max, message_options.Extensions[
+         unittest_custom_options_pb2.uint64_opt])
+     self.assertEqual(kint32max, message_options.Extensions[
+         unittest_custom_options_pb2.sint32_opt])
+     self.assertEqual(kint64max, message_options.Extensions[
+         unittest_custom_options_pb2.sint64_opt])
+-    self.assertEqual(kuint32max, message_options.Extensions[
+-        unittest_custom_options_pb2.fixed32_opt])
++    if platform.architecture()[0] != '32bit':
++        self.assertEqual(kuint32max, message_options.Extensions[
++            unittest_custom_options_pb2.fixed32_opt])
+     self.assertEqual(kuint64max, message_options.Extensions[
+         unittest_custom_options_pb2.fixed64_opt])
+     self.assertEqual(kint32max, message_options.Extensions[
+--- protobuf-3.21.12.orig/python/google/protobuf/internal/json_format_test.py
++++ protobuf-3.21.12/python/google/protobuf/internal/json_format_test.py
+@@ -59,7 +59,7 @@ class JsonFormatBase(unittest.TestCase):
+   def FillAllFields(self, message):
+     message.int32_value = 20
+     message.int64_value = -20
+-    message.uint32_value = 3120987654
++    message.uint32_value = 2147483647
+     message.uint64_value = 12345678900
+     message.float_value = float('-inf')
+     message.double_value = 3.1415
+@@ -127,7 +127,7 @@ class JsonFormatTest(JsonFormatBase):
+     message = json_format_proto3_pb2.TestMessage()
+     text = ('{"int32Value": 20, '
+             '"int64Value": "-20", '
+-            '"uint32Value": 3120987654,'
++            '"uint32Value": 2147483647,'
+             '"uint64Value": "12345678900",'
+             '"floatValue": "-Infinity",'
+             '"doubleValue": 3.1415,'
+@@ -140,7 +140,7 @@ class JsonFormatTest(JsonFormatBase):
+             '"repeatedInt64Value": ["9007199254740992", "-9007199254740992"],'
+             '"repeatedUint32Value": [268435455, 134217727],'
+             '"repeatedUint64Value": ["9007199254740992", "9007199254740991"],'
+-            '"repeatedFloatValue": [0],'
++            '"repeatedFloatValue": [0.0],'
+             '"repeatedDoubleValue": [1e-15, "Infinity"],'
+             '"repeatedBoolValue": [true, false],'
+             '"repeatedStringValue": ["Few symbols!#$,;", "bar"],'
+--- protobuf-3.21.12.orig/python/google/protobuf/internal/reflection_test.py
++++ protobuf-3.21.12/python/google/protobuf/internal/reflection_test.py
+@@ -36,6 +36,7 @@ pure-Python protocol compiler.
+ import copy
+ import gc
+ import operator
++import platform
+ import struct
+ import sys
+ import warnings
+@@ -453,7 +454,8 @@ class ReflectionTest(unittest.TestCase):
+                         expected_max + 1)
+ 
+     TestMinAndMaxIntegers('optional_int32', -(1 << 31), (1 << 31) - 1)
+-    TestMinAndMaxIntegers('optional_uint32', 0, 0xffffffff)
++    if platform.architecture()[0] != '32bit':
++      TestMinAndMaxIntegers('optional_uint32', 0, 0xffffffff)
+     TestMinAndMaxIntegers('optional_int64', -(1 << 63), (1 << 63) - 1)
+     TestMinAndMaxIntegers('optional_uint64', 0, 0xffffffffffffffff)
+     # A bit of white-box testing since -1 is an int and not a long in C++ and
+--- protobuf-3.21.12.orig/python/google/protobuf/internal/text_format_test.py
++++ protobuf-3.21.12/python/google/protobuf/internal/text_format_test.py
+@@ -39,8 +39,6 @@ import textwrap
+ 
+ import unittest
+ 
+-import platform
+-
+ from google.protobuf import any_pb2
+ from google.protobuf import struct_pb2
+ from google.protobuf import any_test_pb2
+@@ -1052,52 +1050,29 @@ class OnlyWorksWithProto2RightNowTests(T
+     all_data = message.SerializeToString()
+     empty_message = unittest_pb2.TestEmptyMessage()
+     empty_message.ParseFromString(all_data)
+-    if platform.architecture()[0] != '32bit':
+-      self.assertEqual('  1: 101\n'
+-                       '  12: 4636878028842991616\n'
+-                       '  14: "hello"\n'
+-                       '  15: "103"\n'
+-                       '  16 {\n'
+-                       '    17: 104\n'
+-                       '  }\n'
+-                       '  18 {\n'
+-                       '    1: 105\n'
+-                       '  }\n',
+-                       text_format.MessageToString(empty_message,
+-                                                   indent=2,
+-                                                   print_unknown_fields=True))
+-      self.assertEqual('1: 101 '
+-                       '12: 4636878028842991616 '
+-                       '14: "hello" '
+-                       '15: "103" '
+-                       '16 { 17: 104 } '
+-                       '18 { 1: 105 }',
+-                       text_format.MessageToString(empty_message,
+-                                                   print_unknown_fields=True,
+-                                                   as_one_line=True))
+-    else:
+-      self.assertEqual('  1: 101\n'
+-                       '  12: 0\n'
+-                       '  14: "hello"\n'
+-                       '  15: "103"\n'
+-                       '  16 {\n'
+-                       '    17: 104\n'
+-                       '  }\n'
+-                       '  18 {\n'
+-                       '    1: 105\n'
+-                       '  }\n',
+-                       text_format.MessageToString(empty_message,
+-                                                   indent=2,
+-                                                   print_unknown_fields=True))
+-      self.assertEqual('1: 101 '
+-                       '12: 0 '
+-                       '14: "hello" '
+-                       '15: "103" '
+-                       '16 { 17: 104 } '
+-                       '18 { 1: 105 }',
+-                       text_format.MessageToString(empty_message,
+-                                                   print_unknown_fields=True,
+-                                                   as_one_line=True))
++    self.assertEqual('  1: 101\n'
++                     '  12: 4636878028842991616\n'
++                     '  14: "hello"\n'
++                     '  15: "103"\n'
++                     '  16 {\n'
++                     '    17: 104\n'
++                     '  }\n'
++                     '  18 {\n'
++                     '    1: 105\n'
++                     '  }\n',
++                     text_format.MessageToString(empty_message,
++                                                 indent=2,
++                                                 print_unknown_fields=True))
++    self.assertEqual('1: 101 '
++                     '12: 4636878028842991616 '
++                     '14: "hello" '
++                     '15: "103" '
++                     '16 { 17: 104 } '
++                     '18 { 1: 105 }',
++                     text_format.MessageToString(empty_message,
++                                                 print_unknown_fields=True,
++                                                 as_one_line=True))
++
+   def testPrintInIndexOrder(self):
+     message = unittest_pb2.TestFieldOrderings()
+     # Fields are listed in index order instead of field number.
diff -Nru protobuf-3.21.12/debian/patches/series protobuf-3.21.12/debian/patches/series
--- protobuf-3.21.12/debian/patches/series	2022-11-25 01:58:23.000000000 +0100
+++ protobuf-3.21.12/debian/patches/series	2023-04-07 20:12:46.000000000 +0200
@@ -13,3 +13,6 @@
 Fix_build_with_Python_3.11.patch
 fix_hppa_alignof_assert.patch
 Fix_rule_for_java_target.patch
+build_32_bit_tests.patch
+fix_C++_32bit_tests.patch
+fix_Python_32bit_tests.patch

--- End Message ---
--- Begin Message ---
Unblocked.

--- End Message ---

Reply to: