Chrome Release Bot (LUCI) 4762b62e7d Publish DEPS for 106.0.5249.13 1 rok temu
..
.github 4762b62e7d Publish DEPS for 106.0.5249.13 1 rok temu
benchmarks 4762b62e7d Publish DEPS for 106.0.5249.13 1 rok temu
cmake 4762b62e7d Publish DEPS for 106.0.5249.13 1 rok temu
conformance 4762b62e7d Publish DEPS for 106.0.5249.13 1 rok temu
csharp 4762b62e7d Publish DEPS for 106.0.5249.13 1 rok temu
docs 4762b62e7d Publish DEPS for 106.0.5249.13 1 rok temu
editors 4762b62e7d Publish DEPS for 106.0.5249.13 1 rok temu
examples 4762b62e7d Publish DEPS for 106.0.5249.13 1 rok temu
java 4762b62e7d Publish DEPS for 106.0.5249.13 1 rok temu
js 4762b62e7d Publish DEPS for 106.0.5249.13 1 rok temu
kokoro 4762b62e7d Publish DEPS for 106.0.5249.13 1 rok temu
m4 4762b62e7d Publish DEPS for 106.0.5249.13 1 rok temu
objectivec 4762b62e7d Publish DEPS for 106.0.5249.13 1 rok temu
patches 4762b62e7d Publish DEPS for 106.0.5249.13 1 rok temu
php 4762b62e7d Publish DEPS for 106.0.5249.13 1 rok temu
protoc-artifacts 4762b62e7d Publish DEPS for 106.0.5249.13 1 rok temu
python 4762b62e7d Publish DEPS for 106.0.5249.13 1 rok temu
ruby 4762b62e7d Publish DEPS for 106.0.5249.13 1 rok temu
src 4762b62e7d Publish DEPS for 106.0.5249.13 1 rok temu
third_party 4762b62e7d Publish DEPS for 106.0.5249.13 1 rok temu
toolchain 4762b62e7d Publish DEPS for 106.0.5249.13 1 rok temu
util 4762b62e7d Publish DEPS for 106.0.5249.13 1 rok temu
.bazelignore 4762b62e7d Publish DEPS for 106.0.5249.13 1 rok temu
.gitignore 4762b62e7d Publish DEPS for 106.0.5249.13 1 rok temu
.gitmodules 4762b62e7d Publish DEPS for 106.0.5249.13 1 rok temu
.readthedocs.yml 4762b62e7d Publish DEPS for 106.0.5249.13 1 rok temu
BUILD 4762b62e7d Publish DEPS for 106.0.5249.13 1 rok temu
BUILD.gn 4762b62e7d Publish DEPS for 106.0.5249.13 1 rok temu
CHANGES.txt 4762b62e7d Publish DEPS for 106.0.5249.13 1 rok temu
CONTRIBUTING.md 4762b62e7d Publish DEPS for 106.0.5249.13 1 rok temu
CONTRIBUTORS.txt 4762b62e7d Publish DEPS for 106.0.5249.13 1 rok temu
DEPS 4762b62e7d Publish DEPS for 106.0.5249.13 1 rok temu
DIR_METADATA 4762b62e7d Publish DEPS for 106.0.5249.13 1 rok temu
LICENSE 4762b62e7d Publish DEPS for 106.0.5249.13 1 rok temu
Makefile.am 4762b62e7d Publish DEPS for 106.0.5249.13 1 rok temu
OWNERS 4762b62e7d Publish DEPS for 106.0.5249.13 1 rok temu
Protobuf-C++.podspec 4762b62e7d Publish DEPS for 106.0.5249.13 1 rok temu
Protobuf.podspec 4762b62e7d Publish DEPS for 106.0.5249.13 1 rok temu
README.chromium 4762b62e7d Publish DEPS for 106.0.5249.13 1 rok temu
README.md 4762b62e7d Publish DEPS for 106.0.5249.13 1 rok temu
SECURITY.md 4762b62e7d Publish DEPS for 106.0.5249.13 1 rok temu
WORKSPACE 4762b62e7d Publish DEPS for 106.0.5249.13 1 rok temu
appveyor.bat 4762b62e7d Publish DEPS for 106.0.5249.13 1 rok temu
appveyor.yml 4762b62e7d Publish DEPS for 106.0.5249.13 1 rok temu
autogen.sh 4762b62e7d Publish DEPS for 106.0.5249.13 1 rok temu
build_files_updated_unittest.sh 4762b62e7d Publish DEPS for 106.0.5249.13 1 rok temu
cc_proto_blacklist_test.bzl 4762b62e7d Publish DEPS for 106.0.5249.13 1 rok temu
compiler_config_setting.bzl 4762b62e7d Publish DEPS for 106.0.5249.13 1 rok temu
composer.json 4762b62e7d Publish DEPS for 106.0.5249.13 1 rok temu
configure.ac 4762b62e7d Publish DEPS for 106.0.5249.13 1 rok temu
fix_permissions.sh 4762b62e7d Publish DEPS for 106.0.5249.13 1 rok temu
gen_chromium_file_lists.py 4762b62e7d Publish DEPS for 106.0.5249.13 1 rok temu
gen_extra_chromium_files.py 4762b62e7d Publish DEPS for 106.0.5249.13 1 rok temu
generate_changelog.py 4762b62e7d Publish DEPS for 106.0.5249.13 1 rok temu
generate_descriptor_proto.sh 4762b62e7d Publish DEPS for 106.0.5249.13 1 rok temu
global.json 4762b62e7d Publish DEPS for 106.0.5249.13 1 rok temu
internal.bzl 4762b62e7d Publish DEPS for 106.0.5249.13 1 rok temu
maven_install.json 4762b62e7d Publish DEPS for 106.0.5249.13 1 rok temu
mirclient.cc 4762b62e7d Publish DEPS for 106.0.5249.13 1 rok temu
mirclient.map 4762b62e7d Publish DEPS for 106.0.5249.13 1 rok temu
post_process_dist.sh 4762b62e7d Publish DEPS for 106.0.5249.13 1 rok temu
proto_library.gni 4762b62e7d Publish DEPS for 106.0.5249.13 1 rok temu
proto_sources.gni 4762b62e7d Publish DEPS for 106.0.5249.13 1 rok temu
protobuf-lite.pc.in 4762b62e7d Publish DEPS for 106.0.5249.13 1 rok temu
protobuf.bzl 4762b62e7d Publish DEPS for 106.0.5249.13 1 rok temu
protobuf.pc.in 4762b62e7d Publish DEPS for 106.0.5249.13 1 rok temu
protobuf_deps.bzl 4762b62e7d Publish DEPS for 106.0.5249.13 1 rok temu
protobuf_release.bzl 4762b62e7d Publish DEPS for 106.0.5249.13 1 rok temu
protobuf_version.bzl 4762b62e7d Publish DEPS for 106.0.5249.13 1 rok temu
tests.sh 4762b62e7d Publish DEPS for 106.0.5249.13 1 rok temu
update_compatibility_version.py 4762b62e7d Publish DEPS for 106.0.5249.13 1 rok temu
update_file_lists.sh 4762b62e7d Publish DEPS for 106.0.5249.13 1 rok temu
update_version.py 4762b62e7d Publish DEPS for 106.0.5249.13 1 rok temu

