Bug 2326774 - python3-pyarrow provides bogus library SONAME provides
Summary: python3-pyarrow provides bogus library SONAME provides
Keywords:
Status: CLOSED ERRATA
Alias: None
Product: Fedora
Classification: Fedora
Component: libarrow
Version: rawhide
Hardware: Unspecified
OS: Linux
unspecified
medium
Target Milestone: ---
Assignee: Kaleb KEITHLEY
QA Contact:
URL:
Whiteboard:
Depends On:
Blocks:
TreeView+ depends on / blocked
 
Reported: 2024-11-17 12:33 UTC by Elliott Sales de Andrade
Modified: 2024-12-01 03:52 UTC (History)
3 users (show)

Fixed In Version: libarrow-16.1.0-11.fc42
Clone Of:
Environment:
Last Closed: 2024-11-18 14:56:28 UTC
Type: ---
Embargoed:


Attachments (Terms of Use)

Description Elliott Sales de Andrade 2024-11-17 12:33:06 UTC
If you check the Provides https://koji.fedoraproject.org/koji/rpminfo?rpmID=40291726, they include:

lib.cpython-313-x86_64-linux-gnu.so()(64bit)
libarrow_python.so()(64bit)
libarrow_python_flight.so()(64bit)
libarrow_python_parquet_encryption.so()(64bit)

These are for files that are in the Python library path, and not for general use, so they should not be providing the SONAME in RPM metadata.

Reproducible: Always

Steps to Reproduce:
1. rpm -q --provides python3-pyarrow
Actual Results:  
lib.cpython-312-x86_64-linux-gnu.so()(64bit)
libarrow_python.so()(64bit)
libarrow_python_flight.so()(64bit)
libarrow_python_parquet_encryption.so()(64bit)
python-pyarrow = 15.0.2-5.fc40
python3-pyarrow = 15.0.2-5.fc40
python3-pyarrow(x86-64) = 15.0.2-5.fc40
python3.12-pyarrow = 15.0.2-5.fc40
python3.12dist(pyarrow) = 15.0.2
python3dist(pyarrow) = 15.0.2


Expected Results:  
Only the Python ones should appear:
python-pyarrow = 15.0.2-5.fc40
python3-pyarrow = 15.0.2-5.fc40
python3-pyarrow(x86-64) = 15.0.2-5.fc40
python3.12-pyarrow = 15.0.2-5.fc40
python3.12dist(pyarrow) = 15.0.2
python3dist(pyarrow) = 15.0.2

Comment 1 Ben Beasley 2024-11-17 13:32:20 UTC
The best thing would probably be if you could figure out how to tweak the build system not to set SONAMEs on compiled Python extensions and suggest that upstream.

If that’s not practical (because large CMake build systems like this are not pleasant to dig through), then something like this should suffice:

%global __provides_exclude (^libarrow_python(_[^.]+)?|.cpython-.*)\\.so.*$
%global __requires_exclude ^libarrow_python(_[^.]+)?\\.so.*$

Note that I had to filter the Requires, too, because the python3-pyarrow has Requires on its own SONAME-based Provides for libarrow_python.so()(64bit), libarrow_python_flight.so()(64bit), and libarrow_python_parquet_encryption.so()(64bit).

https://docs.fedoraproject.org/en-US/packaging-guidelines/AutoProvidesAndRequiresFiltering/#_filtering_provides_and_requires_after_scanning

Here’s a PR for that approach: https://src.fedoraproject.org/rpms/libarrow/pull-request/9

Comment 2 Elliott Sales de Andrade 2024-11-18 00:07:28 UTC
I think possibly that would involve using `NO_SONAME` somehow, but I'm not a CMake expert https://cmake.org/cmake/help/latest/prop_tgt/NO_SONAME.html

Comment 3 Fedora Update System 2024-11-18 14:53:37 UTC
FEDORA-2024-731e416360 (libarrow-16.1.0-11.fc42) has been submitted as an update to Fedora 42.
https://bodhi.fedoraproject.org/updates/FEDORA-2024-731e416360

Comment 4 Fedora Update System 2024-11-18 14:56:28 UTC
FEDORA-2024-731e416360 (libarrow-16.1.0-11.fc42) has been pushed to the Fedora 42 stable repository.
If problem still persists, please make note of it in this bug report.

Comment 5 Fedora Update System 2024-11-19 12:45:48 UTC
FEDORA-2024-0612b5632f (libarrow-16.1.0-11.fc41) has been submitted as an update to Fedora 41.
https://bodhi.fedoraproject.org/updates/FEDORA-2024-0612b5632f

Comment 6 Fedora Update System 2024-11-20 17:12:56 UTC
FEDORA-2024-0612b5632f has been pushed to the Fedora 41 testing repository.
Soon you'll be able to install the update with the following command:
`sudo dnf upgrade --enablerepo=updates-testing --refresh --advisory=FEDORA-2024-0612b5632f`
You can provide feedback for this update here: https://bodhi.fedoraproject.org/updates/FEDORA-2024-0612b5632f

See also https://fedoraproject.org/wiki/QA:Updates_Testing for more information on how to test updates.

Comment 7 Fedora Update System 2024-11-23 04:37:26 UTC
FEDORA-2024-e52422ae56 has been pushed to the Fedora 41 testing repository.
Soon you'll be able to install the update with the following command:
`sudo dnf upgrade --enablerepo=updates-testing --refresh --advisory=FEDORA-2024-e52422ae56`
You can provide feedback for this update here: https://bodhi.fedoraproject.org/updates/FEDORA-2024-e52422ae56

See also https://fedoraproject.org/wiki/QA:Updates_Testing for more information on how to test updates.

Comment 8 Fedora Update System 2024-12-01 03:52:27 UTC
FEDORA-2024-e52422ae56 (libarrow-16.1.0-12.fc41) has been pushed to the Fedora 41 stable repository.
If problem still persists, please make note of it in this bug report.


Note You need to log in before you can comment on or make changes to this bug.