downgrade to 1.4.1 to match the 24.03 LTS's minimum set of core packages

Signed-off-by: SuperSix173 <liuchao173@huawei.com>
This commit is contained in:
SuperSix173 2024-02-27 17:01:40 +08:00
parent 975a23b0b0
commit 45e78a6a9e
15 changed files with 762 additions and 2 deletions

View File

@ -0,0 +1,127 @@
From 5c4be20f1bf59f1abad41d69ec3c80596d346a7f Mon Sep 17 00:00:00 2001
From: Robert Edmonds <edmonds@users.noreply.github.com>
Date: Sat, 8 Jul 2023 23:11:54 -0400
Subject: [PATCH 2/5] Makefile.am: Remove conditional BUILD_PROTO3 rules
Now that we require protobuf >= 3.0.0, we are always building with
proto3 syntax support.
Note that the test-generated-code3 test keeps `-DPROTO3` which is
separate from the HAVE_PROTO3 identifier. This test is building built
from the same source file as test-generated-code but the source file
supports proto2 and proto3 syntax depending on how it's compiled.
---
Makefile.am | 48 ++++++++++++++++++------------------------------
1 file changed, 18 insertions(+), 30 deletions(-)
diff --git a/Makefile.am b/Makefile.am
index 86864a7..ff12664 100644
--- a/Makefile.am
+++ b/Makefile.am
@@ -139,11 +139,13 @@ LOG_COMPILER = $(VALGRIND)
check_PROGRAMS += \
t/generated-code/test-generated-code \
t/generated-code2/test-generated-code2 \
+ t/generated-code3/test-generated-code3 \
t/version/version
TESTS += \
t/generated-code/test-generated-code \
t/generated-code2/test-generated-code2 \
+ t/generated-code3/test-generated-code3 \
t/version/version
t_generated_code_test_generated_code_SOURCES = \
@@ -159,6 +161,16 @@ t_generated_code2_test_generated_code2_SOURCES = \
t_generated_code2_test_generated_code2_LDADD = \
protobuf-c/libprotobuf-c.la
+t_generated_code3_test_generated_code3_CPPFLAGS = \
+ -DPROTO3
+
+t_generated_code3_test_generated_code3_SOURCES = \
+ t/generated-code/test-generated-code.c \
+ t/test-proto3.pb-c.c
+
+t_generated_code3_test_generated_code3_LDADD = \
+ protobuf-c/libprotobuf-c.la
+
noinst_PROGRAMS += \
t/generated-code2/cxx-generate-packed-data
@@ -185,6 +197,9 @@ t/test-full.pb-c.c t/test-full.pb-c.h: $(top_builddir)/protoc-c/protoc-gen-c$(EX
t/test-full.pb.cc t/test-full.pb.h: @PROTOC@ $(top_srcdir)/t/test-full.proto
$(AM_V_GEN)@PROTOC@ -I$(top_srcdir) --cpp_out=$(top_builddir) $(top_srcdir)/t/test-full.proto
+t/test-proto3.pb-c.c t/test-proto3.pb-c.h: $(top_builddir)/protoc-c/protoc-gen-c$(EXEEXT) $(top_srcdir)/t/test-proto3.proto
+ $(AM_V_GEN)@PROTOC@ --plugin=protoc-gen-c=$(top_builddir)/protoc-c/protoc-gen-c$(EXEEXT) -I$(top_srcdir) --c_out=$(top_builddir) $(top_srcdir)/t/test-proto3.proto
+
t/generated-code2/test-full-cxx-output.inc: t/generated-code2/cxx-generate-packed-data$(EXEEXT)
$(AM_V_GEN)$(top_builddir)/t/generated-code2/cxx-generate-packed-data$(EXEEXT) > $(top_builddir)/t/generated-code2/test-full-cxx-output.inc
@@ -193,34 +208,9 @@ BUILT_SOURCES += \
t/test-full.pb-c.c t/test-full.pb-c.h \
t/test-optimized.pb-c.c t/test-optimized.pb-c.h \
t/test-full.pb.cc t/test-full.pb.h \
+ t/test-proto3.pb-c.c t/test-proto3.pb-c.h \
t/generated-code2/test-full-cxx-output.inc
-if BUILD_PROTO3
-
-check_PROGRAMS += \
- t/generated-code3/test-generated-code3
-
-TESTS += \
- t/generated-code3/test-generated-code3
-
-t_generated_code3_test_generated_code3_CPPFLAGS = \
- -DPROTO3
-
-t_generated_code3_test_generated_code3_LDADD = \
- protobuf-c/libprotobuf-c.la
-
-t_generated_code3_test_generated_code3_SOURCES = \
- t/generated-code/test-generated-code.c \
- t/test-proto3.pb-c.c
-
-t/test-proto3.pb-c.c t/test-proto3.pb-c.h: $(top_builddir)/protoc-c/protoc-gen-c$(EXEEXT) $(top_srcdir)/t/test-proto3.proto
- $(AM_V_GEN)@PROTOC@ --plugin=protoc-gen-c=$(top_builddir)/protoc-c/protoc-gen-c$(EXEEXT) -I$(top_srcdir) --c_out=$(top_builddir) $(top_srcdir)/t/test-proto3.proto
-
-BUILT_SOURCES += \
- t/test-proto3.pb-c.c t/test-proto3.pb-c.h
-
-endif # BUILD_PROTO3
-
t_version_version_SOURCES = \
t/version/version.c
t_version_version_LDADD = \
@@ -278,7 +268,6 @@ EXTRA_DIST += \
t/issue251/issue251.proto
# Issue #330
-if BUILD_PROTO3
check_PROGRAMS += \
t/issue330/issue330
TESTS += \
@@ -292,6 +281,8 @@ t/issue330/issue330.pb-c.c t/issue330/issue330.pb-c.h: $(top_builddir)/protoc-c/
$(AM_V_GEN)@PROTOC@ --plugin=protoc-gen-c=$(top_builddir)/protoc-c/protoc-gen-c$(EXEEXT) -I$(top_srcdir) --c_out=$(top_builddir) $(top_srcdir)/t/issue330/issue330.proto
BUILT_SOURCES += \
t/issue330/issue330.pb-c.c t/issue330/issue330.pb-c.h
+EXTRA_DIST += \
+ t/issue330/issue330.proto
t_issue330_issue330_SOURCES += \
t/issue389/issue389.pb-c.c # Tack onto issue330 since there is no need for a separate binary here
@@ -317,9 +308,6 @@ BUILT_SOURCES += \
t/issue440/issue440.pb-c.c t/issue440/issue440.pb-c.h
EXTRA_DIST += \
t/issue440/issue440.proto
-endif # BUILD_PROTO3
-EXTRA_DIST += \
- t/issue330/issue330.proto
# Issue #375
check_PROGRAMS += \
--
2.33.0

View File

@ -0,0 +1,32 @@
From 59a3f1925ecec6481118e0d407a34fae15c54215 Mon Sep 17 00:00:00 2001
From: Rose <83477269+AtariDreams@users.noreply.github.com>
Date: Sat, 6 May 2023 19:18:26 -0400
Subject: [PATCH] Update autotools
AC_PROG_CC_STDC is obsolete. Instead, AC_PROG_CC is recommended.
---
configure.ac | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/configure.ac b/configure.ac
index f5a0261..94d01dc 100644
--- a/configure.ac
+++ b/configure.ac
@@ -1,4 +1,4 @@
-AC_PREREQ(2.63)
+AC_PREREQ([2.63])
AC_INIT([protobuf-c],
[1.4.1],
@@ -11,7 +11,7 @@ AC_SUBST(PACKAGE_DESCRIPTION)
AC_CONFIG_SRCDIR([protobuf-c/protobuf-c.c])
AC_CONFIG_AUX_DIR([build-aux])
AM_INIT_AUTOMAKE([foreign 1.11 -Wall -Wno-portability silent-rules subdir-objects])
-AC_PROG_CC_STDC
+AC_PROG_CC
AC_PROG_CXX
AC_PROG_LN_S
AC_PROG_MKDIR_P
--
2.33.0

View File

@ -0,0 +1,58 @@
From 7b90330bff40ab555bb3f0c5ee43ae208a275104 Mon Sep 17 00:00:00 2001
From: Robert Edmonds <edmonds@users.noreply.github.com>
Date: Sun, 2 Jul 2023 19:35:43 -0400
Subject: [PATCH] Use GOOGLE_LOG(FATAL) instead of GOOGLE_LOG(DFATAL)
Looking at where these identifiers are ultimately defined [0], it looks
like "DFATAL" means either "ERROR" or "FATAL" depending on whether
NDEBUG is defined. However, looking at the actual code sites in protoc-c
where DFATAL is used, it's not clear why we couldn't just use FATAL
unconditionally.
This is aimed at supporting newer versions of protobuf where the DFATAL
identifier apparently no longer exists.
[0] https://github.com/protocolbuffers/protobuf/blob/v21.12/src/google/protobuf/stubs/logging.h#L61-L65
---
protoc-c/c_message.cc | 4 ++--
protoc-c/c_primitive_field.cc | 2 +-
2 files changed, 3 insertions(+), 3 deletions(-)
diff --git a/protoc-c/c_message.cc b/protoc-c/c_message.cc
index 37e8bf8..af2974c 100755
--- a/protoc-c/c_message.cc
+++ b/protoc-c/c_message.cc
@@ -499,7 +499,7 @@ GenerateMessageDescriptor(io::Printer* printer, bool gen_init) {
// NOTE: not supported by protobuf
vars["maybe_static"] = "";
vars["field_dv_ctype"] = "{ ... }";
- GOOGLE_LOG(DFATAL) << "Messages can't have default values!";
+ GOOGLE_LOG(FATAL) << "Messages can't have default values!";
break;
case FieldDescriptor::CPPTYPE_STRING:
if (fd->type() == FieldDescriptor::TYPE_BYTES || opt.string_as_bytes())
@@ -521,7 +521,7 @@ GenerateMessageDescriptor(io::Printer* printer, bool gen_init) {
break;
}
default:
- GOOGLE_LOG(DFATAL) << "Unknown CPPTYPE";
+ GOOGLE_LOG(FATAL) << "Unknown CPPTYPE";
break;
}
if (!already_defined)
diff --git a/protoc-c/c_primitive_field.cc b/protoc-c/c_primitive_field.cc
index 6990893..1727af3 100644
--- a/protoc-c/c_primitive_field.cc
+++ b/protoc-c/c_primitive_field.cc
@@ -143,7 +143,7 @@ std::string PrimitiveFieldGenerator::GetDefaultValue() const
case FieldDescriptor::CPPTYPE_BOOL:
return descriptor_->default_value_bool() ? "1" : "0";
default:
- GOOGLE_LOG(DFATAL) << "unexpected CPPTYPE in c_primitive_field";
+ GOOGLE_LOG(FATAL) << "unexpected CPPTYPE in c_primitive_field";
return "UNEXPECTED_CPPTYPE";
}
}
--
2.33.0

