Skip to content

build(deps): Align protobuf and related dependencies with the gRPC v1.81.1 bump - #160

Merged
mc-nv merged 2 commits into
mainfrom
mchornyi/TRI-1608/cinightly-fix-broken-build
Jul 23, 2026
Merged

build(deps): Align protobuf and related dependencies with the gRPC v1.81.1 bump#160
mc-nv merged 2 commits into
mainfrom
mchornyi/TRI-1608/cinightly-fix-broken-build

Conversation

@mc-nv

@mc-nv mc-nv commented Jul 17, 2026

Copy link
Copy Markdown
Contributor

What does the PR do?

Fixes the nightly build against protobuf v33 (gRPC v1.81.1 third_party bump): declare protobuf::libprotobuf as a PUBLIC link dependency of proto-library and grpc-service-library. With protobuf v33 the include directories and link flags are no longer inherited transitively, so consumers of the generated model-config proto targets failed to compile/link.

Checklist

  • PR title reflects the change and is of format <commit_type>: <Title>
  • Changes are described in the pull request.
  • Related issues are referenced.
  • Populated github labels field
  • Added test plan and verified test passes.
  • Verified that the PR passes existing CI.
  • Verified copyright is correct on all changed files.
  • Added succinct git squash message before merging ref.
  • All template sections are filled out.
  • Optional: Additional screenshots for behavior/output changes with before/after.

Related PRs:

Where should the reviewer start?

  • protobuf/CMakeLists.txtPUBLIC protobuf::libprotobuf on both generated targets

Test plan:

Nightly build pipeline on internal GitLab CI.

  • CI Pipeline ID: 58489960

Caveats:

None.

Background

The gRPC v1.81.1 / protobuf v33 update in triton-inference-server/third_party#76 broke the nightly build across the Triton repos; this PR chain repairs it.

Related Issues: (use one of the action keywords Closes / Fixes / Resolves / Relates to)

  • Resolves: TRI-1608
CI (internal): [#58489960](http://tritonserver.local/ci/pipelines/58489960)

protobuf v33 (bundled with gRPC v1.81.1) headers include absl headers
directly (e.g. coded_stream.h -> absl/base/optimization.h). The
proto-library and grpc-service-library object targets compiled with
only ${Protobuf_INCLUDE_DIRS} on the include path and failed with
'absl/base/optimization.h: No such file or directory'. Linking
protobuf::libprotobuf propagates the absl include directories through
the imported target's usage requirements.
@mc-nv
mc-nv force-pushed the mchornyi/TRI-1608/cinightly-fix-broken-build branch from f1c86ce to e0a4115 Compare July 18, 2026 02:16
@mc-nv
mc-nv marked this pull request as ready for review July 18, 2026 17:31
@mc-nv
mc-nv requested review from mattwittwer and pskiran1 July 22, 2026 15:11
@Vinya567

Copy link
Copy Markdown

@greptileai

@greptile-apps

greptile-apps Bot commented Jul 22, 2026

Copy link
Copy Markdown

Greptile Summary

This PR fixes a protobuf v33 / gRPC v1.81.1 build regression by promoting protobuf::libprotobuf from an implicit transitive dependency to an explicit PUBLIC link dependency on the generated proto targets. Without this, consumers of these targets fail to compile and link because protobuf v33 no longer propagates include directories and link flags transitively.

  • proto-library and grpc-service-library both receive PUBLIC protobuf::libprotobuf, correctly propagating protobuf headers and link flags to downstream consumers.
  • grpc-health-library (lines 198–202) was not updated with the same fix, leaving its consumers exposed to the same include/link failure when protobuf v33 is in use.

Confidence Score: 3/5

The fix is incomplete: grpc-health-library still lacks the PUBLIC protobuf::libprotobuf dependency that was added to the other two targets, so consumers of the health service target will continue to fail to compile/link against protobuf v33.

The PR correctly addresses the root cause for proto-library and grpc-service-library, but applies the same change inconsistently — grpc-health-library compiles the same category of protobuf-generated code yet is left without the fix. Any downstream target that links grpc-health-library will still break on protobuf v33.

protobuf/CMakeLists.txt lines 198–202 — the grpc-health-library target needs PUBLIC protobuf::libprotobuf added to its target_link_libraries block.

Important Files Changed

Filename Overview
protobuf/CMakeLists.txt Adds PUBLIC protobuf::libprotobuf to proto-library and grpc-service-library for protobuf v33 compatibility, but grpc-health-library is left without the same fix, leaving its consumers still broken

Flowchart

%%{init: {'theme': 'neutral'}}%%
flowchart TD
    A[Consumer Target] -->|links| B[proto-library]
    A -->|links| C[grpc-service-library]
    A -->|links| D[grpc-health-library]
    B -->|PUBLIC - FIXED| E[protobuf::libprotobuf]
    C -->|PUBLIC - FIXED| E
    D -. missing PUBLIC .-> E
    E -->|include dirs + link flags| F[Consumer gets protobuf headers & libprotobuf]
    D -->|NO PROPAGATION| G[Consumer missing protobuf headers & libprotobuf]
    style D fill:#ffcccc,stroke:#cc0000
    style G fill:#ffcccc,stroke:#cc0000
    style B fill:#ccffcc,stroke:#009900
    style C fill:#ccffcc,stroke:#009900
Loading

Comments Outside Diff (1)

  1. protobuf/CMakeLists.txt, line 198-202 (link)

    P1 grpc-health-library missing the same protobuf v33 fix

    grpc-health-library compiles health.grpc.pb.cc, which also includes protobuf-generated headers and links against libprotobuf. With protobuf v33's change to non-transitive include/link propagation, consumers of grpc-health-library will hit the same include-directory and link failures that this PR fixes for proto-library and grpc-service-library. Adding PUBLIC protobuf::libprotobuf here is required for consistency.

Reviews (1): Last reviewed commit: "chore: Bump copyright year on protobuf/C..." | Re-trigger Greptile

@mc-nv
mc-nv merged commit a4ff44d into main Jul 23, 2026
2 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Development

Successfully merging this pull request may close these issues.

3 participants