Commits


Neal Richardson authored and Wes McKinney committed 96217193fc7
ARROW-8222: [C++] Use bcp to make a slim boost for bundled build This patch switches our bundled boost ep to use a slimmer version of boost, which was built with the script added at `cpp/build_support/trim-boost.sh`. It uses the official boostorg big tarball as a fallback URL if for some reason ours is unavailable (as we've seen with other ep's, sometimes the download hosts are subject to rate limiting or other downtime, so having redundancy would more generally be good). The resulting tarball is 10mb, much less than 113mb of the full boost but larger than the 800k I suggested in the ticket. This is because in order to build regex and filesystem, we need `config build boost_install headers`, which add some weight. Boost.Build also seems to require `log`, and `predef` is needed by log apparently. In addition to slimming the boost tarball, this patch also refines the cmake logic that determines when boost is required. Due to recent-ish efforts to reduce usage of boost, we only need boost for tests and Gandiva, and for Parquet but only on gcc < 4.9. When building thrift_ep, we also need boost. By narrowing the condition involving Parquet to just gcc < 4.9, we are able to remove boost entirely from the R macOS and Windows packages. Outstanding questions/to-dos that I'm aware of: * [x] Put the boost bundle somewhere official. I plan to put it at https://dl.bintray.com/ursalabs/arrow-boost/ but am open to suggestion if someone has a better idea. * [x] ~~Add a crossbow job to build the boost bundle: to update the boost version or change what's included in the bundle, edit cpp/build_support/trim-boost.sh and run an on-demand build via PR comment.~~ On further reflection, crossbow isn't appropriate because it would mean that anyone could edit the script and overwrite the bundle that gets pulled into all source builds. Instead, I added a script that one can run locally, just requiring a bintray user and token in the ursalabs organization (available to any committer on request). * [ ] Something with [namespacing](https://issues.apache.org/jira/browse/ARROW-4286)? I'm not sure how much of a concern this is since Arrow itself doesn't really require boost anymore. Closes #6734 from nealrichardson/bcp Lead-authored-by: Neal Richardson <neal.p.richardson@gmail.com> Co-authored-by: François Saint-Jacques <fsaintjacques@gmail.com> Co-authored-by: Sutou Kouhei <kou@clear-code.com> Signed-off-by: Wes McKinney <wesm+git@apache.org>