View File

@ -0,0 +1,44 @@
From 8d334a7204d98874cbf970cb96ab0c7b52e06695 Mon Sep 17 00:00:00 2001
From: Robert Edmonds <edmonds@users.noreply.github.com>
Date: Sun, 2 Jul 2023 19:42:19 -0400
Subject: [PATCH] Work around GOOGLE_* changes in protobuf >= 22.0
According to the protobuf migration guide as of June 2023 [0], protobuf
22.0 (aka 4.22.0) took a dependency on something called "abseil" and as
a result the "stubs" have been removed. This apparently caused all the
uses of GOOGLE_* identifiers in protoc-c to fail when building against
newer versions of protobuf.
This commit introduces compatibility definitions when building against
protobuf >= 4.22.0 so that protobuf-c can build against older and newer
versions of protobuf.
[0] https://web.archive.org/web/20230611151200/https://protobuf.dev/support/migration/#abseil
---
protoc-c/c_helpers.h | 10 ++++++++++
1 file changed, 10 insertions(+)
diff --git a/protoc-c/c_helpers.h b/protoc-c/c_helpers.h
index 7598a4e..adc7ee2 100644
--- a/protoc-c/c_helpers.h
+++ b/protoc-c/c_helpers.h
@@ -178,6 +178,16 @@ inline int FieldSyntax(const FieldDescriptor* field) {
#endif
}
+// Work around changes in protobuf >= 22.x without breaking compilation against
+// older protobuf versions.
+#if GOOGLE_PROTOBUF_VERSION >= 4022000
+# define GOOGLE_ARRAYSIZE ABSL_ARRAYSIZE
+# define GOOGLE_CHECK_EQ ABSL_CHECK_EQ
+# define GOOGLE_CHECK_EQ ABSL_CHECK_EQ
+# define GOOGLE_DCHECK_GE ABSL_DCHECK_GE
+# define GOOGLE_LOG ABSL_LOG
+#endif
+
} // namespace c
} // namespace compiler
} // namespace protobuf
--
2.33.0

