Bump protobuf to 3.21.1 (#9311)
Fixes #9264
diff --git a/COMPILING.md b/COMPILING.md
index 22db193..1423ec8 100644
--- a/COMPILING.md
+++ b/COMPILING.md
@@ -44,11 +44,11 @@
generation. Most users only need to use `skipCodegen=true` as discussed above.
### Build Protobuf
-The codegen plugin is C++ code and requires protobuf 3.19.2 or later.
+The codegen plugin is C++ code and requires protobuf 3.21.1 or later.
For Linux, Mac and MinGW:
```
-$ PROTOBUF_VERSION=3.19.2
+$ PROTOBUF_VERSION=3.21.1
$ curl -LO https://github.com/protocolbuffers/protobuf/releases/download/v$PROTOBUF_VERSION/protobuf-all-$PROTOBUF_VERSION.tar.gz
$ tar xzf protobuf-all-$PROTOBUF_VERSION.tar.gz
$ cd protobuf-$PROTOBUF_VERSION
diff --git a/buildscripts/kokoro/windows32.bat b/buildscripts/kokoro/windows32.bat
index 5a87b77..6d248d5 100644
--- a/buildscripts/kokoro/windows32.bat
+++ b/buildscripts/kokoro/windows32.bat
@@ -26,8 +26,8 @@
SET TARGET_ARCH=x86_32
SET FAIL_ON_WARNINGS=true
-SET VC_PROTOBUF_LIBS=%ESCWORKSPACE%\\grpc-java-helper32\\protobuf-%PROTOBUF_VER%\\cmake\\build\\Release
-SET VC_PROTOBUF_INCLUDE=%ESCWORKSPACE%\\grpc-java-helper32\\protobuf-%PROTOBUF_VER%\\cmake\\build\\include
+SET VC_PROTOBUF_LIBS=%ESCWORKSPACE%\\grpc-java-helper32\\protobuf-%PROTOBUF_VER%\\build\\Release
+SET VC_PROTOBUF_INCLUDE=%ESCWORKSPACE%\\grpc-java-helper32\\protobuf-%PROTOBUF_VER%\\build\\include
SET GRADLE_FLAGS=-PtargetArch=%TARGET_ARCH% -PfailOnWarnings=%FAIL_ON_WARNINGS% -PvcProtobufLibs=%VC_PROTOBUF_LIBS% -PvcProtobufInclude=%VC_PROTOBUF_INCLUDE% -PskipAndroid=true
cmd.exe /C "%WORKSPACE%\gradlew.bat %GRADLE_FLAGS% build"
diff --git a/buildscripts/kokoro/windows64.bat b/buildscripts/kokoro/windows64.bat
index eaa1fcf..0080c9a 100644
--- a/buildscripts/kokoro/windows64.bat
+++ b/buildscripts/kokoro/windows64.bat
@@ -25,8 +25,8 @@
SET TARGET_ARCH=x86_64
SET FAIL_ON_WARNINGS=true
-SET VC_PROTOBUF_LIBS=%ESCWORKSPACE%\\grpc-java-helper64\\protobuf-%PROTOBUF_VER%\\cmake\\build\\Release
-SET VC_PROTOBUF_INCLUDE=%ESCWORKSPACE%\\grpc-java-helper64\\protobuf-%PROTOBUF_VER%\\cmake\\build\\include
+SET VC_PROTOBUF_LIBS=%ESCWORKSPACE%\\grpc-java-helper64\\protobuf-%PROTOBUF_VER%\\build\\Release
+SET VC_PROTOBUF_INCLUDE=%ESCWORKSPACE%\\grpc-java-helper64\\protobuf-%PROTOBUF_VER%\\build\\include
SET GRADLE_FLAGS=-PtargetArch=%TARGET_ARCH% -PfailOnWarnings=%FAIL_ON_WARNINGS% -PvcProtobufLibs=%VC_PROTOBUF_LIBS% -PvcProtobufInclude=%VC_PROTOBUF_INCLUDE% -PskipAndroid=true
@rem make sure no daemons have any files open
diff --git a/buildscripts/make_dependencies.bat b/buildscripts/make_dependencies.bat
index 18c6086..30e8dd5 100644
--- a/buildscripts/make_dependencies.bat
+++ b/buildscripts/make_dependencies.bat
@@ -1,12 +1,14 @@
-set PROTOBUF_VER=3.19.2
+set PROTOBUF_VER=21.1
+@rem Workaround https://github.com/protocolbuffers/protobuf/issues/10172
+set PROTOBUF_VER_ISSUE_10172=3.%PROTOBUF_VER%
set CMAKE_NAME=cmake-3.3.2-win32-x86
-if not exist "protobuf-%PROTOBUF_VER%\cmake\build\Release\" (
+if not exist "protobuf-%PROTOBUF_VER%\build\Release\" (
call :installProto || exit /b 1
)
echo Compile gRPC-Java with something like:
-echo -PtargetArch=x86_32 -PvcProtobufLibs=%cd%\protobuf-%PROTOBUF_VER%\cmake\build\Release -PvcProtobufInclude=%cd%\protobuf-%PROTOBUF_VER%\cmake\build\include
+echo -PtargetArch=x86_32 -PvcProtobufLibs=%cd%\protobuf-%PROTOBUF_VER%\build\Release -PvcProtobufInclude=%cd%\protobuf-%PROTOBUF_VER%\build\include
goto :eof
@@ -23,10 +25,12 @@
powershell -command "$ErrorActionPreference = 'stop'; & { [Net.ServicePointManager]::SecurityProtocol = [Net.SecurityProtocolType]::Tls12 ; iwr https://github.com/google/protobuf/archive/v%PROTOBUF_VER%.zip -OutFile protobuf.zip }" || exit /b 1
powershell -command "$ErrorActionPreference = 'stop'; & { Add-Type -AssemblyName System.IO.Compression.FileSystem; [System.IO.Compression.ZipFile]::ExtractToDirectory('protobuf.zip', '.') }" || exit /b 1
del protobuf.zip
-pushd protobuf-%PROTOBUF_VER%\cmake
-mkdir build
-cd build
+rename protobuf-%PROTOBUF_VER_ISSUE_10172% protobuf-%PROTOBUF_VER%
+mkdir protobuf-%PROTOBUF_VER%\build
+pushd protobuf-%PROTOBUF_VER%\build
+@rem Workaround https://github.com/protocolbuffers/protobuf/issues/10174
+powershell -command "(Get-Content ..\cmake\extract_includes.bat.in) -replace '\.\.\\', '' | Out-File -encoding ascii ..\cmake\extract_includes.bat.in"
@rem cmake does not detect x86_64 from the vcvars64.bat variables.
@rem If vcvars64.bat has set PLATFORM to X64, then inform cmake to use the Win64 version of VS
if "%PLATFORM%" == "X64" (
diff --git a/buildscripts/make_dependencies.sh b/buildscripts/make_dependencies.sh
index dbc4ad8..8f0033e 100755
--- a/buildscripts/make_dependencies.sh
+++ b/buildscripts/make_dependencies.sh
@@ -3,7 +3,9 @@
# Build protoc
set -evux -o pipefail
-PROTOBUF_VERSION=3.19.2
+PROTOBUF_VERSION=21.1
+# https://github.com/protocolbuffers/protobuf/issues/10172
+PROTOBUF_VERSION_ISSUE_10172=3.$PROTOBUF_VERSION
# ARCH is x86_64 bit unless otherwise specified.
ARCH="${ARCH:-x86_64}"
@@ -28,6 +30,7 @@
else
if [[ ! -d "$DOWNLOAD_DIR"/protobuf-"${PROTOBUF_VERSION}" ]]; then
curl -Ls https://github.com/google/protobuf/releases/download/v${PROTOBUF_VERSION}/protobuf-all-${PROTOBUF_VERSION}.tar.gz | tar xz -C $DOWNLOAD_DIR
+ mv "$DOWNLOAD_DIR/protobuf-${PROTOBUF_VERSION_ISSUE_10172}" "$DOWNLOAD_DIR/protobuf-${PROTOBUF_VERSION}"
fi
pushd $DOWNLOAD_DIR/protobuf-${PROTOBUF_VERSION}
# install here so we don't need sudo
diff --git a/examples/android/clientcache/app/build.gradle b/examples/android/clientcache/app/build.gradle
index d664b7b..6f0d108 100644
--- a/examples/android/clientcache/app/build.gradle
+++ b/examples/android/clientcache/app/build.gradle
@@ -32,7 +32,7 @@
}
protobuf {
- protoc { artifact = 'com.google.protobuf:protoc:3.19.2' }
+ protoc { artifact = 'com.google.protobuf:protoc:3.21.1' }
plugins {
grpc { artifact = 'io.grpc:protoc-gen-grpc-java:1.49.0-SNAPSHOT' // CURRENT_GRPC_VERSION
}
diff --git a/examples/android/helloworld/app/build.gradle b/examples/android/helloworld/app/build.gradle
index feb6788..5a38cff 100644
--- a/examples/android/helloworld/app/build.gradle
+++ b/examples/android/helloworld/app/build.gradle
@@ -30,7 +30,7 @@
}
protobuf {
- protoc { artifact = 'com.google.protobuf:protoc:3.19.2' }
+ protoc { artifact = 'com.google.protobuf:protoc:3.21.1' }
plugins {
grpc { artifact = 'io.grpc:protoc-gen-grpc-java:1.49.0-SNAPSHOT' // CURRENT_GRPC_VERSION
}
diff --git a/examples/android/routeguide/app/build.gradle b/examples/android/routeguide/app/build.gradle
index 0c8ea2a..19c8d7a 100644
--- a/examples/android/routeguide/app/build.gradle
+++ b/examples/android/routeguide/app/build.gradle
@@ -30,7 +30,7 @@
}
protobuf {
- protoc { artifact = 'com.google.protobuf:protoc:3.19.2' }
+ protoc { artifact = 'com.google.protobuf:protoc:3.21.1' }
plugins {
grpc { artifact = 'io.grpc:protoc-gen-grpc-java:1.49.0-SNAPSHOT' // CURRENT_GRPC_VERSION
}
diff --git a/examples/android/strictmode/app/build.gradle b/examples/android/strictmode/app/build.gradle
index 1899904..3f6f2d0 100644
--- a/examples/android/strictmode/app/build.gradle
+++ b/examples/android/strictmode/app/build.gradle
@@ -31,7 +31,7 @@
}
protobuf {
- protoc { artifact = 'com.google.protobuf:protoc:3.19.2' }
+ protoc { artifact = 'com.google.protobuf:protoc:3.21.1' }
plugins {
grpc { artifact = 'io.grpc:protoc-gen-grpc-java:1.49.0-SNAPSHOT' // CURRENT_GRPC_VERSION
}
diff --git a/examples/build.gradle b/examples/build.gradle
index 8be51c3..4b02ae1 100644
--- a/examples/build.gradle
+++ b/examples/build.gradle
@@ -23,7 +23,7 @@
// Feel free to delete the comment at the next line. It is just for safely
// updating the version in our release process.
def grpcVersion = '1.49.0-SNAPSHOT' // CURRENT_GRPC_VERSION
-def protobufVersion = '3.19.2'
+def protobufVersion = '3.21.1'
def protocVersion = protobufVersion
dependencies {
diff --git a/examples/example-alts/build.gradle b/examples/example-alts/build.gradle
index a9d4036..0f22d8a 100644
--- a/examples/example-alts/build.gradle
+++ b/examples/example-alts/build.gradle
@@ -24,7 +24,7 @@
// Feel free to delete the comment at the next line. It is just for safely
// updating the version in our release process.
def grpcVersion = '1.49.0-SNAPSHOT' // CURRENT_GRPC_VERSION
-def protocVersion = '3.19.2'
+def protocVersion = '3.21.1'
dependencies {
// grpc-alts transitively depends on grpc-netty-shaded, grpc-protobuf, and grpc-stub
diff --git a/examples/example-gauth/build.gradle b/examples/example-gauth/build.gradle
index 992136a..ed0a085 100644
--- a/examples/example-gauth/build.gradle
+++ b/examples/example-gauth/build.gradle
@@ -24,7 +24,7 @@
// Feel free to delete the comment at the next line. It is just for safely
// updating the version in our release process.
def grpcVersion = '1.49.0-SNAPSHOT' // CURRENT_GRPC_VERSION
-def protobufVersion = '3.19.2'
+def protobufVersion = '3.21.1'
def protocVersion = protobufVersion
diff --git a/examples/example-gauth/pom.xml b/examples/example-gauth/pom.xml
index 76fa1b2..79d2dec 100644
--- a/examples/example-gauth/pom.xml
+++ b/examples/example-gauth/pom.xml
@@ -13,7 +13,7 @@
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<grpc.version>1.49.0-SNAPSHOT</grpc.version><!-- CURRENT_GRPC_VERSION -->
- <protobuf.version>3.19.2</protobuf.version>
+ <protobuf.version>3.21.1</protobuf.version>
<!-- required for jdk9 -->
<maven.compiler.source>1.7</maven.compiler.source>
<maven.compiler.target>1.7</maven.compiler.target>
diff --git a/examples/example-hostname/build.gradle b/examples/example-hostname/build.gradle
index a5e933f..ec212f2 100644
--- a/examples/example-hostname/build.gradle
+++ b/examples/example-hostname/build.gradle
@@ -22,7 +22,7 @@
// Feel free to delete the comment at the next line. It is just for safely
// updating the version in our release process.
def grpcVersion = '1.49.0-SNAPSHOT' // CURRENT_GRPC_VERSION
-def protobufVersion = '3.19.2'
+def protobufVersion = '3.21.1'
dependencies {
implementation "io.grpc:grpc-protobuf:${grpcVersion}"
diff --git a/examples/example-hostname/pom.xml b/examples/example-hostname/pom.xml
index 9eaa9c8..5ac4cfd 100644
--- a/examples/example-hostname/pom.xml
+++ b/examples/example-hostname/pom.xml
@@ -13,7 +13,7 @@
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<grpc.version>1.49.0-SNAPSHOT</grpc.version><!-- CURRENT_GRPC_VERSION -->
- <protoc.version>3.19.2</protoc.version>
+ <protoc.version>3.21.1</protoc.version>
<!-- required for jdk9 -->
<maven.compiler.source>1.7</maven.compiler.source>
<maven.compiler.target>1.7</maven.compiler.target>
diff --git a/examples/example-jwt-auth/build.gradle b/examples/example-jwt-auth/build.gradle
index 89808e5..924d8da 100644
--- a/examples/example-jwt-auth/build.gradle
+++ b/examples/example-jwt-auth/build.gradle
@@ -23,7 +23,7 @@
// Feel free to delete the comment at the next line. It is just for safely
// updating the version in our release process.
def grpcVersion = '1.49.0-SNAPSHOT' // CURRENT_GRPC_VERSION
-def protobufVersion = '3.19.2'
+def protobufVersion = '3.21.1'
def protocVersion = protobufVersion
dependencies {
diff --git a/examples/example-jwt-auth/pom.xml b/examples/example-jwt-auth/pom.xml
index 47eedd5..9e4d78b 100644
--- a/examples/example-jwt-auth/pom.xml
+++ b/examples/example-jwt-auth/pom.xml
@@ -14,8 +14,8 @@
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<grpc.version>1.49.0-SNAPSHOT</grpc.version><!-- CURRENT_GRPC_VERSION -->
- <protobuf.version>3.19.2</protobuf.version>
- <protoc.version>3.19.2</protoc.version>
+ <protobuf.version>3.21.1</protobuf.version>
+ <protoc.version>3.21.1</protoc.version>
<!-- required for jdk9 -->
<maven.compiler.source>1.7</maven.compiler.source>
<maven.compiler.target>1.7</maven.compiler.target>
diff --git a/examples/example-orca/build.gradle b/examples/example-orca/build.gradle
index 648b35d..ad53634 100644
--- a/examples/example-orca/build.gradle
+++ b/examples/example-orca/build.gradle
@@ -18,7 +18,7 @@
targetCompatibility = 1.8
def grpcVersion = '1.49.0-SNAPSHOT' // CURRENT_GRPC_VERSION
-def protocVersion = '3.19.2'
+def protocVersion = '3.21.1'
dependencies {
implementation "io.grpc:grpc-protobuf:${grpcVersion}"
diff --git a/examples/example-tls/build.gradle b/examples/example-tls/build.gradle
index d7293af..62329b2 100644
--- a/examples/example-tls/build.gradle
+++ b/examples/example-tls/build.gradle
@@ -24,7 +24,7 @@
// Feel free to delete the comment at the next line. It is just for safely
// updating the version in our release process.
def grpcVersion = '1.49.0-SNAPSHOT' // CURRENT_GRPC_VERSION
-def protocVersion = '3.19.2'
+def protocVersion = '3.21.1'
dependencies {
implementation "io.grpc:grpc-protobuf:${grpcVersion}"
diff --git a/examples/example-tls/pom.xml b/examples/example-tls/pom.xml
index ecd0f3e..2557cd5 100644
--- a/examples/example-tls/pom.xml
+++ b/examples/example-tls/pom.xml
@@ -13,7 +13,7 @@
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<grpc.version>1.49.0-SNAPSHOT</grpc.version><!-- CURRENT_GRPC_VERSION -->
- <protoc.version>3.19.2</protoc.version>
+ <protoc.version>3.21.1</protoc.version>
<netty.tcnative.version>2.0.53.Final</netty.tcnative.version>
<!-- required for jdk9 -->
<maven.compiler.source>1.7</maven.compiler.source>
diff --git a/examples/example-xds/build.gradle b/examples/example-xds/build.gradle
index 764d244..851937a 100644
--- a/examples/example-xds/build.gradle
+++ b/examples/example-xds/build.gradle
@@ -24,7 +24,7 @@
// updating the version in our release process.
def grpcVersion = '1.49.0-SNAPSHOT' // CURRENT_GRPC_VERSION
def nettyTcNativeVersion = '2.0.31.Final'
-def protocVersion = '3.19.2'
+def protocVersion = '3.21.1'
dependencies {
implementation "io.grpc:grpc-protobuf:${grpcVersion}"
diff --git a/examples/pom.xml b/examples/pom.xml
index 3c7d28f..386b4bd 100644
--- a/examples/pom.xml
+++ b/examples/pom.xml
@@ -13,8 +13,8 @@
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<grpc.version>1.49.0-SNAPSHOT</grpc.version><!-- CURRENT_GRPC_VERSION -->
- <protobuf.version>3.19.2</protobuf.version>
- <protoc.version>3.19.2</protoc.version>
+ <protobuf.version>3.21.1</protobuf.version>
+ <protoc.version>3.21.1</protoc.version>
<!-- required for jdk9 -->
<maven.compiler.source>1.7</maven.compiler.source>
<maven.compiler.target>1.7</maven.compiler.target>
diff --git a/gcp-observability/build.gradle b/gcp-observability/build.gradle
index 264a4a6..feaf0af 100644
--- a/gcp-observability/build.gradle
+++ b/gcp-observability/build.gradle
@@ -35,6 +35,7 @@
libraries.perfmark.api,
libraries.opencensus.contrib.grpc.metrics,
libraries.gson,
+ libraries.protobuf.java.util,
('com.google.guava:guava:31.1-jre'),
('com.google.auth:google-auth-library-credentials:1.4.0'),
('org.checkerframework:checker-qual:3.20.0'),
diff --git a/gradle/libs.versions.toml b/gradle/libs.versions.toml
index 12b63c9..9eb81b8 100644
--- a/gradle/libs.versions.toml
+++ b/gradle/libs.versions.toml
@@ -8,7 +8,7 @@
netty = '4.1.77.Final'
nettytcnative = '2.0.53.Final'
opencensus = "0.31.0"
-protobuf = "3.19.2"
+protobuf = "3.21.1"
[libraries]
android-annotations = "com.google.android:annotations:4.1.1.4"
diff --git a/repositories.bzl b/repositories.bzl
index 316f54d..e778ea1 100644
--- a/repositories.bzl
+++ b/repositories.bzl
@@ -150,18 +150,18 @@
# This statement defines the @com_google_protobuf repo.
http_archive(
name = "com_google_protobuf",
- sha256 = "9ceef0daf7e8be16cd99ac759271eb08021b53b1c7b6edd399953a76390234cd",
- strip_prefix = "protobuf-3.19.2",
- urls = ["https://github.com/protocolbuffers/protobuf/archive/v3.19.2.zip"],
+ sha256 = "2d9084d3dd13b86ca2e811d2331f780eb86f6d7cb02b405426e3c80dcbfabf25",
+ strip_prefix = "protobuf-3.21.1",
+ urls = ["https://github.com/protocolbuffers/protobuf/archive/v3.21.1.zip"],
)
def com_google_protobuf_javalite():
# java_lite_proto_library rules implicitly depend on @com_google_protobuf_javalite
http_archive(
name = "com_google_protobuf_javalite",
- sha256 = "9ceef0daf7e8be16cd99ac759271eb08021b53b1c7b6edd399953a76390234cd",
- strip_prefix = "protobuf-3.19.2",
- urls = ["https://github.com/protocolbuffers/protobuf/archive/v3.19.2.zip"],
+ sha256 = "2d9084d3dd13b86ca2e811d2331f780eb86f6d7cb02b405426e3c80dcbfabf25",
+ strip_prefix = "protobuf-3.21.1",
+ urls = ["https://github.com/protocolbuffers/protobuf/archive/v3.21.1.zip"],
)
def io_grpc_grpc_proto():