Skip to content

GH-55165: [C++] Force newer versions of Brotli - #55167

Open
CurtHagenlocher wants to merge 2 commits into
apache:mainfrom
CurtHagenlocher:newer_brotli
Open

CurtHagenlocher wants to merge 2 commits into
apache:mainfrom
CurtHagenlocher:newer_brotli

Conversation

@CurtHagenlocher

@CurtHagenlocher CurtHagenlocher commented Oct 23, 2026 •

Copy link
Copy Markdown
Contributor

Rationale for this change

It seemed like a good time for a change.

What changes are included in this PR?

Newer versions of the Brotli dependency are forced by the build.

Are these changes tested?

Presumably the relevant code paths already have tests.

Are there any user-facing changes?

No.

Was AI used for this PR?

PR code and description written by:

  • Human
  • AI

Reviewed before submission by:

  • Human
  • AI
  • Not reviewed

Copilot AI balanced review requested due to automatic review settings October 23, 2026 23:40
@github-actions

Copy link
Copy Markdown

⚠️ GitHub issue #55165 has been automatically assigned in GitHub to PR creator.

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🟡 Changes recommended

The Windows wheel image revision must also change to prevent cached images from bypassing the Brotli upgrade.

1 open issue
What changed in this PR

This PR updates bundled Brotli versions across Arrow’s C++ build paths, addressing GH-55165.

Changes:

  • Updates the CMake dependency pin to Brotli 1.0.10 and its checksum.
  • Updates the Meson fallback to Brotli 1.1.1 with local build definitions and licensing.
  • Patches vcpkg to use Brotli 1.2.1 with an updated checksum.
File Description
cpp/​thirdparty/​versions.txt Updates the bundled Brotli version and checksum.
cpp/​subprojects/​packagefiles/​google-brotli/​meson.build Adds local Meson build definitions for Brotli.
cpp/​subprojects/​packagefiles/​google-brotli/​LICENSE.build Includes licensing for the Meson build definitions.
cpp/​subprojects/​google-brotli.wrap Updates the source archive and selects the local build overlay.
ci/​vcpkg/​ports.patch Updates the vcpkg Brotli version and checksum.

Review effort: Balanced

Comment thread ci/vcpkg/ports.patch
…image

- Apply meson-fmt to the vendored google-brotli meson.build (whitespace only).
- Bump PYTHON_WHEEL_WINDOWS_IMAGE_REVISION so Windows wheel CI rebuilds its
  cached image with the patched vcpkg brotli 1.2.1 port instead of reusing
  the existing image built with 1.2.0.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Copilot AI balanced review requested due to automatic review settings October 23, 2026 23:51

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🔵 Needs a closer look

Compatibility of the new patch with the inaccessible pinned vcpkg port remains unverified and needs CI or human confirmation.

No open issues 🎉

1 resolved since last review

Review effort: Balanced

@CurtHagenlocher

Copy link
Copy Markdown
Contributor Author

@github-actions crossbow submit wheel-windows-*

@github-actions

Copy link
Copy Markdown

Revision: 747092e

Submitted crossbow builds: ursacomputing/crossbow @ actions-41b08c9f7f

Task Status
wheel-windows-cp311-cp311-amd64 GitHub Actions
wheel-windows-cp312-cp312-amd64 GitHub Actions
wheel-windows-cp313-cp313-amd64 GitHub Actions
wheel-windows-cp314-cp314-amd64 GitHub Actions
wheel-windows-cp314-cp314t-amd64 GitHub Actions
wheel-windows-cp315-cp315-amd64 GitHub Actions
wheel-windows-cp315-cp315t-amd64 GitHub Actions

@github-actions github-actions Bot added awaiting merge Awaiting merge and removed awaiting review Awaiting review labels Oct 24, 2026
magifd2 added a commit to nlink-jp/data-toolbox-mcp that referenced this pull request Oct 25, 2026
CVE-2026-111497 (Brotli decoder out-of-bounds write) affects the Brotli
1.0.9 that Arrow 18 bundles. Apache Arrow ships fixes only in new major
versions — the Brotli update (apache/arrow#55167, unmerged) targets main
— so `pyarrow~=18.0` could never take it. pyarrow is now `>=18.0`; a
rebuild installs 26.0.0 today (not fixed yet either) and the first
fixed major on the rebuild after it ships. The manifest advertises the
same constraint.

The other packages keep `~=`: pandas 3, polars 2, DuckDB 2 and Pillow
13 change the API LLM-written code uses. With pyarrow 26.0.0, pandas
2.3.3, polars 1.44.2 and DuckDB 1.5.6, `pip check` is clean and
parquet / DataFrame / DuckDB round-trips match pyarrow 18.1.0. ADR-0007
is amended and records what this release does not fix: DuckDB's vendored
Brotli 1.1.0 (upstream fix unmerged) and Pillow's bundled libbrotlidec
(WOFF2 only, not reached here).

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants