mirror of
https://github.com/klzgrad/naiveproxy.git
synced 2024-11-24 06:16:30 +03:00
94 lines
3.5 KiB
Plaintext
94 lines
3.5 KiB
Plaintext
Name: Protocol Buffers
|
|
Short Name: protobuf
|
|
URL: https://github.com/google/protobuf
|
|
License: BSD
|
|
License File: LICENSE
|
|
Version: 3.5.2
|
|
Revision: cf242503ec157a7dda8a6eda48712dd26c81d2e6
|
|
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 the script
|
|
"gen_extra_chromium_files" in the same directory as this file.
|
|
|
|
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).
|
|
|
|
- 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
|
|
|
|
- 0015-fixes-forcing-value-to-bool.patch
|
|
|
|
Fixes an MSVC error that forbids conversion from int to bool. Needs
|
|
to be upstreamed.
|
|
|
|
- 0020-Add-support-for-libc-on-Windows.patch
|
|
|
|
Cherry-picks upstream https://github.com/google/protobuf/commit/3ba21cd5f
|
|
|
|
- 0021-Fix-protobuf-s-library-.gitinore-file.patch
|
|
|
|
Un-ignores python/google/protobuf/descriptor_pb2.py
|
|
|
|
- 0022-proto_writer_render_bytes_override.patch
|
|
|
|
Corrects override in proto_writer.h.
|
|
https://github.com/google/protobuf/pull/4707
|
|
|