]> git.apps.os.sepia.ceph.com Git - ceph.git/commit
cmake: BuildArrow.cmake uses bundled thrift if system version < 0.17 65970/head
authorCasey Bodley <cbodley@redhat.com>
Wed, 15 Oct 2025 21:08:48 +0000 (17:08 -0400)
committerCasey Bodley <cbodley@redhat.com>
Wed, 15 Oct 2025 21:08:55 +0000 (17:08 -0400)
commit9d92dbb2cb4cdb89982728e56f9fac34b7a77014
treeb3361d8d3a805db6b5d061bf6adae0d7e4e82ea8
parentdd868a9e535b24c2a574bbd64cc136071b62fcc3
cmake: BuildArrow.cmake uses bundled thrift if system version < 0.17

the bump to arrow 17.0.0 broke the ubuntu jammy builds with:

In file included from /usr/include/thrift/transport/TTransport.h:25,
                 from /usr/include/thrift/protocol/TProtocol.h:28,
                 from /usr/include/thrift/TBase.h:24,
                 from /build/ceph-20.3.0-3599-g3d863d32/src/arrow/cpp/src/generated/parquet_types.h:14,
                 from /build/ceph-20.3.0-3599-g3d863d32/src/arrow/cpp/src/generated/parquet_constants.h:10,
                 from /build/ceph-20.3.0-3599-g3d863d32/src/arrow/cpp/src/generated/parquet_constants.cpp:7:
/usr/include/thrift/transport/TTransportException.h:23:10: fatal error: boost/numeric/conversion/cast.hpp: No such file or directory
   23 | #include <boost/numeric/conversion/cast.hpp>
      |          ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
compilation terminated.

when comparing the gcc command line with arrow-15.0.0, the following argument
is no longer present:
> -isystem /build/ceph-20.3.0-3402-gb2db4947/obj-x86_64-linux-gnu/boost/include

arrow 17.0.0 seems to assume that thrift doesn't depend on boost anymore. a
comment in https://github.com/apache/arrow/issues/32266 claims that
> we don't need Boost with system Thrift 0.17.0 or later

but our jammy builds are stuck with libthrift-0.16.0. to reenable jammy builds,
instruct Arrow's cmake to use its bundled thrift dependency if our system thrift
version is < 0.17.0

Signed-off-by: Casey Bodley <cbodley@redhat.com>
cmake/modules/BuildArrow.cmake