From edb3e0869706fa0d058f8530f7b563af9310eec3 Mon Sep 17 00:00:00 2001 From: Maksym Pavlenko Date: Thu, 8 Jan 2026 15:40:54 -0800 Subject: [PATCH] Remove protobuf Signed-off-by: Maksym Pavlenko --- .devcontainer/setup.sh | 5 --- .github/workflows/ci.yml | 8 ---- BUILDING.md | 2 - script/setup/install-dev-tools | 4 -- script/setup/install-protobuf | 71 ---------------------------------- 5 files changed, 90 deletions(-) delete mode 100755 script/setup/install-protobuf diff --git a/.devcontainer/setup.sh b/.devcontainer/setup.sh index 4446f39c8d..b9c26c177b 100644 --- a/.devcontainer/setup.sh +++ b/.devcontainer/setup.sh @@ -24,10 +24,5 @@ script/setup/install-failpoint-binaries script/setup/install-gotestsum script/setup/install-teststat -script/setup/install-protobuf \ - && mkdir -p /go/src/usr/local/bin /go/src/usr/local/include \ - && mv /usr/local/bin/protoc /go/src/usr/local/bin/protoc \ - && mv /usr/local/include/google /go/src/usr/local/include/google - make binaries GO_BUILD_FLAGS="-mod=vendor" sudo -E PATH=$PATH make install diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 18ec0b0b9d..fa9898a48e 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -94,14 +94,6 @@ jobs: echo "GOPATH=${{ github.workspace }}" >> $GITHUB_ENV echo "${{ github.workspace }}/bin" >> $GITHUB_PATH - - name: Install protobuf - run: | - sudo -E PATH=$PATH script/setup/install-protobuf - sudo chmod +x /usr/local/bin/protoc - sudo chmod og+rx /usr/local/include/google /usr/local/include/google/protobuf /usr/local/include/google/protobuf/compiler - sudo chmod -R og+r /usr/local/include/google/protobuf/ - protoc --version - - run: script/setup/install-dev-tools - run: make proto-fmt - run: make check-protos check-api-descriptors diff --git a/BUILDING.md b/BUILDING.md index ff7edde52e..bd1220bea2 100644 --- a/BUILDING.md +++ b/BUILDING.md @@ -43,8 +43,6 @@ You need `git` to checkout the source code: git clone https://github.com/containerd/containerd ``` -For proper results, install the `protoc` release into `/usr/local` on your build system. When generating source code from `.proto` files, containerd may rely on some external protocol buffer files. These external dependencies should be added to the `/usr/local/include` directory. To install the appropriate version of `protoc` and download any necessary external protocol buffer files on a Linux host, run the install script located at `script/setup/install-protobuf`. - To enable optional [Btrfs](https://en.wikipedia.org/wiki/Btrfs) snapshotter, you should have the headers from the Linux kernel 4.12 or later. The dependency on the kernel headers only affects users building containerd from source. Users on older kernels may opt to not compile the btrfs support (see `BUILDTAGS=no_btrfs` below), diff --git a/script/setup/install-dev-tools b/script/setup/install-dev-tools index 097d8cc9f7..96c77e3395 100755 --- a/script/setup/install-dev-tools +++ b/script/setup/install-dev-tools @@ -19,11 +19,7 @@ # set -eu -o pipefail -# install `protobuild` and other commands -go install github.com/containerd/protobuild@v0.3.0 go install github.com/containerd/protobuild/cmd/go-fix-acronym@v0.3.0 go install github.com/cpuguy83/go-md2man/v2@v2.0.7 go install github.com/golangci/golangci-lint/v2/cmd/golangci-lint@v2.1.5 -go install google.golang.org/protobuf/cmd/protoc-gen-go@v1.28.1 -go install google.golang.org/grpc/cmd/protoc-gen-go-grpc@v1.2.0 go install github.com/containerd/ttrpc/cmd/protoc-gen-go-ttrpc@v1.2.5 diff --git a/script/setup/install-protobuf b/script/setup/install-protobuf deleted file mode 100755 index 3c98e38d2e..0000000000 --- a/script/setup/install-protobuf +++ /dev/null @@ -1,71 +0,0 @@ -#!/usr/bin/env bash - -# Copyright The containerd Authors. - -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at - -# http://www.apache.org/licenses/LICENSE-2.0 - -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. - - -# -# Downloads and installs protobuf -# -set -eu -o pipefail - -PROTOBUF_VERSION=3.20.1 -PROTOBUF_DIR=$(mktemp -d) - -# Use `go tool dist list` for the full list of targets -TARGET="$(go env GOOS)-$(go env GOARCH)" -TARGET_ORIG=$TARGET - -# Fix up OS/ARCH to get proper download link for https://github.com/protocolbuffers/protobuf/releases - -# Darwin -TARGET=${TARGET/darwin-amd64/osx-x86_64} -TARGET=${TARGET/darwin-arm64/osx-aarch_64} - -# Windows -TARGET=${TARGET/windows-amd64/win64} -TARGET=${TARGET/windows-386/win32} - -# Linux -TARGET=${TARGET/linux-386/linux-x86_32} -TARGET=${TARGET/linux-amd64/linux-x86_64} -TARGET=${TARGET/linux-arm64/linux-aarch_64} -TARGET=${TARGET/linux-ppc64le/linux-ppcle_64} - -if [[ $TARGET != $TARGET_ORIG ]] -then - wget -O "$PROTOBUF_DIR/protobuf" "https://github.com/protocolbuffers/protobuf/releases/download/v$PROTOBUF_VERSION/protoc-$PROTOBUF_VERSION-$TARGET.zip" - unzip "$PROTOBUF_DIR/protobuf" -d /usr/local -else - # Build from source - wget -O "$PROTOBUF_DIR/protobuf" "https://github.com/protocolbuffers/protobuf/releases/download/v$PROTOBUF_VERSION/protobuf-cpp-$PROTOBUF_VERSION.zip" - unzip "$PROTOBUF_DIR/protobuf" -d /usr/src/protobuf - cd "/usr/src/protobuf/protobuf-$PROTOBUF_VERSION" - ./autogen.sh - ./configure --disable-shared - make - make check - make install - ldconfig -fi - -rm -rf "$PROTOBUF_DIR" - -# Download status.proto. grpc repos' one seems copied from -# https://github.com/googleapis/googleapis/blob/master/google/rpc/status.proto, -# but we use grpc's since the repos has tags/releases. -mkdir -p /usr/local/include/google/rpc -curl \ - -L https://raw.githubusercontent.com/grpc/grpc/v1.45.2/src/proto/grpc/status/status.proto \ - -o /usr/local/include/google/rpc/status.proto