21 Commits
Author SHA1 Message Date
Narendra 1998ed3556 GH-51007: [C++] Make uriparser an external dependency (#51244)
### Rationale for this change

The vendored uriparser in `cpp/src/arrow/vendored/uriparser/` is 0.9.3, which is old and misses upstream security fixes. Instead of refreshing the vendored copy, this makes uriparser an external dependency like our other third-party dependencies.

### What changes are included in this PR?

- Add `uriparser` to `ARROW_THIRDPARTY_DEPENDENCIES`
- Add `build_uriparser()` that builds uriparser 1.0.2 with `FetchContent` for `uriparser_SOURCE=BUNDLED` (static; docs, tests, tools and `wchar_t` support are disabled). The built library is bundled into `arrow_bundled_dependencies`.
- Require uriparser 0.9.6 or later for `uriparser_SOURCE=SYSTEM`. All uriparser APIs used by Arrow are available in 0.9.6, so supported platforms such as Ubuntu 22.04 can use their distribution package.
- Add `cmake_modules/FinduriparserAlt.cmake`. It tries uriparser's CMake package configuration first and falls back to pkg-config (`liburiparser.pc`), because Debian and Ubuntu's `liburiparser-dev` provides only the pkg-config file.
- Add `uriparser::uriparser` to `ARROW_STATIC_INSTALL_INTERFACE_LIBS` for `uriparser_SOURCE=SYSTEM`, so that static library users link uriparser.
- meson: Use the system uriparser 0.9.6 or later if available. Otherwise, build uriparser 1.0.2 via `subprojects/uriparser.wrap` with the CMake subproject support.
- Remove `cpp/src/arrow/vendored/uriparser/` and its section in `LICENSE.txt`.
- Packaging: Install uriparser in our Docker images, conda environment, `Brewfile`, vcpkg manifests, MSYS2 setup and Linux packages build environments.
- Packaging: Pass `-Duriparser_SOURCE` in `ci/scripts/cpp_build.sh`.
- Packaging: Add uriparser to the dependency list in `docs/source/developers/cpp/building.rst`.

***NOTICE*** : The floor is 0.9.6 rather than 1.0.2, so supported platforms such as Ubuntu 22.04 can use their distro package and CI does not have to build uriparser from source. 

### Are these changes tested?

All existing tests pass. 

### Are there any user-facing changes?

Now Arrow requires uriparser or builds it . No user facing changes as such because no API changes . 

**This PR contains a "Critical Fix".** It has security fixes that has gone in uriparser. 

**AI Usage**:
- Used for testing <-> building loop. 

* GitHub Issue: #51007

Authored-by: Narendra <naskastark11@gmail.com>
Signed-off-by: Raúl Cumplido <raulcumplido@gmail.com>
2026-10-01 08:54:40 +02:00
Zehua Zou 5b50f94e67 GH-51116: [C++] Update bundled Boost (#51132)
### Rationale for this change

The latest version of boost is 1.92.0. It fixes some bugs in the version used now. See #50978

### What changes are included in this PR?

Update boost.

### Are these changes tested?

Yes.

### Are there any user-facing changes?

Yes.

* GitHub Issue: #51116

Authored-by: Zehua Zou <zehuazou2000@gmail.com>
Signed-off-by: Sutou Kouhei <kou@clear-code.com>
2026-09-08 10:59:59 +09:00
Aaditya Srinivasan 773296de54 GH-50963: [C++] Update bundled bzip2 WrapDB package (#50924)
### Rationale for this change

The bundled bzip2 WrapDB package isn't latest now.

### What changes are included in this PR?

- Update the bundled bzip2 WrapDB package from `1.0.8-1` to `1.0.8-2`.

### Are there any user-facing changes?

No.

* GitHub Issue: #50963

Authored-by: Aaditya Srinivasan <aadityasri03@gmail.com>
Signed-off-by: Sutou Kouhei <kou@clear-code.com>
2026-08-24 16:57:02 +09:00
Aaditya Srinivasan c44eca6892 GH-50779: [C++][Parquet] Replace remaining RapidJSON usage with simdjson (#50781)
### Rationale for this change

This PR continues the simdjson migration by replacing the remaining RapidJSON usage under `cpp/src/parquet` with simdjson and `JsonWriter`. It also updates the Meson build to support simdjson and removes unnecessary RapidJSON dependencies from the Parquet build configuration.

### What changes are included in this PR?

- Replace the remaining RapidJSON parsing logic in `reader_test.cc` with simdjson.
- Replace RapidJSON parsing and serialization in `geospatial/util_json_internal.cc` with simdjson and `JsonWriter`.
- Replace RapidJSON string escaping in `types.cc` with `JsonWriter`.
- Add Meson support for simdjson, including a fallback CMake subproject.
- Link simdjson in the relevant Meson targets.
- Remove unnecessary RapidJSON dependencies from the Parquet Meson and CMake build configuration.
* GitHub Issue: #50779

Authored-by: Aaditya Srinivasan <aadityasri03@gmail.com>
Signed-off-by: Sutou Kouhei <kou@clear-code.com>
2026-08-13 18:12:02 +09:00
tadeja 73742e82ed GH-50065: [Packaging][CI][C++] Drop unused libboost-system-dev (#50066)
### Rationale for this change

`debian-forky-arm64` and `debian-forky-amd64` Packaging Build jobs failing with `Error: Unable to locate package libboost-system-dev`.

### What changes are included in this PR?
Remove `libboost-system-dev` from `debian/control.in`
Remove apt-install line `    libboost-system-dev \` from apt Dockerfiles (debian-bookworm, debian-forky, debian-trixie, ubuntu-jammy, ubuntu-noble, ubuntu-resolute), C++ CI Dockerfiles (debian-13-cpp, debian-experimental-cpp, ubuntu-22.04-cpp, ubuntu-24.04-cpp) and from `cpp/examples/minimal_build/system_dependency.dockerfile`.
Remove unused `[provide]` `boost_system` reference from `cpp/subprojects/boost.wrap`.

### Are these changes tested?
By Packaging CI, jobs should pass.

### Are there any user-facing changes?
No.
* GitHub Issue: #50065

Authored-by: Tadeja Kadunc <tadeja.kadunc@gmail.com>
Signed-off-by: Raúl Cumplido <raulcumplido@gmail.com>
2026-06-02 09:36:29 +02:00
Hyukjin Kwon 6140f7cba9 MINOR: [C++] Fix typo in arrow/cpp/* (#48666)
### Rationale for this change

This PR fixes several typos in `arrow/cpp/*`

### What changes are included in this PR?

This PR proposes to fix a typo in `arrow/cpp/*`

### Are these changes tested?

Manually tested via my browser.

### Are there any user-facing changes?

No, dev-only.

Authored-by: Hyukjin Kwon <gurwls223@apache.org>
Signed-off-by: David Li <li.davidm96@gmail.com>
2025-12-29 19:43:45 +09:00
William Ayd 71859028e3 GH-47921: [C++] Implement substrait option in Meson (#48016)
### Rationale for this change

This implements the substrait option in Meson

### What changes are included in this PR?

Meson configuration changes to allow substrait

### Are these changes tested?

Yes

### Are there any user-facing changes?

No

* GitHub Issue: #47921

Authored-by: Will Ayd <william.ayd@icloud.com>
Signed-off-by: Will Ayd <william.ayd@icloud.com>
2025-11-06 10:15:07 -05:00
William Ayd fb51888180 GH-47833: [C++] Add utf8proc option to Meson configuration (#47834)
### Rationale for this change

This gets us closer to feature parity with CMake, and closer to fulfilling all the needs of a pyarrow build

### What changes are included in this PR?

Added utf8proc as an option to the Meson library

### Are these changes tested?

Yes

### Are there any user-facing changes?

No
* GitHub Issue: #47833

Authored-by: Will Ayd <william.ayd@icloud.com>
Signed-off-by: Sutou Kouhei <kou@clear-code.com>
2025-10-22 14:01:54 +09:00
William Ayd 05e64889fa GH-46410: [C++] Add parquet options to Meson configuration (#46647)
### Rationale for this change

This continues adding functionality to the Meson configuration

### What changes are included in this PR?

This adds the parquet directory to the Meson configuration

### Are these changes tested?

Yes

### Are there any user-facing changes?

No
* GitHub Issue: #46410

Authored-by: Will Ayd <william.ayd@icloud.com>
Signed-off-by: Sutou Kouhei <kou@clear-code.com>
2025-09-12 09:40:42 +09:00
William Ayd 15662e67ba GH-47039: [C++] Bump RapidJSON dependency in Meson configuration (#47041)
### Rationale for this change

The Meson configuration is unusable on gcc 14.2 given issues with the RapidJSON release of 1.1.0 (released in 2016)

### What changes are included in this PR?

Bumps the RapidJSON version to a commit hash that matches what is used in CMake by default

### Are these changes tested?

Yes

### Are there any user-facing changes?

No
* GitHub Issue: #47039

Authored-by: Will Ayd <william.ayd@icloud.com>
Signed-off-by: Sutou Kouhei <kou@clear-code.com>
2025-08-16 06:51:43 +09:00
William Ayd 3c460f7c4e GH-47283: [C++] Fix flight visibility issue in Meson configuration (#47298)
### Rationale for this change

The meson configuration is missing some symbols for flight that appear to come from the testing library. 

### What changes are included in this PR?

Updates to the Meson configuration

### Are these changes tested?

Yes

### Are there any user-facing changes?

No
* GitHub Issue: #47283

Authored-by: Will Ayd <william.ayd@icloud.com>
Signed-off-by: Sutou Kouhei <kou@clear-code.com>
2025-08-12 10:55:59 +09:00
William Ayd e6cef226b7 GH-46827: [C++] Update Meson Configuration for compute shared lib (#46839)
### Rationale for this change

The major refactor of the compute sources in https://github.com/apache/arrow/pull/46261 addressed updates to the CMake configuration but not Meson. This is a follow up to get the Meson builds working again

### What changes are included in this PR?

Meson configuration files are updated to reflect new source structure. gtest has also been bumped to a new WrapDB version, which fixes some undefined behavior that was compounded by updates to the compute test structure

### Are these changes tested?

Yes 

### Are there any user-facing changes?

No
* GitHub Issue: #46827

Authored-by: Will Ayd <william.ayd@icloud.com>
Signed-off-by: Raúl Cumplido <raulcumplido@gmail.com>
2025-06-25 10:38:28 +02:00
William Ayd 1d169cc90f GH-46141: [C++] Add flight directory to Meson configuration (#46142)
### Rationale for this change

Continues building out support for Meson as a build system generator

### What changes are included in this PR?

This adds the flight directory to the Meson configuration

### Are these changes tested?

Locally

### Are there any user-facing changes?

No

* GitHub Issue: #46141

Authored-by: Will Ayd <william.ayd@icloud.com>
Signed-off-by: Sutou Kouhei <kou@clear-code.com>
2025-06-07 08:43:37 +09:00
William Ayd d7119baf15 GH-46679: [C++][Meson] Use WrapDB entry for gflags instead of CMake wrapper (#46680)
### Rationale for this change

By using the wrapdb entry for gflags, we can use a Meson-native solution for wrapping that project without requiring CMake

### What changes are included in this PR?

Switched to using the WrapDB entry for gflags

### Are these changes tested?

Yes

### Are there any user-facing changes?

No
* GitHub Issue: #46679

Authored-by: Will Ayd <william.ayd@icloud.com>
Signed-off-by: Sutou Kouhei <kou@clear-code.com>
2025-06-03 10:22:00 +09:00
William Ayd 87a1ab423d GH-46477: [C++] Use vendored flatbuffers in Meson configuration (#46484)
### Rationale for this change

This makes it easier to submit Arrow as a wrapdb entry, as the external flatbuffers version is difficult to control. Since it isn't used to generate the flatc files contained within the repo, it is better to just stick with the vendored headers

### What changes are included in this PR?

Removed flatbuffers Meson subproject and use internal dependency

### Are these changes tested?

Yes

### Are there any user-facing changes?

No
* GitHub Issue: #46477

Authored-by: Will Ayd <william.ayd@icloud.com>
Signed-off-by: Sutou Kouhei <kou@clear-code.com>
2025-05-28 09:15:17 +09:00
William Ayd 77287ce098 GH-46115: [C++] Implement compression libraries in Meson (#46358)
### Rationale for this change

This continues adding features to the Meson configuration

### What changes are included in this PR?

Compression algorithms are added to the Meson configuration

### Are these changes tested?

Yes

### Are there any user-facing changes?

No
* GitHub Issue: #46115

Authored-by: Will Ayd <william.ayd@icloud.com>
Signed-off-by: Sutou Kouhei <kou@clear-code.com>
2025-05-09 06:49:14 +09:00
William Ayd c727b757cc GH-46215: [C++][Docs] Add README for Meson subprojects directory (#46216)
### Rationale for this change

This clarifies what the subprojects directory does, for developers not familiar with Meson

### What changes are included in this PR?

This adds a README.md file to cpp/subprojects

### Are these changes tested?

N/A

### Are there any user-facing changes?

No
* GitHub Issue: #46215

Authored-by: Will Ayd <william.ayd@icloud.com>
Signed-off-by: Antoine Pitrou <antoine@python.org>
2025-05-07 08:46:20 +02:00
William Ayd 6b64396dfe GH-46092: [C++] Add filesystem related options to Meson (#46101)
### Rationale for this change

This continues adding support for the Meson build system by adding filesystem support

### What changes are included in this PR?

This implements the filesystem directory and adds support for Azure. GCS and S3 are stubbed out but will raise an error when a user attempts to enable them, strictly because they look like larger integrations to get the dependency chain properly configured.

### Are these changes tested?

Locally yes

### Are there any user-facing changes?

No
* GitHub Issue: #46092

Authored-by: Will Ayd <william.ayd@icloud.com>
Signed-off-by: Sutou Kouhei <kou@clear-code.com>
2025-04-15 06:45:24 +09:00
William Ayd 278fa1412c GH-45796: [C++] Add integration directory to Meson configuration (#45797)
### Rationale for this change

This continues to add features to the Meson build configuration

### What changes are included in this PR?

The integration directory has been added

### Are these changes tested?

Yes

### Are there any user-facing changes?

No
* GitHub Issue: #45796

Authored-by: Will Ayd <william.ayd@icloud.com>
Signed-off-by: Will Ayd <william.ayd@icloud.com>
2025-04-10 09:14:52 -04:00
William Ayd aac110d4ef GH-45792: [C++] Add benchmarks to Meson configuration (#45793)
### Rationale for this change

This makes it possible to add benchmarks to the Meson configuration

### What changes are included in this PR?

Benchmarks from the top level configuration are added

### Are these changes tested?

Locally yes. To do so, simply:

```sh
meson setup builddir -Dbenchmarks=true
meson test -C builddir --benchmark 
```

### Are there any user-facing changes?
No
* GitHub Issue: #45792

Authored-by: Will Ayd <william.ayd@icloud.com>
Signed-off-by: Sutou Kouhei <kou@clear-code.com>
2025-03-16 11:13:51 +09:00
William Ayd b9d014d30f GH-45589: [C++] Enable singular test in Meson configuration (#45596)
### Rationale for this change

Adding this singular test helps us make incremental progress on Meson as a build system generator

### What changes are included in this PR?

A single array-test for libarrow is being added

### Are these changes tested?

Yes - see CI

### Are there any user-facing changes?

No - this is only for developers
* GitHub Issue: #45589

Authored-by: Will Ayd <william.ayd@icloud.com>
Signed-off-by: Will Ayd <william.ayd@icloud.com>
2025-03-12 10:46:03 -04:00