* Press Ctrl-C to Stop * * dev-db/mariadb-10.6.8-r1:10.6::gentoo * /usr/lib64/libthrift.so * * Package 'dev-libs/thrift-0.16.0-r1' NOT merged due to file collisions. ------------------------------------------------------------------- This is an unstable amd64 chroot image at a tinderbox (==build bot) name: 17.1_desktop_gnome-j4-20220726-071335 ------------------------------------------------------------------- gcc-config -l: [1] x86_64-pc-linux-gnu-9.3.1 [2] x86_64-pc-linux-gnu-12.1.1 * clang/llvm (if any): clang version 14.0.6 Target: x86_64-pc-linux-gnu Thread model: posix InstalledDir: /usr/lib/llvm/14/bin /usr/lib/llvm/14 14.0.6 Python 3.10.5 Available Ruby profiles: [1] ruby27 (with Rubygems) [2] ruby31 (with Rubygems) * Available Rust versions: [1] rust-bin-1.62.1 [2] rust-1.62.1 * The following VMs are available for generation-2: 1) Eclipse Temurin JDK 11.0.15_p10 [openjdk-bin-11] *) Eclipse Temurin JDK 17.0.3_p7 [openjdk-bin-17] 3) Eclipse Temurin JDK 8.332_p09 [openjdk-bin-8] Available Java Virtual Machines: [1] openjdk-bin-8 [2] openjdk-bin-11 [3] openjdk-bin-17 system-vm The Glorious Glasgow Haskell Compilation System, version 9.0.2 php cli: HEAD of ::gentoo commit 6bc582a94adaae141a29c709ae21e148ac5ae801 Author: Repository mirror & CI <repomirrorci@gentoo.org> Date: Thu Jul 28 20:16:41 2022 +0000 2022-07-28 20:16:40 UTC emerge -qpvO dev-libs/thrift [ebuild N ] dev-libs/thrift-0.16.0-r1 USE="ssl -libevent -lua -test"
Created attachment 795302 [details] emerge-info.txt
Created attachment 795305 [details] CMakeCache.txt
Created attachment 795308 [details] dev-libs:thrift-0.16.0-r1:20220728-211006.log
Created attachment 795311 [details] emerge-history.txt.bz2
Created attachment 795314 [details] etc.portage.tar.bz2
Created attachment 795317 [details] logs.tar.bz2
Still there * Detected file collision(s): * * /usr/lib64/libthrift.so * * Searching all installed packages for file collisions... * * Press Ctrl-C to Stop * * dev-db/mariadb-10.6.14:10.6::gentoo * /usr/lib64/libthrift.so * * Package 'dev-libs/thrift-0.16.0-r2' NOT merged due to file collisions. In this instance, dev-libs/thrift was pulled by dev-libs/apache-arrow-15.0.1 (parquet ? dev-libs/thrift) I guess I do not really need parquet right this minute but this is a default useflag for apache-arrow.
And the parquet useflag is default in apache-arrow because it is also the default for its dependent dev-python/pyarrow.
From mysql/storage/columnstore/columnstore/utils/thrift/README This is Apache Thrift 0.9.1 Actually, this is just the bits and pieces of the API necessary to work with InfiniDB. It is provided as a convenience to source builders so that they don't have to find and install Thrift ------------ So, we should check if we can build using dev-libs/thrift and how.
In spite of what it says, there is no option to use a system thrift. In fact the CMakeLists.txt rule to build rpm in mysql/storage/columnstore explictly list it as a conflict with the thrift rpm: APPEND_FOR_CPACK(CPACK_RPM_columnstore-engine_PACKAGE_CONFLICTS " thrift MariaDB-columnstore-platform MariaDB-columnstore-libs") I am experimenting with renaming the vendored library with a prefix. The other option being to patch to disable the building of the vendored copy and depending on the system package. Both appear fairly easy to pull off - at least on paper.
Created attachment 912196 [details, diff] patch to rename shipped libthrift to libmdbthrift The attached patch rename the shipped thrift library shipped in mariadb 10.6.17 (I have not tried other version at this stage). The renaming makes the collision go away. I also tried to unvendor libthrift, but mariadb ships an old version of thrift and it fails to build with current stable thrift because the headers name are not the same (and who knows about the functions names).