View File

@ -0,0 +1,34 @@
From 824a7fed75e15b9a4cb5961593bcc46e45a79559 Mon Sep 17 00:00:00 2001
From: Robert Edmonds <edmonds@users.noreply.github.com>
Date: Sat, 8 Jul 2023 23:15:14 -0400
Subject: [PATCH 5/5] cmake: Remove BUILD_PROTO3, HAVE_PROTO3
---
build-cmake/CMakeLists.txt | 4 ----
1 file changed, 4 deletions(-)
diff --git a/build-cmake/CMakeLists.txt b/build-cmake/CMakeLists.txt
index 379dd1a..6dbf193 100644
--- a/build-cmake/CMakeLists.txt
+++ b/build-cmake/CMakeLists.txt
@@ -9,7 +9,6 @@ CMAKE_MINIMUM_REQUIRED(VERSION 3.10 FATAL_ERROR)
PROJECT(protobuf-c)
#options
-option(BUILD_PROTO3 "BUILD_PROTO3" ON)
option(BUILD_PROTOC "Build protoc-gen-c" ON)
if(CMAKE_BUILD_TYPE MATCHES Debug)
option(BUILD_TESTS "Build tests" ON)
@@ -73,9 +72,6 @@ endif (MSVC AND NOT BUILD_SHARED_LIBS)
FIND_PACKAGE(Protobuf REQUIRED)
INCLUDE_DIRECTORIES(${PROTOBUF_INCLUDE_DIR})
-if (BUILD_PROTO3)
- ADD_DEFINITIONS(-DHAVE_PROTO3)
-endif()
ENDIF()
if (MSVC AND NOT BUILD_SHARED_LIBS)
--
2.33.0

