On Montag, 5. Februar 2018 17:06:39 CET Klaas Freitag wrote:
On 05.02.2018 15:59, Andreas Schwab wrote:
On Feb 05 2018, Klaas Freitag
wrote: CryFS depends on boost and I am struggling which boost to base on. There are several version-packages of boost on our distributions.
Can somebody explain me why we have so many different "boosts" and how I decide which one to BuildRequire?
Each distribution has only one version of boost, so what is your problem with using boost-devel?
If I only BuildRequire boost-devel, I am ending up with cmake bailing out by stating that (example from Tumbleweed): [ 5s] Boost version: 1.66.0 [ 5s] [ 5s] Boost include path: /usr/include [ 5s] [ 5s] Could not find the following Boost libraries: [ 5s] [ 5s] boost_filesystem [ 5s] boost_system [ 5s] boost_thread [ 5s]
I have to install the devel packages of these sub libraries to make it built, and they are versioned, such as BuildRequires: libboost_system%{boost_version}-devel
$> zypper info --provides libboost_filesystem1_66_0-devel ... Provides : [3] libboost_filesystem-devel = 1.66.0 libboost_filesystem1_66_0-devel = 1.66.0-2.1 libboost_filesystem1_66_0-devel(x86-64) = 1.66.0-2.1 So you can and should use BuildRequires: libboost_filesystem-devel on TW and Leap/SLE 15. Optionally, use e.g. BuildRequires: libboost_filesystem-devel >= 1.55.0 if you package requires an interface only provided since a specific version. Using a specific version is bad for two reasons: - it will stop building on TW as soon as the version is dropped - in case of a library, you may end up with a program which (indirectly) links two boost versions at the same time, as the repository still contains the old version of your library. Kind regards, Stefan -- To unsubscribe, e-mail: opensuse-packaging+unsubscribe@opensuse.org To contact the owner, e-mail: opensuse-packaging+owner@opensuse.org