Name: Protocol Buffers
Short Name: protobuf
URL: https://github.com/google/protobuf
License: BSD
License File: LICENSE
Version: 3.3.0
Revision: 040f56e61b379e92dfdf107b12244a7580f60823
Security Critical: yes

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

   Be sure to update the list of source files, as additional .cc files and
   headers might have been added -- you need to find the transitive closure of
   include files required by targets.

   Other things to care about are defines required by protobuf on various
   platforms, warnings generated by compilers, and new dependencies introduced.
3. Add DEPS and OWNERS.
4. Add mirclient.cc and mirclient.map.
5. Get open-source library six.py from https://pypi.python.org/pypi/six/ and add
   it to protobuf/third_party/six/six.py.
6. 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).
7. Generate well_known_types_embed.cc and descriptor_pb2.py using something like
   the following steps. Make sure you've regenerated your buildfiles and will
   build js_embed then protoc from the newly-modified sources above.

   $ cd $SRC_DIR
   $ gn gen out/Debug
   $ ninja -C out/Debug js_embed
   $ cd third_party/protobuf/src/google/protobuf/compiler/js
   $ $SRC_DIR/out/Debug/js_embed                                    \
        ./well_known_types/any.js ./well_known_types/struct.js      \
        ./well_known_types/timestamp.js > well_known_types_embed.cc
   $ cd $SRC_DIR
   $ ninja -C out/Debug protoc
   $ cd third_party/protobuf/src
   $ $SRC_DIR/out/Debug/protoc --python_out=../python google/protobuf/descriptor.proto

8. Add an __init__.py to protobuf/ that adds third_party/six/ to Python path.
9. Update README.chromium.

Note about libmirclient:

On Ubuntu, Chromium has an indirect dependency on the system
libprotobuf-lite through libmirclient (through GTK).  The symbols in
the system library conflict with Chromium's libprotobuf-lite used on
component builds.

mirclient.* are added to stub out libmirclient.so.9 to prevent loading
the system libprotobuf-lite.  Chromium's replacement libmirclient will
get loaded, but its symbols will never be used directly or indirectly.

Description of the patches:

- 0003-remove-static-initializers.patch

  This patch removes all static initializers from Chromium. The change in Status
  class is not completely compatible with upstream, but it's compatible enough
  to work in Chromium, which doesn't use this functionality yet. The work on
  upstreaming the removal of static initializers is in progress:
  https://github.com/google/protobuf/issues/1404

- 0004-fix-integer-types-and-shared-library-exports.patch

  This patch makes protobuf int64 to be int64_t (as opposed to long long in
  upstream), and similarly for other integer types. It also allows exporting
  protobuf symbols in Linux .so libraries, so that protobuf can be built as a
  component (see http://crrev.com/179806).

- 0007-uninline_googleonce.patch
- 0008-uninline_get_empty_string.patch
- 0009-uninline-arenastring.patch
- 0010-uninline-generated-code.patch

  These patches uninline some functions, resulting in a significant reduction
  (somewhere between 500 KB and 1 MB) of binary size.

- 0012-fixes-for-js-embed-cc.patch

  Fixed in https://github.com/google/protobuf/pull/1549

- 0013-fixes-expansion-to-defined.patch

  Fixes a macro whose expansion has a defined() in it.  This is
  results in undefined behavior and some compilers will warn/error
  when seeing this.

- 0014-truncate-uint8-constants.patch

  Fixed upstream in CL 161573822

- 0015-fixes-forcing-value-to-bool.patch

  Fixes an MSVC error that forbids conversion from int to bool.  Needs
  to be upstreamed.

- 0014-truncate-uint8-constants.patch

  Fixed upstream in CL 163270735

- 0017-constexpr-for-vs-2017.patch

  Define PROTOBUF_CONSTEXPR_VAR as constexpr for VS 2017, also landed upstream
  as https://github.com/google/protobuf/commit/210be267fd81d5aafdc049d197d57cb45b75f3ba

- 0018-fallthrough.patch

  Cherry-picks upstream https://github.com/google/protobuf/commit/b8e47830d

- 0019-rename-a-shadowed-variable.patch

  Cherry-picks upstream https://github.com/google/protobuf/commit/af3813cd7

- 0020-Add-support-for-libc-on-Windows.patch

  Cherry-picks upstream https://github.com/google/protobuf/commit/3ba21cd5f

-- patches/0023-php_generator.patch

  Cherry-picks upstream https://github.com/google/protobuf/commit/662e8b20
