Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(405)

Side by Side Diff: third_party/protobuf/README.chromium

Issue 2599263002: third_party/protobuf: Update to HEAD (f52e188fe4) (Closed)
Patch Set: Created 3 years, 12 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
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
Peter Kasting 2016/12/23 10:51:42 Not for this patch: I'm pretty sure we can set up
jbriance 2016/12/23 12:15:35 Acknowledged.
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 src/google/protobuf/compiler/js/well_known_types_embed.c c
Peter Kasting 2016/12/23 10:51:42 80 columns
jbriance 2016/12/23 12:15:35 Done in patch set 2.
76 removed in C++11 mode. 76 (genereated in step 5, see above) and also remote it from .gitignore file as w e
Peter Kasting 2016/12/23 10:51:43 Nit: remote -> remove
jbriance 2016/12/23 12:15:35 Done in patch set 2.
77 77 do not generate it in on the fly.
78 Fixed in https://github.com/google/protobuf/pull/1549
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698