Gentoo Websites Logo
Go to: Gentoo Home Documentation Forums Lists Bugs Planet Store Wiki Get Gentoo!
Bug 861770 - dev-libs/thrift-0.16.0-r1 - file collision with dev-db/mariadb-10.6.8-r1
Summary: dev-libs/thrift-0.16.0-r1 - file collision with dev-db/mariadb-10.6.8-r1
Status: CONFIRMED
Alias: None
Product: Gentoo Linux
Classification: Unclassified
Component: Current packages (show other bugs)
Hardware: All Linux
: Normal normal
Assignee: Patrick McLean
URL:
Whiteboard:
Keywords:
Depends on:
Blocks:
 
Reported: 2022-07-28 21:39 UTC by Toralf Förster
Modified: 2024-11-26 20:03 UTC (History)
2 users (show)

See Also:
Package list:
Runtime testing required: ---


Attachments
emerge-info.txt (emerge-info.txt,19.56 KB, text/plain)
2022-07-28 21:39 UTC, Toralf Förster
Details
CMakeCache.txt (CMakeCache.txt,32.24 KB, text/plain)
2022-07-28 21:39 UTC, Toralf Förster
Details
dev-libs:thrift-0.16.0-r1:20220728-211006.log (dev-libs:thrift-0.16.0-r1:20220728-211006.log,114.55 KB, text/plain)
2022-07-28 21:39 UTC, Toralf Förster
Details
emerge-history.txt.bz2 (emerge-history.txt.bz2,53.65 KB, application/x-bzip)
2022-07-28 21:39 UTC, Toralf Förster
Details
etc.portage.tar.bz2 (etc.portage.tar.bz2,25.56 KB, application/x-bzip)
2022-07-28 21:39 UTC, Toralf Förster
Details
logs.tar.bz2 (logs.tar.bz2,13.09 KB, application/x-bzip)
2022-07-28 21:39 UTC, Toralf Förster
Details
patch to rename shipped libthrift to libmdbthrift (mariadb-10.6.17-vendored_thrift.patch,1.76 KB, patch)
2024-11-26 20:03 UTC, François Bissey
Details | Diff

Note You need to log in before you can comment on or make changes to this bug.
Description Toralf Förster gentoo-dev 2022-07-28 21:39:32 UTC
 * 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"
Comment 1 Toralf Förster gentoo-dev 2022-07-28 21:39:33 UTC
Created attachment 795302 [details]
emerge-info.txt
Comment 2 Toralf Förster gentoo-dev 2022-07-28 21:39:34 UTC
Created attachment 795305 [details]
CMakeCache.txt
Comment 3 Toralf Förster gentoo-dev 2022-07-28 21:39:36 UTC
Created attachment 795308 [details]
dev-libs:thrift-0.16.0-r1:20220728-211006.log
Comment 4 Toralf Förster gentoo-dev 2022-07-28 21:39:37 UTC
Created attachment 795311 [details]
emerge-history.txt.bz2
Comment 5 Toralf Förster gentoo-dev 2022-07-28 21:39:38 UTC
Created attachment 795314 [details]
etc.portage.tar.bz2
Comment 6 Toralf Förster gentoo-dev 2022-07-28 21:39:39 UTC
Created attachment 795317 [details]
logs.tar.bz2
Comment 7 François Bissey 2024-03-15 04:28:27 UTC
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.
Comment 8 François Bissey 2024-03-15 04:31:49 UTC
And the parquet useflag is default in apache-arrow because it is also the default for its dependent dev-python/pyarrow.
Comment 9 François Bissey 2024-11-25 01:10:43 UTC
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.
Comment 10 François Bissey 2024-11-25 01:58:25 UTC
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.
Comment 11 François Bissey 2024-11-26 20:03:00 UTC
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).