Name: Protocol Buffers
Short Name: protobuf
URL: https://github.com/google/protobuf
License: BSD
License File: LICENSE
Security Critical: yes
Shipped: yes
Version: 3.20.3

Description:

Protocol buffers are Google's language-neutral, platform-neutral, extensible
mechanism for serializing structured data. Open Screen uses protobufs primary
for message serialization.

Steps used to create the current version:
1. Pull the release from https://github.com/google/protobuf/releases (Source
   code zip)
2. Add build files (BUILD.gn, proto_library.gni).

   As needed, update defines required by protobuf on various platforms, warnings
   generated by compilers, and new dependencies introduced.
3. Add gen_openscreen_file_lists.py.
4. Apply patches in patches/ (see the description below):

   $ for patch in patches/*; do patch -s -p1 < $patch; done

   For future releases, it will be worth looking into which patches still need
   to be applied. In case of conflict, update those patches accordingly and save
   them back in place (i.e. in patches directory).
5. Generate proto_sources.gni using the script "gen_openscreen_file_lists.py".
6. Update this file (README.chromium).

Description of the patches:

- 0027-no-noreturn.patch

  Removes an instance of [[noreturn]]. The attribute is correct, but the way
  protobuf's GOOGLE_LOG(FATAL) is defined, the compiler can't see this and it
  trips -Winvalid-noreturn. See https://github.com/protocolbuffers/protobuf/issues/9817


