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: https://github.com/google/protobuf |
4 License: BSD | 4 License: BSD |
5 License File: LICENSE | 5 License File: LICENSE |
6 Version: 3.0.0-beta-3 | 6 Version: 3.1.0 |
7 Revision: 3470b6895aa659b7559ed678e029a5338e535f14 | 7 Revision: f52e188fe465c10377f5a2b5765f481cb6fcb2f4 |
8 Security Critical: yes | 8 Security Critical: yes |
9 | 9 |
10 Steps used to create the current version: | 10 Steps used to create the current version: |
11 1. Pull the release from https://github.com/google/protobuf/releases | 11 1. Pull the release from https://github.com/google/protobuf/releases |
12 2. Add build files (BUILD.gn, proto_library.gni, protobuf.gyp, | 12 2. Add build files (BUILD.gn, proto_library.gni). |
13 protobuf_lite.gypi, protobuf_nacl.gyp). | |
14 | 13 |
15 Be sure to update the list of source files, as additional .cc files and | 14 Be sure to update the list of source files, as additional .cc files and |
16 headers might have been added -- you need to find the transitive closure of | 15 headers might have been added -- you need to find the transitive closure of |
17 include files required by targets. | 16 include files required by targets. |
18 | 17 |
19 Other things to care about are defines required by protobuf on various | 18 Other things to care about are defines required by protobuf on various |
20 platforms, warnings generated by compilers, and new dependencies introduced. | 19 platforms, warnings generated by compilers, and new dependencies introduced. |
21 3. Get open-source library six.py from https://pypi.python.org/pypi/six/ and add | 20 3. Get open-source library six.py from https://pypi.python.org/pypi/six/ and add |
22 it to protobuf/third_party/six/six.py. | 21 it to protobuf/third_party/six/six.py. |
23 4. Apply patches in patches/ (see the description below): | 22 4. Apply patches in patches/ (see the description below): |
24 | 23 |
25 $ for patch in patches/*; do patch -s -p1 < $patch; done | 24 $ for patch in patches/*; do patch -s -p1 < $patch; done |
26 | 25 |
27 For future releases, it will be worth looking into which patches still need | 26 For future releases, it will be worth looking into which patches still need |
28 to be applied. | 27 to be applied. In case of conflict, update those patches accordingly and save |
29 5. Generate descriptor_pb2.py using something like the following steps. Make | 28 them back in place (i.e. in patches directory). |
30 sure you've regenerated your buildfiles and will build protoc from the | 29 5. Generate well_known_types_embed.cc and descriptor_pb2.py using something like |
31 newly-modified sources above. | 30 the following steps. Make sure you've regenerated your buildfiles and will |
| 31 build js_embed then protoc from the newly-modified sources above. |
32 | 32 |
33 $ cd $SRC_DIR | 33 $ cd $SRC_DIR |
| 34 $ gn gen out/Debug |
| 35 $ ninja -C out/Debug js_embed |
| 36 $ cd third_party/protobuf/src/google/protobuf/compiler/js |
| 37 $ $SRC_DIR/out/Debug/js_embed \ |
| 38 ./well_known_types/any.js ./well_known_types/struct.js \ |
| 39 ./well_known_types/timestamp.js > well_known_types_embed.cc |
| 40 $ cd $SRC_DIR |
34 $ ninja -C out/Debug protoc | 41 $ ninja -C out/Debug protoc |
35 $ cd third_party/protobuf/src | 42 $ cd third_party/protobuf/src |
36 $ ../../../out/Debug/protoc --python_out=../python google/protobuf/descriptor
.proto | 43 $ $SRC_DIR/out/Debug/protoc --python_out=../python google/protobuf/descriptor
.proto |
37 | 44 |
38 6. Add an __init__.py to protobuf/ that adds third_party/six/ to Python path. | 45 6. Add an __init__.py to protobuf/ that adds third_party/six/ to Python path. |
39 7. Update README.chromium. | 46 7. Update README.chromium. |
40 | 47 |
41 Description of the patches: | 48 Description of the patches: |
42 | 49 |
43 - 0003-remove-static-initializers.patch | 50 - 0003-remove-static-initializers.patch |
44 | 51 |
45 This patch removes all static initializers from Chromium. The change in Status | 52 This patch removes all static initializers from Chromium. The change in Status |
46 class is not completely compatible with upstream, but it's compatible enough | 53 class is not completely compatible with upstream, but it's compatible enough |
47 to work in Chromium, which doesn't use this functionality yet. The work on | 54 to work in Chromium, which doesn't use this functionality yet. The work on |
48 upstreaming the removal of static initializers is in progress: | 55 upstreaming the removal of static initializers is in progress: |
49 https://github.com/google/protobuf/issues/1404 | 56 https://github.com/google/protobuf/issues/1404 |
50 | 57 |
51 - 0004-fix-integer-types-and-shared-library-exports.patch | 58 - 0004-fix-integer-types-and-shared-library-exports.patch |
52 | 59 |
53 This patch makes protobuf int64 to be int64_t (as opposed to long long in | 60 This patch makes protobuf int64 to be int64_t (as opposed to long long in |
54 upstream), and similarly for other integer types. It also allows exporting | 61 upstream), and similarly for other integer types. It also allows exporting |
55 protobuf symbols in Linux .so libraries, so that protobuf can be built as a | 62 protobuf symbols in Linux .so libraries, so that protobuf can be built as a |
56 component (see http://crrev.com/179806). | 63 component (see http://crrev.com/179806). |
57 | 64 |
58 - 0005-fix-include-js-generator.protobuf | |
59 | |
60 During merge with internal branch, the <> in one of the #includes were | |
61 accidentally replaced with "", which results in a failure in checkdeps. | |
62 | |
63 Fixed in https://github.com/google/protobuf/pull/1547. | |
64 | |
65 - 0007-uninline_googleonce.patch | 65 - 0007-uninline_googleonce.patch |
66 - 0008-uninline_get_empty_string.patch | 66 - 0008-uninline_get_empty_string.patch |
67 - 0009-uninline-arenastring.patch | 67 - 0009-uninline-arenastring.patch |
68 - 0010-uninline-generated-code.patch | 68 - 0010-uninline-generated-code.patch |
69 | 69 |
70 These patches uninline some functions, resulting in a significant reduction | 70 These patches uninline some functions, resulting in a significant reduction |
71 (somewhere between 500 KB and 1 MB) of binary size. | 71 (somewhere between 500 KB and 1 MB) of binary size. |
72 | 72 |
73 - 0011-libprotobuf_export.patch | 73 - 0012-fixes-for-js-embed-cc.patch |
74 | 74 |
75 During merge with internal branch, the dll export attribute was accidentally | 75 Fix include style for well_known_types_embed.cc (genereated in step 5, see |
76 removed in C++11 mode. | 76 above) and also remove it from .gitignore file as we do not generate it in |
77 | 77 on the fly. |
78 Fixed in https://github.com/google/protobuf/pull/1549 | |
OLD | NEW |