From bc4b1cacbd417b02f60f534f9b87cd9ea98b0545 Mon Sep 17 00:00:00 2001 From: Eric Anderson Date: Thu, 30 Jun 2022 11:18:49 -0700 Subject: [PATCH] Bump protobuf to 3.21.1 (#9311) Fixes #9264 --- COMPILING.md | 4 ++-- buildscripts/kokoro/windows32.bat | 4 ++-- buildscripts/kokoro/windows64.bat | 4 ++-- buildscripts/make_dependencies.bat | 16 ++++++++++------ buildscripts/make_dependencies.sh | 5 ++++- examples/android/clientcache/app/build.gradle | 2 +- examples/android/helloworld/app/build.gradle | 2 +- examples/android/routeguide/app/build.gradle | 2 +- examples/android/strictmode/app/build.gradle | 2 +- examples/build.gradle | 2 +- examples/example-alts/build.gradle | 2 +- examples/example-gauth/build.gradle | 2 +- examples/example-gauth/pom.xml | 2 +- examples/example-hostname/build.gradle | 2 +- examples/example-hostname/pom.xml | 2 +- examples/example-jwt-auth/build.gradle | 2 +- examples/example-jwt-auth/pom.xml | 4 ++-- examples/example-orca/build.gradle | 2 +- examples/example-tls/build.gradle | 2 +- examples/example-tls/pom.xml | 2 +- examples/example-xds/build.gradle | 2 +- examples/pom.xml | 4 ++-- gcp-observability/build.gradle | 1 + gradle/libs.versions.toml | 2 +- repositories.bzl | 12 ++++++------ 25 files changed, 47 insertions(+), 39 deletions(-) diff --git a/COMPILING.md b/COMPILING.md index 22db193ae5e..1423ec88d78 100644 --- a/COMPILING.md +++ b/COMPILING.md @@ -44,11 +44,11 @@ This section is only necessary if you are making changes to the code 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 5a87b779da3..6d248d524ff 100644 --- a/buildscripts/kokoro/windows32.bat +++ b/buildscripts/kokoro/windows32.bat @@ -26,8 +26,8 @@ cd "%WORKSPACE%" 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 eaa1fcf845e..0080c9a9c58 100644 --- a/buildscripts/kokoro/windows64.bat +++ b/buildscripts/kokoro/windows64.bat @@ -25,8 +25,8 @@ cd "%WORKSPACE%" 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 18c6086adab..30e8dd548a1 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 @@ set PATH=%PATH%;%cd%\%CMAKE_NAME%\bin 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 dbc4ad8bb73..8f0033e8a75 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 @@ if [ -f ${INSTALL_DIR}/bin/protoc ]; then 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 cee4db9ee16..e41cf541150 100644 --- a/examples/android/clientcache/app/build.gradle +++ b/examples/android/clientcache/app/build.gradle @@ -32,7 +32,7 @@ android { } 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.48.0-SNAPSHOT' // CURRENT_GRPC_VERSION } diff --git a/examples/android/helloworld/app/build.gradle b/examples/android/helloworld/app/build.gradle index dfb5c653721..b3736a3b0ee 100644 --- a/examples/android/helloworld/app/build.gradle +++ b/examples/android/helloworld/app/build.gradle @@ -30,7 +30,7 @@ android { } 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.48.0-SNAPSHOT' // CURRENT_GRPC_VERSION } diff --git a/examples/android/routeguide/app/build.gradle b/examples/android/routeguide/app/build.gradle index ebf19eddb1f..50c86bbc982 100644 --- a/examples/android/routeguide/app/build.gradle +++ b/examples/android/routeguide/app/build.gradle @@ -30,7 +30,7 @@ android { } 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.48.0-SNAPSHOT' // CURRENT_GRPC_VERSION } diff --git a/examples/android/strictmode/app/build.gradle b/examples/android/strictmode/app/build.gradle index a3c8c64927b..fbff3dc0860 100644 --- a/examples/android/strictmode/app/build.gradle +++ b/examples/android/strictmode/app/build.gradle @@ -31,7 +31,7 @@ android { } 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.48.0-SNAPSHOT' // CURRENT_GRPC_VERSION } diff --git a/examples/build.gradle b/examples/build.gradle index 6b184909071..8e97236173c 100644 --- a/examples/build.gradle +++ b/examples/build.gradle @@ -23,7 +23,7 @@ targetCompatibility = 1.8 // 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.48.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 d5b53a3e0b6..1021b4ff6b4 100644 --- a/examples/example-alts/build.gradle +++ b/examples/example-alts/build.gradle @@ -24,7 +24,7 @@ targetCompatibility = 1.8 // 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.48.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 14b8efb9175..6737d2b8765 100644 --- a/examples/example-gauth/build.gradle +++ b/examples/example-gauth/build.gradle @@ -24,7 +24,7 @@ targetCompatibility = 1.8 // 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.48.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 035d64f1de3..f4c1c4ddb36 100644 --- a/examples/example-gauth/pom.xml +++ b/examples/example-gauth/pom.xml @@ -13,7 +13,7 @@ UTF-8 1.48.0-SNAPSHOT - 3.19.2 + 3.21.1 1.7 1.7 diff --git a/examples/example-hostname/build.gradle b/examples/example-hostname/build.gradle index 99805f8cc16..16f5451afd7 100644 --- a/examples/example-hostname/build.gradle +++ b/examples/example-hostname/build.gradle @@ -22,7 +22,7 @@ targetCompatibility = 1.8 // 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.48.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 063af8acc04..f2fd04da011 100644 --- a/examples/example-hostname/pom.xml +++ b/examples/example-hostname/pom.xml @@ -13,7 +13,7 @@ UTF-8 1.48.0-SNAPSHOT - 3.19.2 + 3.21.1 1.7 1.7 diff --git a/examples/example-jwt-auth/build.gradle b/examples/example-jwt-auth/build.gradle index 64e4f3684c2..286f2602875 100644 --- a/examples/example-jwt-auth/build.gradle +++ b/examples/example-jwt-auth/build.gradle @@ -23,7 +23,7 @@ targetCompatibility = 1.8 // 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.48.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 98f6b0c219a..06923d08dfb 100644 --- a/examples/example-jwt-auth/pom.xml +++ b/examples/example-jwt-auth/pom.xml @@ -14,8 +14,8 @@ UTF-8 1.48.0-SNAPSHOT - 3.19.2 - 3.19.2 + 3.21.1 + 3.21.1 1.7 1.7 diff --git a/examples/example-orca/build.gradle b/examples/example-orca/build.gradle index badcf95011d..311e1e43a15 100644 --- a/examples/example-orca/build.gradle +++ b/examples/example-orca/build.gradle @@ -18,7 +18,7 @@ sourceCompatibility = 1.8 targetCompatibility = 1.8 def grpcVersion = '1.48.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 ea0f307b2f5..f6806e03ad8 100644 --- a/examples/example-tls/build.gradle +++ b/examples/example-tls/build.gradle @@ -24,7 +24,7 @@ targetCompatibility = 1.8 // 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.48.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 b994b08ccef..dc02902d6a1 100644 --- a/examples/example-tls/pom.xml +++ b/examples/example-tls/pom.xml @@ -13,7 +13,7 @@ UTF-8 1.48.0-SNAPSHOT - 3.19.2 + 3.21.1 2.0.53.Final 1.7 diff --git a/examples/example-xds/build.gradle b/examples/example-xds/build.gradle index e82c703a4d4..1f139fe6e28 100644 --- a/examples/example-xds/build.gradle +++ b/examples/example-xds/build.gradle @@ -24,7 +24,7 @@ targetCompatibility = 1.8 // updating the version in our release process. def grpcVersion = '1.48.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 12dcb2c612f..d84733c12f0 100644 --- a/examples/pom.xml +++ b/examples/pom.xml @@ -13,8 +13,8 @@ UTF-8 1.48.0-SNAPSHOT - 3.19.2 - 3.19.2 + 3.21.1 + 3.21.1 1.7 1.7 diff --git a/gcp-observability/build.gradle b/gcp-observability/build.gradle index 264a4a6e71b..feaf0afa964 100644 --- a/gcp-observability/build.gradle +++ b/gcp-observability/build.gradle @@ -35,6 +35,7 @@ dependencies { 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 12b63c99666..9eb81b84cc9 100644 --- a/gradle/libs.versions.toml +++ b/gradle/libs.versions.toml @@ -8,7 +8,7 @@ guava = "31.1-android" 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 316f54d8af9..e778ea14a0e 100644 --- a/repositories.bzl +++ b/repositories.bzl @@ -150,18 +150,18 @@ def com_google_protobuf(): # 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():