protobuf-c (1.4.0) [ Robert Edmonds ] * Release 1.4.0. [ Ilya Lipnitsky ] * c_message.cc: Resolve name conflict between certain enums and oneofs (#427). * protobuf-c.h: Fix Windows DLL export issue with the protobuf_c_empty_string symbol (#428). * Standardize pkg-config for use by autotools and cmake, fix cmake tests (#425). * protobuf-c.c: Cast %lu args to unsigned long int (#429). * protoc-c: Remove leading underscores from structs (#430). * protoc-c: Fix shared lib build on windows, migrate from Travis CI to GitHub Actions (#459). * protobuf-c: Don't use ProtobufCWireType internally (#463). * protoc-c: Add custom options support (#466). * protobuf-c.c: Fix packed repeated bool parsing (#467). [ Markus Engel ] * Pack nested messages inline (#431). [ Daniel Axtens ] * Travis CI: Test on other platforms (#438). [ Adam Cozzette ] * Update the generator to fully qualify std::string (#443). [ Piotr Pietraszkiewicz ] * Install MSVC debug symbols alongside the protobuf-c.lib file (#456). [ ihsinme ] * Fix invalid unsigned arithmetic (#455). [ Wolfram Rösler ] * Avoid "unused function parameter" compiler warning (#453). protobuf-c (1.3.3) [ Robert Edmonds ] * Release 1.3.3. * Fix build failure on protobuf 2.x (#398). [ msshapira ] * CMake: Fix support for MSVC static build (#350). [ Adam Cozzette ] * Fix some test assertions in test-generated-code2.c (#392). [ Ilya Lipnitskiy ] * protobuf-c.c: Make zigzag encoding more compact (#400). [ Markus Engel ] * CMake: Fix endianness check. protobuf-c (1.3.2) [ Robert Edmonds ] * Release 1.3.2. * Use protobuf 3.7.1 in the Travis-CI environment (#368). * Fix test suite build failure on newer versions of protobuf (#369). [ Ilya Lipnitskiy ] * Fix proto3 repeated scalar field default packing behavior (#330, #377). [ Adam Cozzette ] * Fix out-of-bounds read in scan_length_prefixed_data() (#375, #376). [ Jurriaan Bremer ] * Fix -Wdeclaration-after-statement warning in parse_oneof_member() (#360). [ Hayri Ugur Koltuk ] * Fix SIGSEGV in protobuf_c_message_check() on messages with unpopulated oneof members (#358). [ Italo Guerrieri ] * Do not allow tag values of 0 in protobuf messages, as these are not allowed by proto2 or proto3 (#299). protobuf-c (1.3.1) [ Robert Edmonds ] * Release 1.3.1. * Restore protobuf-2.x compatibility (#284, #285). * Use xenial and protobuf 3.6.1 in the Travis-CI environment (#332). * Convert uses of protobuf's scoped_ptr.h to C++11 std::unique_ptr, needed to compile against protobuf 3.6.1 (#320, #333). * Use AX_CXX_COMPILE_STDCXX macro to enable C++11 support in old compilers (#312, #317, #327, #334). [ Fredrik Gustafsson ] * Add std:: to some types (#294, #305, #309). [ Sam Collinson ] * Check the return value of int_range_lookup before using as an array index; it can return -1 (#315). [ Matthias Dittrich ] * Fix compilation on mingw by using explicit protoc --plugin=NAME=PATH syntax in Makefile.am (#289, #290). protobuf-c (1.3.0) [ Robert Edmonds ] * Release 1.3.0. * Add test case for the issue in #220 (#254). * Fix issue #251, "Bad enums with multiple oneofs" (#256). * Add warning flags to my_CFLAGS (#257). * Fix namespace errors when compiled with latest protobuf (#280). * Bump minimum required header version for proto3 syntax (#282). [ Paolo Borelli ] * Turn the compiler into a protoc plugin (#206). This allows the protobuf-c compiler to be invoked as "protoc --c_out=...". For backwards compatibility, we still ship a protoc-c command, but it's a symlink to the protoc-gen-c binary. * proto3 support (#228). * Remove leftover FIXME comment (#258). * Fix proto3 "is zeroish" evaluation (#264). * Small cleanup in oneof handling (#265). * Rework is_zeroish one more time (#267). * proto3: make strings default to "" instead of NULL (#274). [ Tomek Wasilczyk ] * Fix -Wsign-compare warnings (#213). * Fix ISO C90 -Wdeclaration-after-statement warnings (#214). * Fix bigendian -Wunused-label warning (#215). [ Ilya Lipnitsky ] * protoc-c/c_message.cc: Force int size on oneof enums (#221). Fixes wrong enum generation and handling for onceof cases (#220). [ Adnan ] * Fix cmake build if built as part of an external project (#231). [ Gregory Detal ] * Remove .pb.{cc,h} in distdir instead of top_distdir in order to prevent removing files from other projects when protobuf-c is included as an autotools subproject (#232). [ Ben Farnham ] * Relax autoconf constraint from v2.64 to v2.63 so that it works on older Linux distros (#233). [ Thomas Köckerbauer ] * rm argument fix for Solaris (#234). * Add 'const' qualifier to 'init_value' variable in generated files (#236). [ Richard Kettlewell ] * Document and extend the effect of passing NULL to ..._free_unpacked functions (#255). [ Alex Milich ] * CMake: Workaround for static builds that use MSVC (#243). [ Josh Junon ] * CMake: Allow protobuf-c to be included via include_subdirectory (#245). [ Alexei Kasatkin ] * CMake: Windows fixes (#266). protobuf-c (1.2.1) [ Robert Edmonds ] * Release 1.2.1. [ Paolo Borelli ] * protoc-c: Generate code that uses the universal zero initializer {0} when initializing a oneof union (#187, #205). protobuf-c (1.2.0) [ Robert Edmonds ] * Release 1.2.0. [ Ilya Lipnitsky ] * Implement the "optimize_for = CODE_SIZE" option (#183). * Eliminate undefined behavior in zigzag functions (#198). * Pack negative enum values correctly (#199). [ Peter Leschev ] * Fix protobuf_c_message_get_packed_size() on 16-bit systems (#196, #197). [ Diego Elio Pettenò ] * Update link to Autotools Mythbuster to canonical site (#201). [ Zex Li ] * Skip test suite when cross-compiling (#184). protobuf-c (1.1.1) [ Robert Edmonds ] * Release 1.1.1. * Use protobuf 2.6.1 in the Travis-CI environment. [ Ilya Lipnitskiy ] * Munge C block comment delimiters in protobuf comments, preventing syntax errors in generated header files (Issue #180, #185). * Add static qualifier to ProtobufCEnumValue and ProtobufCEnumValueIndex variables in generated output. [ Oleg Efimov ] * Fix -Wpointer-sign compiler diagnostics in the test suite. * Check for NULL pointers in protobuf_c_message_free_unpacked() (Issue #177). * Exclude protoc-c and downloaded protobuf sources from Coveralls report. [ Andrey Myznikov ] * Fix incorrect 'short_name' field values in ProtobufCServiceDescriptor variables in generated output. protobuf-c (1.1.0) [ Robert Edmonds ] * Release 1.1.0. [ Ilya Lipnitskiy ] * Fix a bug when merging optional byte fields. * Documentation updates. * Implement oneof support (Issue #174). Protobuf 2.6.0 or newer is now required to build protobuf-c. * Print leading comments for enum, message, and field definitions into generated header files (Issue #175). protobuf-c (1.0.2) [ Robert Edmonds ] * Release 1.0.2. [ Ilya Lipnitskiy ] * Fix a build failure with Protobuf 2.6.0 related to aliased enum constants (Issue #163). * Protobuf 2.5.0 or newer is now required to build protobuf-c (Issue #166). This is due to the fix for #163. [ Alexei Kasatkin ] * Eliminate void pointer arithmetic (Issue #167). * Always define PROTOBUF_C__DEPRECATED, even on compilers that are not GCC (Issue #167). * Work around the lack of the 'inline' keyword in Microsoft compilers (Issue #167). * Add a CMakeLists.txt file as a fallback build system for Windows (Issue #168). [ Natanael Copa ] * Fix a build failure in the test suite that occurred with a parallel make running on a system with a large number of CPUs (Issue #156, #169). protobuf-c (1.0.1) [ Robert Edmonds ] * Explicitly set the .data field of ProtobufCBinaryData's to NULL when unpacking a zero length byte string (Issue #157). protobuf-c (1.0.0) [ Andrei Nigmatulin ] * Append "u", "ull", and "ll" integer literal suffixes for uint32, uint64, and int64 default values in generated code, in order to avoid "integer constant is so large that it is unsigned" compiler warnings. (Issue #136.) * Revert the problematic hash-based required field detection. (Related to Issue #60, #79, #137.) * Replace the 'packed' member of ProtobufCFieldDescriptor with a 'flags' word. Define flags for packed and deprecated fields. (Issue #138.) [ Dave Benson ] * Treat a "length-prefixed" wire-type message for a repeated field as packed-repeated whenever it makes sense (for all types other than messages, strings, and bytes). * Switch to New BSD license. * Add protobuf_c_message_check(). * Compile error in packing 64-bit versions on some platforms (srobbins99: Issue #68 Comment 1). * Fix for memory error if the required-field check fails. See Issue #63 for demo (w/ nice test case by dror.harari). * Add PROTOBUF_C_{MAJOR,MINOR} for compile-time checks and protobuf_c_{major,minor} for checks about the running library (Issue #53). * Use a small constant-size hash-table instead of alloca() for detecting required fields, and it also prevents us from using too much stack, etc. (Related to Issue #60, #79). * Add a macro to ensure enums are the size of ints (Issue #69). [ Ilya Lipnitskiy ] * Travis-CI integration. * Add source .proto filename to generated files. * Add protobuf-c version to protoc-c --version output (Issue #52). * For embedded submessage fields, merge multiple instances of the same field, per the protobuf documentation (Issue #91). * Don't print unpack errors by default. * Optionally allow running the test suite under valgrind with ./configure --enable-valgrind-tests. (Based on valgrind-tests.m4 from gnulib.) [ Kevin Lyda ] * Autoconf portability fixes. * Add doxygen detection and make targets to the build system. * Doxygen documentation for the libprotobuf-c public API (Issue #132). [ Nick Galbreath ] * Prevent possible overflow on 64-bit systems (Issue #106). [ Robert Edmonds ] * Remove CMake (Issue #87). * Modernize the build system. - Don't generate any diagnostics when building the build system with modern autotools (Issue #89). - Use the PKG_CHECK_MODULES macro to locate protobuf. - Use the AC_C_BIGENDIAN macro to detect endianness, rather than custom code. - Use the automake silent-rules option so the build output is actually readable. - Generate our own pkg-config .pc files. * Reorganize the source tree. This affects the public protobuf-c header path, which is now . A compatibility symlink from to has been installed so that existing code will continue to compile. New code should at some point begin using the new include path, i.e., "#include " rather than "#include ". * The RPC code has been split out into a separate project, protobuf-c-rpc. * Fix a potential use of an unitialized value in protobuf_c_message_unpack() and several memory leaks in protoc-c, discovered by a commercial static code analysis tool. * Bump the libprotobuf-c SONAME. * Begin versioning the library's symbols. (Based on ld-version-script.m4 from gnulib.) * Preserve case in enum value names generated by protoc-c (Issue #129). Reported by Oleg Efimov. * Add library functions protobuf_c_version() and protobuf_c_version_string() for retrieving the version of the compiled library, and header macros PROTOBUF_C_VERSION and PROTOBUF_C_VERSION_STRING for retrieving the version of the header file. This replaces the interfaces for retrieving the protobuf-c version numbers in Issue #53. * Add a version guard that ensures that the output of protoc-c is only compiled against a protobuf-c header file from the exact same protobuf-c release. * Add a --enable-code-coverage option to configure, which enables a "make check-code-coverage" build target. This generates a code coverage report and requires the lcov tool to be installed. * Remove the old DocBook documentation in doc/c-code-generator.{html,xml}. Relevant material has been updated and incorporated into the Doxygen documentation in the protobuf-c header file. * Remove the protobuf_c_default_allocator and protobuf_c_system_allocator global variables from the exported library interface. All exported library functions that need to perform dynamic memory allocation receive a user-provided ProtobufCAllocator* parameter. If this parameter is NULL, the system's default memory allocator will be used. Client code that previously passed "&protobuf_c_system_allocator" to protobuf-c library functions taking a ProtobufCAllocator* argument should be updated to pass "NULL" instead. Client code that previously overrode protobuf_c_default_allocator with custom allocation functions and passed NULL as the ProtobufCAllocator* argument to protobuf-c library functions should be updated to instead enclose the custom allocation functions in a ProtobufCAllocator struct and pass this object to protobuf-c library functions taking a ProtobufCAllocator* parameter. * Update copyright and license statements throughout. The original protobuf code released by Google was relicensed from Apache-2.0 to BSD-3-Clause. Dave Benson also converted his license from BSD-3-Clause to BSD-2-Clause. [ Tomasz Wasilczyk ] * Don't export protobuf_c_message_init_generic() as an external symbol. * Don't use C++ style comments in C code. * Fix -Wcast-align warnings when compiled with clang. protobuf-c (0.15) - make protobuf_c_message_init() into a function (Issue #49, daveb) - Fix for freeing memory after unpacking bytes w/o a default-value. (Andrei Nigmatulin) - minor windows portability issues (use ProtobufC_FD) (Pop Stelian) - --with-endianness={little,big} (Pop Stelian) - bug setting up values of has_idle in public dispatch, make protobuf_c_dispatch_run() use only public members (daveb) - provide cmake support and some Windows compatibility (Nikita Manovich) protobuf-c (0.14) - build fix (missing dependency in test directory) - add generation / installation of pkg-config files. (Bobby Powers) - support for packed repeated fields (Dave Benson) - bug in protobuf_c_dispatch_close_fd(), which usually only showed up in later function calls. - support for deprecated fields -- enable a GCC warning if a field has the "deprecated" option enabled. (Andrei Nigmatulin) - hackery to try to avoid touching inttypes.h on windows (Issue #41) - fix for protobuf_c_message_unpack() to issue error if any "required" field is missing in input stream. (Andrei Nigmatulin) protobuf-c (0.13) - Fix for when the number of connections gets too great in RPC. (Leszek Swirski) (issue #32) - Add --disable-protoc to only build libprotobuf-c (daveb) - Bug fixes for protobuf_c_enum_descriptor_get_value_by_name() and protobuf_c_service_descriptor_get_method_by_name() - if descriptor->message_init != NULL, use it from unpack() as an optimization (daveb) - implement protobuf_c_{client,server}_set_error_handler() protobuf-c (0.12) - for field names which are reserved words, use the real name given in the protobuf-c file, not the mangled name which is the name of the member in the C structure. (Andrei Nigmatulin) - add protobuf_c_message_init() function; add virtual function that implements it efficiently. (Andrei Nigmatulin) - bug fix for sfixed32, fixed32, float wire-types on big-endian platforms (Robert Edmonds) - compile with the latest protobuf (the header file wire_format_inl.h is now wire_format.h) (Robert Edmonds) protobuf-c (0.11) - allow CFLAGS=-DPRINT_UNPACK_ERRORS=0 to suppress unpack warnings from being printed at compile time (Andrei Nigmatulin) - give error if an unknown wire-type is encountered (Andrei Nigmatulin) - fix technically possible overflows during unpack of very large messages (Andrei Nigmatulin) - [UNFINISHED] windows RPC work - use automake's "foreign" mode from within configure.ac and add version information to the library (Robert Edmonds) - ProtobufCServiceDescriptor::method_indices_by_name: missing const. (Issue 21) - Update to support new UnknownFields API. (fix by dcreager) (Issue 20) protobuf-c (0.10) - build issue on platforms which don't compute library dependencies automatically. - fix for certain types of corrupt messages (Landon Fuller) (issue 16) protobuf-c (0.9) - build issue: needed $(EXEEXT) in dependency lists for cygwin - bug fix: protobuf_c_service_get_method_by_name() was not correct b/c the service's methods were not sorted by name (the header file used to incorrectly state that they were). Now we correctly implement protobuf_c_service_get_method_by_name() (using a bsearch indexed by separate array). - generated source incompatibility: we added a new member to ProtobufCServiceDescriptor (method_indices_by_name). You will have to run the latest protobuf to generate those structures. - rename rpc-client's "autoretry" mechanism to "autoreconnect". - bug fixes using TCP clients with the RPC system. - handle allocation failures more gracefully (Jason Lunz) (issue 15) protobuf-c (0.8) - Destroy function typedef for Services was omitting a "*" - service_machgen_invoke was broken. (issue 12) - add RPC system (BETA) - don't segfault when packing NULL strings and messages. (issue 13) protobuf-c (0.7) - memory leak: unknown fields were not being freed by free_unpacked() - lowercase field names consistently when composing default_value names. (issue 11) - remove spurious semicolon (issue 10) protobuf-c (0.6) - Warning suppression for -Wcast-qual and -Wshadow. - Support for default values of all types allowed by core protobuf. - Generate message__init functions, for when the static initializer isn't convenient. - add some reserved fields at the end of the various descriptors protobuf-c (0.5) - License now included in major files. - Use little-endian optimizations; fix a bug therein. - Include 'make deb' target. protobuf-c (0.4) - Update to work with protobuf 2.0.1. protobuf-c (0.2) protobuf-c (0.3) - Minor pedantic concerns about generated code. protobuf-c (0.1) - Lots of test code (and bug fixes). protobuf-c (0.0) - Initial release.