README.chromium

Name: Protocol Buffers
Short Name: protobuf
URL: https://github.com/google/protobuf
License: BSD
License File: LICENSE
Version: 3.20.0
CPEPrefix: cpe:/a:google:protobuf:3.20.0
Revision: bc799d78f81115940eec953e2937245c70e3e6e4
Security Critical: yes

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

As needed, update defines required by protobuf on various platforms, warnings
generated by compilers, and new dependencies introduced.
3. Add DEPS, DIR_METADATA, and OWNERS.
4. Add mirclient.cc and mirclient.map.
5. Add gen_extra_chromium_files.py and gen_chromium_file_lists.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 descriptor_pb2.py using the script "gen_extra_chromium_files.py" in
the same directory as this file.
8. Generate proto_sources.gni using the script "gen_chromium_file_lists.py".
9. Update this file (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.

Note about vpython:

Some Python scripts end up mixing protoc output from this copy of protobuf with
the google.protobuf module from vpython's protobuf. If Python scripts break due
to the vpython copy of protobuf, you may need to update the version in
//.vpython3. See https://crbug.com/1320047.

Description of the patches:

- 0004-fix-shared-library-exports.patch

This patch 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
- 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.

- 0021-Fix-protobuf-s-library-.gitinore-file.patch

Un-ignores python/google/protobuf/descriptor_pb2.py and
python/google/protobuf/compiler/plugin_pb2.py

- 0022-Allow-deprecated-fields.patch

Allows deprecated fields to be used without extra C++ compiler warnings.

- 0026-remove-sprintf.patch

Imports
https://github.com/protocolbuffers/protobuf/commit/c0fc2e881bc36aafb0bf539bf41889611370f60c
to remove use of sprintf.

- 0027-no-noreturn.patch

Removes an instance of [[noreturn]]. The attribute is correct, but the way
protobuf's GOOGLE_LOG(FATAL) is defined, the compiler can't see this and it
trips -Winvalid-noreturn. See https://github.com/protocolbuffers/protobuf/issues/9817

- 0028-export-internal-metadata.patch

Adds a missing PROTOBUF_EXPORT. See cl/443188236

- 0029-make-initializers-optimizable.patch

Makes the InitProtobufDefaults() static initializer optimizable by Clang when
built with libc++. It patches out the OnShutdownDestroyString call, which we
do not need, and removes the thread-safe initialization. Thread safety is only
needed if a static initializer spawns a thread which then calls
InitProtobufDefaults() without synchronizing with the start of main().
(Anything which happens after main() starts can rely on the initializer
running.)

- 0030-workaround-window-constinit.patch

Disables PROTOBUF_CONSTINIT in generated code in Windows shared library
builds. Protobuf's default instances take pointers to a dllimport variable,
fixed_address_empty_string. This is not constinit on Windows. This is a bug in
protobuf as the default instance was intended to be constant-initialized. But
the components build in Chromium is a developer configuration, so we tolerate
an initializer as long as the build works, until protobuf has a proper fix.

See https://github.com/protocolbuffers/protobuf/issues/10159.

- 0031-workaround-cfi-unrelated-cast.patch

A workaround for Clang's Control Flow Integrity check for casting pointers to
memory that his not yet initialized to be of that type for empty arrays, does
not work, and still fails. This patch removes the workaround and instead
disables cfi-unrelated-cast for the affected methods and simplifies them.

See https://github.com/protocolbuffers/protobuf/issues/10186.
See https://bugs.chromium.org/p/chromium/issues/detail?id=1294200#c26.

- 0032-cxx20.patch

Fixes necessary to build in --std=c++20 mode.

Imports https://critique.corp.google.com/cl/451177197 (a portion of
https://github.com/protocolbuffers/protobuf/commit/6dd8af4ecfa7987bddb309862932886b84f1e4ef
).

- 0033-no-enum-conversion-warn.patch

Avoid hitting the clang error -Wenum-constexpr-conversion by specifying width
of the enum.

Imports https://critique.corp.google.com/cl/466986872.