Package: release.debian.org Severity: normal User: release.debian....@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) <g...@debian.org> Sun, 09 Apr 2023 05:50:55 +0000 + +protobuf (3.21.12-2) unstable; urgency=medium + + [ Helmut Grohne <hel...@subdivi.de> ] + * Reenable build-time testing (closes: #1033989). + + -- Laszlo Boszormenyi (GCS) <g...@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-goo...@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) <g...@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) <g...@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) <g...@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__ = 'robin...@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