### 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>
### 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>
### 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>
### 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>
### 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>
### 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>
### 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>
### 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>
### 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>
### 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>
### 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>
### 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>
### 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>
### 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>
### 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>
### 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>
### 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>
### 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>
### 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>
### 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>
### 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>