OLD | NEW |
1 Name: Protocol Buffers | 1 Name: Protocol Buffers |
2 Short Name: protobuf | 2 Short Name: protobuf |
3 URL: https://github.com/google/protobuf | 3 URL: http://protobuf.googlecode.com/svn/trunk |
4 License: BSD | 4 License: BSD |
5 License File: LICENSE | 5 License File: COPYING.txt |
6 Version: unknown | 6 Version: unknown |
7 Revision: 6994b07f1480f658e2ea6262f8ca804e836ef1d2 | 7 Revision: r476 |
8 Security Critical: yes | 8 Security Critical: yes |
9 | 9 |
10 Steps used to create the current version: | 10 Local files (not taken from upstream): |
11 (1) Download and unpack protobuf sources from | 11 README.chromium |
12 https://github.com/google/protobuf/archive/master.zip . | 12 config.h |
13 (2) Apply the patches in patches/ in order. In all these cases, after | 13 descriptor2_pb.py |
14 determining how to adapt the patch to the current protobuf codebase, you | |
15 should regenerate the patch for the next maintainer. | |
16 | 14 |
17 A brief description of each patch: | 15 A protobuf.gyp file has been added for building with Chromium. |
18 00: Add initial GYP/GN buildfiles, DEPS, OWNERS, and README.chromium. You | 16 |
19 will need to modify the README to include the correct revision, and modify | 17 This code has been patched to support unknown field retention in protobuf-lite. |
20 the buildfiles to reflect the actual files in the source tree, what they | 18 See r62331 for the patch. |
21 #include, what warnings they trigger, etc. | 19 |
22 01: Miscellaneous build fixes to make the upstream sources compile. At this | 20 This code has been patched to ensure that files in the target protobuf_lite |
23 point you should be able to build the protobuf_* and protoc targets (but | 21 do not include headers from protobuf_full. See r173228 for the patch. |
24 not necessarily anything depending on them). | 22 |
25 02: Add unknown field retention to protobuf_lite. This is a large and complex | 23 This code has been patched to make the target protobuf_lite a component so that |
26 patch which will likely require reworking to apply correctly. Changes to | 24 targets that depend on it can be componentized. See http://crbug.com/172800 for |
27 .pb.* files can likely be autogenerated once you apply the rest of the | 25 details, and r179806 for the patch. |
28 patch and rebuild protoc; look at step (3) below and the | 26 |
29 generate_descriptor_proto.sh script in the protobuf root directory for a | 27 Revision 504 was cherry-picked from upstream. |
30 guide. Based on http://crrev.com/62331 and http://crrev.com/173228 . | 28 Revision 512 was cherry-picked from upstream. |
31 03: Convert protobuf_lite to a component. Based on http://crrev.com/179806 . | 29 Revision 516 was cherry-picked from upstream. |
32 04: Uninline various functions. Based on http://crrev.com/307332 . | 30 Revision 517 was cherry-picked from upstream. |
33 (3) Generate descriptor_pb2.py using something like the following steps. Make | 31 Revision 522 was cherry-picked from upstream. |
34 sure you've regenerated your buildfiles and will build protoc from the | 32 Revision 523 was cherry-picked from upstream. |
35 newly-modified sources above. | 33 Revision 524 was cherry-picked from upstream. |
36 $ cd $SRC_DIR | 34 Revision 573 was cherry-picked from upstream. |
37 $ ninja -C out/Debug protoc | 35 The `&file->options() != NULL &&` was removed from descriptor.cc |
38 $ cd third_party/protobuf/src | 36 References to `vector` were changed to `std::vector` in extension_set.h |
39 $ ../../../out/Debug/protoc --python_out=../python google/protobuf/descriptor.
proto | 37 and unknown_field_set.h |
40 $ cd .. | 38 |
41 $ git add -f python/google/protobuf/descriptor_pb2.py | 39 GetEmptyString() and GoogleOnceInit() have been uninlined, for a large savings |
42 $ git commit | 40 in binary size. |
43 (4) At this point you should be done, and able to successfully build everything. | 41 |
| 42 A BUILD.gn file has been added for building with GN. |
| 43 |
| 44 Cherry-pick pherl changes to make protobuf build on VS2015. |
| 45 |
| 46 Cherry-pick c3cb53b (fix "sometimes-uninitialized" warning). |
| 47 |
| 48 Cherry-pick https://github.com/google/protobuf/commit/56a90a2081379a5 |
| 49 |
| 50 Cherry-pick https://github.com/google/protobuf/commit/69d660b39ceabea |
OLD | NEW |