Bug 1253049

Summary: Package boost-python3 doesn't create a .so symlink
Product: [Fedora] Fedora Reporter: Al-Scandar Solstag <solstag>
Component: boostAssignee: Jonathan Wakely <jwakely>
Status: CLOSED NOTABUG QA Contact: Fedora Extras Quality Assurance <extras-qa>
Severity: unspecified Docs Contact:
Priority: unspecified    
Version: 22CC: dakingun, denis.arnaud_fedora, jwakely, me
Target Milestone: ---   
Target Release: ---   
Hardware: Unspecified   
OS: Unspecified   
Whiteboard:
Fixed In Version: Doc Type: Bug Fix
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2015-08-13 16:37:47 UTC Type: Bug
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:
Embargoed:

Description Al-Scandar Solstag 2015-08-12 20:10:37 UTC
Description of problem:

boost-python3 creates the .so-X with version appended, but does not create a link like: /usr/lib64/libboost_python3.so

Because of this, many build scripts fail to find the library, forcing the user to create the symlink by hand.

It should be noted that boost-python (python2) does create the respective link: /usr/lib64/libboost_python.so

Version-Release number of selected component (if applicable):

I'm seeing this with 1.57

Steps to Reproduce:
1. Install the package
2. Check that the link is missing

Comment 1 Jonathan Wakely 2015-08-13 16:37:47 UTC
(In reply to Al-Scandar Solstag from comment #0)
> Description of problem:
> 
> boost-python3 creates the .so-X with version appended, but does not create a
> link like: /usr/lib64/libboost_python3.so

The .so symlinks are never provided by the package that installs the DSO, they are provided by the -devel package, because you only need them in order to link applications, not to run them.


 
> Because of this, many build scripts fail to find the library, forcing the
> user to create the symlink by hand.

Don't do that, just install the correct package to get the symlink, which you can find out like so:

$ dnf whatprovides /usr/lib64/libboost_python3.so
Last metadata expiration check performed 1:22:28 ago on Thu Aug 13 16:12:17 2015.
boost-python3-devel-1.57.0-6.fc22.x86_64 : Shared object symbolic links for Boost.Python 3
Repo        : fedora

So you need to install boost-python3-devel, and RPM packages that need the symlink should have BuildRequires: boost-python3-devel.


> It should be noted that boost-python (python2) does create the respective
> link: /usr/lib64/libboost_python.so

No it doesn't, that comes from boost-devel, as the packaging guidelines require.


$ dnf whatprovides /usr/lib64/libboost_python.so
Last metadata expiration check performed 1:21:57 ago on Thu Aug 13 16:12:17 2015.
boost-devel-1.57.0-6.fc22.x86_64 : The Boost C++ headers and shared development
                                 : libraries
Repo        : @System

boost-devel-1.57.0-6.fc22.x86_64 : The Boost C++ headers and shared development
                                 : libraries
Repo        : fedora

Comment 2 Jonathan Wakely 2015-08-13 16:38:34 UTC
A simpler way to check which package installed the existing symlink is:

$ rpm -qf  /usr/lib64/libboost_python.so
boost-devel-1.57.0-6.fc22.x86_64

Comment 3 Al-Scandar Solstag 2015-08-13 16:54:08 UTC
Ok, sorry for the NOTABUG,

I understand now, and thank you for the very complete reply! =)

But I'm curious why doesn't boost-devel provide libboost-python3.so?

Again, thanks!

Comment 4 Jonathan Wakely 2015-08-14 10:26:19 UTC
If boost-devel installed that symlink then it would also have to install boost-python3, which would also have to install the full python3 environment.

With the current separation it is possible to install only boost-python, and build programs using boost-python with Python 2.7, without installing python3 if you don't want it.

The met-package 'boost' doesn't install boost-python3, and similarly boost-devel doesn't install boost-python3-devel.

Comment 5 Al-Scandar Solstag 2015-08-14 15:49:45 UTC
I see. Thanks.