View File

@ -0,0 +1,29 @@
From 7f006f8ad53e3da49c408e70a6a2d9193b2b8684 Mon Sep 17 00:00:00 2001
From: Robert Edmonds <edmonds@users.noreply.github.com>
Date: Sat, 8 Jul 2023 23:27:18 -0400
Subject: [PATCH] configure.ac: Drop -Wc99-c11-compat
This diagnostic isn't particularly useful since it fires on generated
.pb-c.h files.
---
configure.ac | 4 ----
1 file changed, 4 deletions(-)
diff --git a/configure.ac b/configure.ac
index f03198a..065a0a5 100644
--- a/configure.ac
+++ b/configure.ac
@@ -38,10 +38,6 @@ my_CFLAGS="\
-Wstrict-prototypes \
-Wtype-limits \
"
-#AX_CHECK_COMPILE_FLAG(["-Wc90-c99-compat"],
-# [my_CFLAGS="$my_CFLAGS -Wc90-c99-compat"])
-AX_CHECK_COMPILE_FLAG(["-Wc99-c11-compat"],
- [my_CFLAGS="$my_CFLAGS -Wc99-c11-compat"])
AX_CHECK_COMPILE_FLAG(["-Werror=incompatible-pointer-types"],
[my_CFLAGS="$my_CFLAGS -Werror=incompatible-pointer-types"])
AX_CHECK_COMPILE_FLAG(["-Werror=int-conversion"],
--
2.33.0

View File

@ -0,0 +1,46 @@
From 7dca1c382c2096ac1324b001cea53c39052843da Mon Sep 17 00:00:00 2001
From: Robert Edmonds <edmonds@users.noreply.github.com>
Date: Sat, 8 Jul 2023 23:11:03 -0400
Subject: [PATCH 1/5] configure.ac: Remove `proto3_supported`, `BUILD_PROTO3`
Since we require protobuf >= 3.0.0 now, the proto3 syntax is always
supported.
---
configure.ac | 7 +------
1 file changed, 1 insertion(+), 6 deletions(-)
diff --git a/configure.ac b/configure.ac
index 586ac3c..f03198a 100644
--- a/configure.ac
+++ b/configure.ac
@@ -69,14 +69,12 @@ if test -n "$PKG_CONFIG"; then
fi
fi
-proto3_supported="no"
-
AC_ARG_ENABLE([protoc],
AS_HELP_STRING([--disable-protoc], [Disable building protoc_c (also disables tests)]))
if test "x$enable_protoc" != "xno"; then
AC_LANG_PUSH([C++])
AX_CXX_COMPILE_STDCXX(17, noext, mandatory)
- PKG_CHECK_MODULES([protobuf], [protobuf >= 3.0.0], [proto3_supported=yes])
+ PKG_CHECK_MODULES([protobuf], [protobuf >= 3.0.0])
save_CPPFLAGS="$CPPFLAGS"
CPPFLAGS="$save_CPPFLAGS $protobuf_CFLAGS"
@@ -99,11 +97,8 @@ else
fi
AM_CONDITIONAL([BUILD_COMPILER], [test "x$enable_protoc" != "xno"])
-AM_CONDITIONAL([BUILD_PROTO3], [test "x$proto3_supported" != "xno"])
AM_CONDITIONAL([CROSS_COMPILING], [test "x$cross_compiling" != "xno"])
-AM_COND_IF([BUILD_PROTO3], [AC_DEFINE([HAVE_PROTO3], [1], [Support proto3 syntax])])
-
gl_LD_VERSION_SCRIPT
gl_VALGRIND_TESTS
--
2.33.0

View File

@ -0,0 +1,39 @@
From 5b0661f1e8a0e03f75cc6f53b8d42507e95403c9 Mon Sep 17 00:00:00 2001
From: Robert Edmonds <edmonds@users.noreply.github.com>
Date: Mon, 3 Jul 2023 01:10:28 -0400
Subject: [PATCH] configure.ac: Require C++17
There are some recent reports of strange build failures that might have
been fixed by compiling in C++17 mode, so it might be a good idea to use
C++17 in general, and not just when building against very recent
protobuf versions.
Since it looks like we've lost protobuf < 3.0.0 support, configure.ac
can be simplified a bit if we just use C++17 by default.
---
configure.ac | 23 ++---------------------
1 file changed, 2 insertions(+), 21 deletions(-)
diff --git a/configure.ac b/configure.ac
index fa024b6..586ac3c 100644
--- a/configure.ac
+++ b/configure.ac
@@ -75,13 +75,8 @@ AC_ARG_ENABLE([protoc],
AS_HELP_STRING([--disable-protoc], [Disable building protoc_c (also disables tests)]))
if test "x$enable_protoc" != "xno"; then
AC_LANG_PUSH([C++])
-
- AX_CXX_COMPILE_STDCXX(11, noext, mandatory)
-
- PKG_CHECK_MODULES([protobuf], [protobuf >= 3.0.0],
- [proto3_supported=yes],
- [PKG_CHECK_MODULES([protobuf], [protobuf >= 2.6.0])]
- )
+ AX_CXX_COMPILE_STDCXX(17, noext, mandatory)
+ PKG_CHECK_MODULES([protobuf], [protobuf >= 3.0.0], [proto3_supported=yes])
save_CPPFLAGS="$CPPFLAGS"
CPPFLAGS="$save_CPPFLAGS $protobuf_CFLAGS"
--
2.33.0

View File

@ -0,0 +1,202 @@
From ad48868dfe77592c4bacf936ade208f384a26b09 Mon Sep 17 00:00:00 2001
From: Robert Edmonds <edmonds@users.noreply.github.com>
Date: Sun, 2 Jul 2023 17:48:18 -0400
Subject: [PATCH] protoc-c: Remove GOOGLE_DISALLOW_EVIL_CONSTRUCTORS macro
invocations
protobuf has removed the definition of this macro as of commit
1595417dd3859bbff7d3d61ad0b6e39044d47489, so the invocation of this
macro in protobuf-c breaks the build when building agaist the protobuf
22.x or 23.x series.
Simply removing the macro invocations seems to be safe and doesn't break
the build on Debian's protobuf 3.21.12 nor Debian's protobuf 3.6.1.3.
---
protoc-c/c_bytes_field.h | 2 --
protoc-c/c_enum.h | 2 --
protoc-c/c_enum_field.h | 2 --
protoc-c/c_extension.h | 2 --
protoc-c/c_field.h | 5 -----
protoc-c/c_file.h | 2 --
protoc-c/c_generator.h | 3 ---
protoc-c/c_message.h | 2 --
protoc-c/c_message_field.h | 4 ----
protoc-c/c_primitive_field.h | 4 ----
protoc-c/c_service.h | 2 --
protoc-c/c_string_field.h | 2 --
12 files changed, 32 deletions(-)
diff --git a/protoc-c/c_bytes_field.h b/protoc-c/c_bytes_field.h
index bf873f0..df91ef7 100644
--- a/protoc-c/c_bytes_field.h
+++ b/protoc-c/c_bytes_field.h
@@ -87,8 +87,6 @@ class BytesFieldGenerator : public FieldGenerator {
private:
std::map<std::string, std::string> variables_;
-
- GOOGLE_DISALLOW_EVIL_CONSTRUCTORS(BytesFieldGenerator);
};
diff --git a/protoc-c/c_enum.h b/protoc-c/c_enum.h
index 9c34b69..089c336 100644
--- a/protoc-c/c_enum.h
+++ b/protoc-c/c_enum.h
@@ -106,8 +106,6 @@ class EnumGenerator {
private:
const EnumDescriptor* descriptor_;
std::string dllexport_decl_;
-
- GOOGLE_DISALLOW_EVIL_CONSTRUCTORS(EnumGenerator);
};
} // namespace c
diff --git a/protoc-c/c_enum_field.h b/protoc-c/c_enum_field.h
index 3f8c005..e0c96ad 100644
--- a/protoc-c/c_enum_field.h
+++ b/protoc-c/c_enum_field.h
@@ -85,8 +85,6 @@ class EnumFieldGenerator : public FieldGenerator {
private:
std::map<std::string, std::string> variables_;
-
- GOOGLE_DISALLOW_EVIL_CONSTRUCTORS(EnumFieldGenerator);
};
diff --git a/protoc-c/c_extension.h b/protoc-c/c_extension.h
index 9541388..bda0bc5 100644
--- a/protoc-c/c_extension.h
+++ b/protoc-c/c_extension.h
@@ -98,8 +98,6 @@ class ExtensionGenerator {
const FieldDescriptor* descriptor_;
std::string type_traits_;
std::string dllexport_decl_;
-
- GOOGLE_DISALLOW_EVIL_CONSTRUCTORS(ExtensionGenerator);
};
} // namespace c
diff --git a/protoc-c/c_field.h b/protoc-c/c_field.h
index 3cad35d..623a872 100644
--- a/protoc-c/c_field.h
+++ b/protoc-c/c_field.h
@@ -103,9 +103,6 @@ class FieldGenerator {
const std::string &type_macro,
const std::string &descriptor_addr) const;
const FieldDescriptor *descriptor_;
-
- private:
- GOOGLE_DISALLOW_EVIL_CONSTRUCTORS(FieldGenerator);
};
// Convenience class which constructs FieldGenerators for a Descriptor.
@@ -121,8 +118,6 @@ class FieldGeneratorMap {
std::unique_ptr<std::unique_ptr<FieldGenerator>[]> field_generators_;
static FieldGenerator* MakeGenerator(const FieldDescriptor* field);
-
- GOOGLE_DISALLOW_EVIL_CONSTRUCTORS(FieldGeneratorMap);
};
} // namespace c
diff --git a/protoc-c/c_file.h b/protoc-c/c_file.h
index 8dfd8ba..db1866c 100644
--- a/protoc-c/c_file.h
+++ b/protoc-c/c_file.h
@@ -103,8 +103,6 @@ class FileGenerator {
std::unique_ptr<std::unique_ptr<EnumGenerator>[]> enum_generators_;
std::unique_ptr<std::unique_ptr<ServiceGenerator>[]> service_generators_;
std::unique_ptr<std::unique_ptr<ExtensionGenerator>[]> extension_generators_;
-
- GOOGLE_DISALLOW_EVIL_CONSTRUCTORS(FileGenerator);
};
} // namespace c
diff --git a/protoc-c/c_generator.h b/protoc-c/c_generator.h
index ac1ffaf..b8b44aa 100644
--- a/protoc-c/c_generator.h
+++ b/protoc-c/c_generator.h
@@ -93,9 +93,6 @@ class PROTOC_C_EXPORT CGenerator : public CodeGenerator {
const std::string& parameter,
OutputDirectory* output_directory,
std::string* error) const;
-
- private:
- GOOGLE_DISALLOW_EVIL_CONSTRUCTORS(CGenerator);
};
} // namespace c
diff --git a/protoc-c/c_message.h b/protoc-c/c_message.h
index ea1c3ab..0d8c644 100644
--- a/protoc-c/c_message.h
+++ b/protoc-c/c_message.h
@@ -136,8 +136,6 @@ class MessageGenerator {
std::unique_ptr<std::unique_ptr<MessageGenerator>[]> nested_generators_;
std::unique_ptr<std::unique_ptr<EnumGenerator>[]> enum_generators_;
std::unique_ptr<std::unique_ptr<ExtensionGenerator>[]> extension_generators_;
-
- GOOGLE_DISALLOW_EVIL_CONSTRUCTORS(MessageGenerator);
};
} // namespace c
diff --git a/protoc-c/c_message_field.h b/protoc-c/c_message_field.h
index 39b8d99..e485921 100644
--- a/protoc-c/c_message_field.h
+++ b/protoc-c/c_message_field.h
@@ -82,10 +82,6 @@ class MessageFieldGenerator : public FieldGenerator {
void GenerateDescriptorInitializer(io::Printer* printer) const;
std::string GetDefaultValue(void) const;
void GenerateStaticInit(io::Printer* printer) const;
-
- private:
-
- GOOGLE_DISALLOW_EVIL_CONSTRUCTORS(MessageFieldGenerator);
};
diff --git a/protoc-c/c_primitive_field.h b/protoc-c/c_primitive_field.h
index a9eb893..aa7079f 100644
--- a/protoc-c/c_primitive_field.h
+++ b/protoc-c/c_primitive_field.h
@@ -82,10 +82,6 @@ class PrimitiveFieldGenerator : public FieldGenerator {
void GenerateDescriptorInitializer(io::Printer* printer) const;
std::string GetDefaultValue(void) const;
void GenerateStaticInit(io::Printer* printer) const;
-
- private:
-
- GOOGLE_DISALLOW_EVIL_CONSTRUCTORS(PrimitiveFieldGenerator);
};
} // namespace c
diff --git a/protoc-c/c_service.h b/protoc-c/c_service.h
index 27125a6..b51472f 100644
--- a/protoc-c/c_service.h
+++ b/protoc-c/c_service.h
@@ -100,8 +100,6 @@ class ServiceGenerator {
const ServiceDescriptor* descriptor_;
std::map<std::string, std::string> vars_;
-
- GOOGLE_DISALLOW_EVIL_CONSTRUCTORS(ServiceGenerator);
};
} // namespace c
diff --git a/protoc-c/c_string_field.h b/protoc-c/c_string_field.h
index 513cea7..b3a1a7f 100644
--- a/protoc-c/c_string_field.h
+++ b/protoc-c/c_string_field.h
@@ -87,8 +87,6 @@ class StringFieldGenerator : public FieldGenerator {
private:
std::map<std::string, std::string> variables_;
-
- GOOGLE_DISALLOW_EVIL_CONSTRUCTORS(StringFieldGenerator);
};
--
2.33.0

