With the update to 15.0.1, vfrnav fails to build with: /usr/bin/ld: /usr/lib64/libgdal.so: undefined reference to `arrow::KeyValueMetadata::Contains(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) const' /usr/bin/ld: /usr/lib64/libgdal.so: undefined reference to `arrow::KeyValueMetadata::Get(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) const' See https://koschei.fedoraproject.org/package/vfrnav It has also broken many other builds: https://koschei.fedoraproject.org/affected-by/libarrow?epoch1=0&version1=15.0.0&release1=3.fc41&epoch2=0&version2=15.0.1&release2=1.fc41&collection=f41 Reproducible: Always
Looking just at the main library, it looks like upstream changed some string references to string_view without considering that this would break ABI: $ fedabipkgdiff --from fc40 libarrow-15.0.1-1.fc41.x86_64.rpm Comparing the ABI of binaries between libarrow-15.0.0-2.fc40.x86_64.rpm and libarrow-15.0.1-1.fc41.x86_64.rpm: ================ changes of 'libarrow.so.1500.0.0'=============== Functions changes summary: 6 Removed, 0 Changed (11 filtered out), 6 Added functions Variables changes summary: 0 Removed, 0 Changed, 0 Added variable 6 Removed functions: [D] 'method bool arrow::KeyValueMetadata::Contains(const std::string&) const' {_ZNK5arrow16KeyValueMetadata8ContainsERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE} [D] 'method arrow::Status arrow::KeyValueMetadata::Delete(const std::string&)' {_ZN5arrow16KeyValueMetadata6DeleteERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE} [D] 'method int arrow::KeyValueMetadata::FindKey(const std::string&) const' {_ZNK5arrow16KeyValueMetadata7FindKeyERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE} [D] 'method arrow::Result<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > arrow::KeyValueMetadata::Get(const std::string&) const' {_ZNK5arrow16KeyValueMetadata3GetERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE} [D] 'method arrow::Status arrow::KeyValueMetadata::Set(const std::string&, const std::string&)' {_ZN5arrow16KeyValueMetadata3SetERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES8_} [D] 'function arrow::Status arrow::compute::internal::FSBFilterExec(arrow::compute::KernelContext*, const arrow::compute::ExecSpan&, arrow::compute::ExecResult*)' {_ZN5arrow7compute8internal13FSBFilterExecEPNS0_13KernelContextERKNS0_8ExecSpanEPNS0_10ExecResultE} 6 Added functions: [A] 'method bool arrow::KeyValueMetadata::Contains(std::string_view) const' {_ZNK5arrow16KeyValueMetadata8ContainsESt17basic_string_viewIcSt11char_traitsIcEE} [A] 'method arrow::Status arrow::KeyValueMetadata::Delete(std::string_view)' {_ZN5arrow16KeyValueMetadata6DeleteESt17basic_string_viewIcSt11char_traitsIcEE} [A] 'method int arrow::KeyValueMetadata::FindKey(std::string_view) const' {_ZNK5arrow16KeyValueMetadata7FindKeyESt17basic_string_viewIcSt11char_traitsIcEE} [A] 'method arrow::Result<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > arrow::KeyValueMetadata::Get(std::string_view) const' {_ZNK5arrow16KeyValueMetadata3GetB5cxx11ESt17basic_string_viewIcSt11char_traitsIcEE} [A] 'method arrow::Status arrow::KeyValueMetadata::Set(std::string, std::string)' {_ZN5arrow16KeyValueMetadata3SetENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES6_} [A] 'function arrow::Status arrow::compute::internal::PrimitiveTakeExec(arrow::compute::KernelContext*, const arrow::compute::ExecSpan&, arrow::compute::ExecResult*)' {_ZN5arrow7compute8internal17PrimitiveTakeExecEPNS0_13KernelContextERKNS0_8ExecSpanEPNS0_10ExecResultE} ================ end of changes of 'libarrow.so.1500.0.0'=============== Most or all of this is due to https://github.com/apache/arrow/commit/91be098b56021b1f9569986b038bd46c3ed53701.
I went ahead and reported this upstream in https://github.com/apache/arrow/issues/40604.
This is now affecting F40 due to the update to 15.0.2 in https://bodhi.fedoraproject.org/updates/FEDORA-2024-e075b0f5cf and the buildroot override https://bodhi.fedoraproject.org/overrides/libarrow-15.0.2-1.fc40.
FEDORA-2024-ab6fe10b51 (libarrow-15.0.2-2.fc41) has been submitted as an update to Fedora 41. https://bodhi.fedoraproject.org/updates/FEDORA-2024-ab6fe10b51
FEDORA-2024-ab6fe10b51 (libarrow-15.0.2-2.fc41) has been pushed to the Fedora 41 stable repository. If problem still persists, please make note of it in this bug report.
digikam build failed with libarrow 15.0.2-2.fc41 https://koji.fedoraproject.org/koji/taskinfo?taskID=115205076 /usr/bin/ld: /usr/lib64/libgdal.so.34: undefined reference to `arrow::KeyValueMetadata::Get[abi:cxx11](std::basic_string_view<char, std::char_traits<char> >) const' /usr/bin/ld: /usr/lib64/libgdal.so.34: undefined reference to `arrow::KeyValueMetadata::Contains(std::basic_string_view<char, std::char_traits<char> >) const' collect2: error: ld returned 1 exit status
gdal-3.8.4-4.fc41 rebuilt with libarrow 15.0.1-1.fc41 https://koji.fedoraproject.org/koji/buildinfo?buildID=2422900
Right, it looks like gdal was rebuilt due to the ABI break, and now needs to be re-rebuilt because reverting the ABI break is still an ABI break. There could be others.