From 6dfebdbce40e4286b5edd7a2cca7264ea8836edf Mon Sep 17 00:00:00 2001 From: huangzhaobo Date: Fri, 23 Feb 2024 01:09:46 +0800 Subject: [PATCH] HADOOP-19065. Update Protocol Buffers installation to 3.21.12 (#6526) Instructions and docker script for installing protobuf updated from 3.7.1 to 3.21.12 Contributed by huangzhaobo --- BUILDING.txt | 29 +++++++++---------- dev-support/docker/Dockerfile | 2 +- dev-support/docker/Dockerfile_aarch64 | 2 +- dev-support/docker/Dockerfile_centos_7 | 2 +- dev-support/docker/Dockerfile_centos_8 | 2 +- dev-support/docker/Dockerfile_debian_10 | 2 +- .../docker/pkg-resolver/install-protobuf.sh | 9 +++--- 7 files changed, 24 insertions(+), 24 deletions(-) diff --git a/BUILDING.txt b/BUILDING.txt index 77561c5546..da58434b1d 100644 --- a/BUILDING.txt +++ b/BUILDING.txt @@ -7,7 +7,7 @@ Requirements: * JDK 1.8 * Maven 3.3 or later * Boost 1.72 (if compiling native code) -* Protocol Buffers 3.7.1 (if compiling native code) +* Protocol Buffers 3.21.12 (if compiling native code) * CMake 3.19 or newer (if compiling native code) * Zlib devel (if compiling native code) * Cyrus SASL devel (if compiling native code) @@ -74,10 +74,10 @@ Refer to dev-support/docker/Dockerfile): $ ./bootstrap $ make -j$(nproc) $ sudo make install -* Protocol Buffers 3.7.1 (required to build native code) - $ curl -L -s -S https://github.com/protocolbuffers/protobuf/releases/download/v3.7.1/protobuf-java-3.7.1.tar.gz -o protobuf-3.7.1.tar.gz - $ mkdir protobuf-3.7-src - $ tar xzf protobuf-3.7.1.tar.gz --strip-components 1 -C protobuf-3.7-src && cd protobuf-3.7-src +* Protocol Buffers 3.21.12 (required to build native code) + $ curl -L https://github.com/protocolbuffers/protobuf/archive/refs/tags/v3.21.12.tar.gz > protobuf-3.21.12.tar.gz + $ tar -zxvf protobuf-3.21.12.tar.gz && cd protobuf-3.21.12 + $ ./autogen.sh $ ./configure $ make -j$(nproc) $ sudo make install @@ -433,10 +433,10 @@ Installing required dependencies for clean install of macOS 10.14: * Install native libraries, only openssl is required to compile native code, you may optionally install zlib, lz4, etc. $ brew install openssl -* Protocol Buffers 3.7.1 (required to compile native code) - $ wget https://github.com/protocolbuffers/protobuf/releases/download/v3.7.1/protobuf-java-3.7.1.tar.gz - $ mkdir -p protobuf-3.7 && tar zxvf protobuf-java-3.7.1.tar.gz --strip-components 1 -C protobuf-3.7 - $ cd protobuf-3.7 +* Protocol Buffers 3.21.12 (required to compile native code) + $ curl -L https://github.com/protocolbuffers/protobuf/archive/refs/tags/v3.21.12.tar.gz > protobuf-3.21.12.tar.gz + $ tar -zxvf protobuf-3.21.12.tar.gz && cd protobuf-3.21.12 + $ ./autogen.sh $ ./configure $ make $ make check @@ -472,11 +472,10 @@ Building on CentOS 8 * Install python2 for building documentation. $ sudo dnf install python2 -* Install Protocol Buffers v3.7.1. - $ git clone https://github.com/protocolbuffers/protobuf - $ cd protobuf - $ git checkout v3.7.1 - $ autoreconf -i +* Install Protocol Buffers v3.21.12. + $ curl -L https://github.com/protocolbuffers/protobuf/archive/refs/tags/v3.21.12.tar.gz > protobuf-3.21.12.tar.gz + $ tar -zxvf protobuf-3.21.12.tar.gz && cd protobuf-3.21.12 + $ ./autogen.sh $ ./configure --prefix=/usr/local $ make $ sudo make install @@ -531,7 +530,7 @@ Requirements: * JDK 1.8 * Maven 3.0 or later (maven.apache.org) * Boost 1.72 (boost.org) -* Protocol Buffers 3.7.1 (https://github.com/protocolbuffers/protobuf/releases) +* Protocol Buffers 3.21.12 (https://github.com/protocolbuffers/protobuf/tags) * CMake 3.19 or newer (cmake.org) * Visual Studio 2019 (visualstudio.com) * Windows SDK 8.1 (optional, if building CPU rate control for the container executor. Get this from diff --git a/dev-support/docker/Dockerfile b/dev-support/docker/Dockerfile index fac364bbd4..3b71e622a5 100644 --- a/dev-support/docker/Dockerfile +++ b/dev-support/docker/Dockerfile @@ -66,7 +66,7 @@ ENV JAVA_HOME /usr/lib/jvm/java-8-openjdk-amd64 ENV SPOTBUGS_HOME /opt/spotbugs ####### -# Set env vars for Google Protobuf 3.7.1 +# Set env vars for Google Protobuf 3.21.12 ####### ENV PROTOBUF_HOME /opt/protobuf ENV PATH "${PATH}:/opt/protobuf/bin" diff --git a/dev-support/docker/Dockerfile_aarch64 b/dev-support/docker/Dockerfile_aarch64 index 14a5378012..9941c7dd61 100644 --- a/dev-support/docker/Dockerfile_aarch64 +++ b/dev-support/docker/Dockerfile_aarch64 @@ -66,7 +66,7 @@ ENV JAVA_HOME /usr/lib/jvm/java-8-openjdk-arm64 ENV SPOTBUGS_HOME /opt/spotbugs ####### -# Set env vars for Google Protobuf 3.7.1 +# Set env vars for Google Protobuf 3.21.12 ####### ENV PROTOBUF_HOME /opt/protobuf ENV PATH "${PATH}:/opt/protobuf/bin" diff --git a/dev-support/docker/Dockerfile_centos_7 b/dev-support/docker/Dockerfile_centos_7 index ccb445be26..ff947637a2 100644 --- a/dev-support/docker/Dockerfile_centos_7 +++ b/dev-support/docker/Dockerfile_centos_7 @@ -76,7 +76,7 @@ ENV JAVA_HOME /usr/lib/jvm/java-1.8.0 ENV SPOTBUGS_HOME /opt/spotbugs ####### -# Set env vars for Google Protobuf +# Set env vars for Google Protobuf 3.21.12 ####### ENV PROTOBUF_HOME /opt/protobuf ENV PATH "${PATH}:/opt/protobuf/bin" diff --git a/dev-support/docker/Dockerfile_centos_8 b/dev-support/docker/Dockerfile_centos_8 index 8f3b008f7b..ee0c8e88f7 100644 --- a/dev-support/docker/Dockerfile_centos_8 +++ b/dev-support/docker/Dockerfile_centos_8 @@ -101,7 +101,7 @@ ENV JAVA_HOME /usr/lib/jvm/java-1.8.0 ENV SPOTBUGS_HOME /opt/spotbugs ####### -# Set env vars for Google Protobuf +# Set env vars for Google Protobuf 3.21.12 ####### ENV PROTOBUF_HOME /opt/protobuf ENV PATH "${PATH}:/opt/protobuf/bin" diff --git a/dev-support/docker/Dockerfile_debian_10 b/dev-support/docker/Dockerfile_debian_10 index ec3de11035..71446b27f6 100644 --- a/dev-support/docker/Dockerfile_debian_10 +++ b/dev-support/docker/Dockerfile_debian_10 @@ -66,7 +66,7 @@ ENV JAVA_HOME /usr/lib/jvm/java-11-openjdk-amd64 ENV SPOTBUGS_HOME /opt/spotbugs ####### -# Set env vars for Google Protobuf 3.7.1 +# Set env vars for Google Protobuf 3.21.12 ####### ENV PROTOBUF_HOME /opt/protobuf ENV PATH "${PATH}:/opt/protobuf/bin" diff --git a/dev-support/docker/pkg-resolver/install-protobuf.sh b/dev-support/docker/pkg-resolver/install-protobuf.sh index 7303b40482..f8319f6ace 100644 --- a/dev-support/docker/pkg-resolver/install-protobuf.sh +++ b/dev-support/docker/pkg-resolver/install-protobuf.sh @@ -27,25 +27,26 @@ if [ $? -eq 1 ]; then exit 1 fi -default_version="3.7.1" +default_version="3.21.12" version_to_install=$default_version if [ -n "$2" ]; then version_to_install="$2" fi -if [ "$version_to_install" != "3.7.1" ]; then +if [ "$version_to_install" != "3.21.12" ]; then echo "WARN: Don't know how to install version $version_to_install, installing the default version $default_version instead" version_to_install=$default_version fi -if [ "$version_to_install" == "3.7.1" ]; then +if [ "$version_to_install" == "3.21.12" ]; then # hadolint ignore=DL3003 mkdir -p /opt/protobuf-src && curl -L -s -S \ - https://github.com/protocolbuffers/protobuf/releases/download/v3.7.1/protobuf-java-3.7.1.tar.gz \ + https://github.com/protocolbuffers/protobuf/archive/refs/tags/v3.21.12.tar.gz \ -o /opt/protobuf.tar.gz && tar xzf /opt/protobuf.tar.gz --strip-components 1 -C /opt/protobuf-src && cd /opt/protobuf-src && + ./autogen.sh && ./configure --prefix=/opt/protobuf && make "-j$(nproc)" && make install &&