View File

@ -0,0 +1,66 @@
From 1937ba946b0a7a62c0f534e60f4d4799d7e0daed Mon Sep 17 00:00:00 2001
From: Robert Edmonds <edmonds@users.noreply.github.com>
Date: Sun, 2 Jul 2023 22:57:57 -0400
Subject: [PATCH] protoc-c: Use FileDescriptorLegacy to obtain proto syntax
version on protobuf >= 23.0
Use the newer "legacy" way of determining whether a file descriptor is
using proto2 or proto3 syntax on protobuf >= 23.0.
Based on
https://github.com/protobuf-c/protobuf-c/pull/556/commits/66574f3fd85a205eb7c90b790477d5415364209e
but continues to support older versions of protobuf.
Unfortunately, since this is a "deprecated", "legacy" API it'll probably
disappear in about five seconds.
---
protoc-c/c_file.cc | 4 ++++
protoc-c/c_helpers.h | 8 ++++++++
2 files changed, 12 insertions(+)
diff --git a/protoc-c/c_file.cc b/protoc-c/c_file.cc
index 59c1824..d211a3d 100644
--- a/protoc-c/c_file.cc
+++ b/protoc-c/c_file.cc
@@ -119,7 +119,11 @@ void FileGenerator::GenerateHeader(io::Printer* printer) {
int min_header_version = 1000000;
#if defined(HAVE_PROTO3)
+# if GOOGLE_PROTOBUF_VERSION >= 4023000
+ if (FileDescriptorLegacy(file_).syntax() == FileDescriptorLegacy::SYNTAX_PROTO3) {
+# else
if (file_->syntax() == FileDescriptor::SYNTAX_PROTO3) {
+#endif
min_header_version = 1003000;
}
#endif
diff --git a/protoc-c/c_helpers.h b/protoc-c/c_helpers.h
index adc7ee2..055528b 100644
--- a/protoc-c/c_helpers.h
+++ b/protoc-c/c_helpers.h
@@ -70,6 +70,10 @@
#include <protobuf-c/protobuf-c.pb.h>
#include <google/protobuf/io/printer.h>
+#if GOOGLE_PROTOBUF_VERSION >= 4023000
+# include <google/protobuf/descriptor_legacy.h>
+#endif
+
namespace google {
namespace protobuf {
namespace compiler {
@@ -172,7 +176,11 @@ int compare_name_indices_by_name(const void*, const void*);
// This wrapper is needed to be able to compile against protobuf2.
inline int FieldSyntax(const FieldDescriptor* field) {
#ifdef HAVE_PROTO3
+# if GOOGLE_PROTOBUF_VERSION >= 4023000
+ return FileDescriptorLegacy(field->file()).syntax() == FileDescriptorLegacy::SYNTAX_PROTO3 ? 3 : 2;
+# else
return field->file()->syntax() == FileDescriptor::SYNTAX_PROTO3 ? 3 : 2;
+# endif
#else
return 2;
#endif
--
2.33.0

View File

@ -0,0 +1,34 @@
From 7ed03a715bce3eab94eb77b66378c984bf7e633a Mon Sep 17 00:00:00 2001
From: Robert Edmonds <edmonds@users.noreply.github.com>
Date: Sat, 8 Jul 2023 23:13:59 -0400
Subject: [PATCH 3/5] protoc-c/c_file.cc: Remove HAVE_PROTO3 conditional
---
protoc-c/c_file.cc | 6 ++----
1 file changed, 2 insertions(+), 4 deletions(-)
diff --git a/protoc-c/c_file.cc b/protoc-c/c_file.cc
index d211a3d..ca0ad34 100644
--- a/protoc-c/c_file.cc
+++ b/protoc-c/c_file.cc
@@ -118,15 +118,13 @@ void FileGenerator::GenerateHeader(io::Printer* printer) {
std::string filename_identifier = FilenameIdentifier(file_->name());
int min_header_version = 1000000;
-#if defined(HAVE_PROTO3)
-# if GOOGLE_PROTOBUF_VERSION >= 4023000
+#if GOOGLE_PROTOBUF_VERSION >= 4023000
if (FileDescriptorLegacy(file_).syntax() == FileDescriptorLegacy::SYNTAX_PROTO3) {
-# else
+#else
if (file_->syntax() == FileDescriptor::SYNTAX_PROTO3) {
#endif
min_header_version = 1003000;
}
-#endif
// Generate top of header.
printer->Print(
--
2.33.0

View File

@ -0,0 +1,33 @@
From e08fe625655dca6e095b103869e030b79e5d0df2 Mon Sep 17 00:00:00 2001
From: Robert Edmonds <edmonds@users.noreply.github.com>
Date: Sat, 8 Jul 2023 23:14:23 -0400
Subject: [PATCH 4/5] protoc-c/c_helpers.h: Remove HAVE_PROTO3 conditional
---
protoc-c/c_helpers.h | 8 ++------
1 file changed, 2 insertions(+), 6 deletions(-)
diff --git a/protoc-c/c_helpers.h b/protoc-c/c_helpers.h
index 055528b..062d330 100644
--- a/protoc-c/c_helpers.h
+++ b/protoc-c/c_helpers.h
@@ -175,14 +175,10 @@ int compare_name_indices_by_name(const void*, const void*);
// Return the syntax version of the file containing the field.
// This wrapper is needed to be able to compile against protobuf2.
inline int FieldSyntax(const FieldDescriptor* field) {
-#ifdef HAVE_PROTO3
-# if GOOGLE_PROTOBUF_VERSION >= 4023000
+#if GOOGLE_PROTOBUF_VERSION >= 4023000
return FileDescriptorLegacy(field->file()).syntax() == FileDescriptorLegacy::SYNTAX_PROTO3 ? 3 : 2;
-# else
- return field->file()->syntax() == FileDescriptor::SYNTAX_PROTO3 ? 3 : 2;
-# endif
#else
- return 2;
+ return field->file()->syntax() == FileDescriptor::SYNTAX_PROTO3 ? 3 : 2;
#endif
}
--
2.33.0

View File

@ -1,5 +1,5 @@
Name: protobuf-c Name: protobuf-c
Version: 1.5.0 Version: 1.4.1
Release: 1 Release: 1
Summary: This is protobuf-c, a C implementation of the Google Protocol Buffers data serialization format Summary: This is protobuf-c, a C implementation of the Google Protocol Buffers data serialization format
License: BSD-2-Clause License: BSD-2-Clause
@ -9,6 +9,19 @@ BuildRequires: autoconf automake libtool gcc-c++ pkgconfig(protobuf)
Provides: %{name}-compiler = %{version}-%{release} Provides: %{name}-compiler = %{version}-%{release}
Obsoletes: %{name}-compiler < %{version}-%{release} Obsoletes: %{name}-compiler < %{version}-%{release}
Patch6000: backport-Update-autotools.patch
Patch6001: backport-configure.ac-Require-C-17.patch
Patch6002: backport-protoc-c-Remove-GOOGLE_DISALLOW_EVIL_CONSTRUCTORS-ma.patch
Patch6003: backport-protoc-c-Use-FileDescriptorLegacy-to-obtain-proto-sy.patch
Patch6004: backport-configure.ac-Remove-proto3_supported-BUILD_PROTO3.patch
Patch6005: backport-Makefile.am-Remove-conditional-BUILD_PROTO3-rules.patch
Patch6006: backport-protoc-c-c_file.cc-Remove-HAVE_PROTO3-conditional.patch
Patch6007: backport-protoc-c-c_helpers.h-Remove-HAVE_PROTO3-conditional.patch
Patch6008: backport-cmake-Remove-BUILD_PROTO3-HAVE_PROTO3.patch
Patch6009: backport-configure.ac-Drop-Wc99-c11-compat.patch
Patch6010: backport-Work-around-GOOGLE_-changes-in-protobuf-22.0.patch
Patch6011: backport-Use-GOOGLE_LOG-FATAL-instead-of-GOOGLE_LOG-DFATAL.patch
%description %description
This is protobuf-c, a C implementation of the Google Protocol Buffers data serialization format. This is protobuf-c, a C implementation of the Google Protocol Buffers data serialization format.
@ -38,7 +51,7 @@ make check
%ldconfig_scriptlets %ldconfig_scriptlets
%files %files
%doc TODO LICENSE ChangeLog.old CHANGELOG.md %doc TODO LICENSE ChangeLog
%{_libdir}/libprotobuf-c.so.* %{_libdir}/libprotobuf-c.so.*
%{_bindir}/{protoc-c,protoc-gen-c} %{_bindir}/{protoc-c,protoc-gen-c}
@ -48,6 +61,9 @@ make check
%{_libdir}/{libprotobuf-c.so,pkgconfig/libprotobuf-c.pc} %{_libdir}/{libprotobuf-c.so,pkgconfig/libprotobuf-c.pc}
%changelog %changelog
* Tue Feb 27 2024 liuchao <liuchao173.huawei.com> - 1.4.1-1
- downgrade to 1.4.1 to match the 24.03 LTS's minimum set of core packages
* Wed Jan 24 2024 liuchao <liuchao173.huawei.com> - 1.5.0-1 * Wed Jan 24 2024 liuchao <liuchao173.huawei.com> - 1.5.0-1
- upgrade to 1.5.0: - upgrade to 1.5.0:
- Makefile.am: change link order - Makefile.am: change link order

BIN
v1.4.1.tar.gz Normal file

Binary file not shown.

Binary file not shown.