[opensuse-packaging] libboost question
Hi, I am building a cryfs [1] package in my homeprj, to maybe push it further to Factory later. 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? Thanks, Klaas [1] https://www.cryfs.org -- To unsubscribe, e-mail: opensuse-packaging+unsubscribe@opensuse.org To contact the owner, e-mail: opensuse-packaging+owner@opensuse.org
Hi Klaas!
On Feb 5, 2018, at 3:22 PM, Klaas Freitag
wrote: Can somebody explain me why we have so many different "boosts" and how I decide which one to BuildRequire?
The different upstream versions often have sometimes breaking changes inbetween so chances are likely that a package developed against boost-1.48 will not compile against boost-1.62 without being patched. In order to reduce the pain with these breakages, lots of distributions have multiple minor versions of boost packaged. However, there should always be a default boost version for a given distribution which is usually installed using a boost metapackage. Adrian-- To unsubscribe, e-mail: opensuse-packaging+unsubscribe@opensuse.org To contact the owner, e-mail: opensuse-packaging+owner@opensuse.org
On Feb 05 2018, Klaas Freitag
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? Andreas. -- Andreas Schwab, SUSE Labs, schwab@suse.de GPG Key fingerprint = 0196 BAD8 1CE9 1970 F4BE 1748 E4D4 88E3 0EEA B9D7 "And now for something completely different." -- To unsubscribe, e-mail: opensuse-packaging+unsubscribe@opensuse.org To contact the owner, e-mail: opensuse-packaging+owner@opensuse.org
On 02/05/2018 03:59 PM, Andreas Schwab wrote:
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?
With some exceptions it seems:
https://build.opensuse.org/package/show/openSUSE:Leap:42.3/boost_1_58_0 https://build.opensuse.org/package/show/openSUSE:Leap:42.3/boost.1_61
I think the original question is a fair question because boost is definitely a library where it's not always clear which version to use as there are breaking changes from time to time. Debian has also multiple versions packaged with the minor version number being part of the package name instead of just naming the source package "boost":
https://qa.debian.org/developer.php?login=pkg-boost-devel@lists.alioth.debia...
boost-defaults is a meta-package which provides unversioned packages which other packages can depend on. So, build-depending on boost-devel can potentially make the package failing to build from source in some openSUSE versions because the boost version might be too old or too new. Adrian -- To unsubscribe, e-mail: opensuse-packaging+unsubscribe@opensuse.org To contact the owner, e-mail: opensuse-packaging+owner@opensuse.org
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 In this case the cmake run tells me that boost-devel pulls in v. 1.66 and I can choose the right sub-lib versions, but is that how it is supposed to be? Thanks, Klaas -- To unsubscribe, e-mail: opensuse-packaging+unsubscribe@opensuse.org To contact the owner, e-mail: opensuse-packaging+owner@opensuse.org
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
On Feb 05 2018, Klaas Freitag
BuildRequires: libboost_system%{boost_version}-devel
You should be able to use boost-%{boost_version}-devel to get all subpackages. Andreas. -- Andreas Schwab, SUSE Labs, schwab@suse.de GPG Key fingerprint = 0196 BAD8 1CE9 1970 F4BE 1748 E4D4 88E3 0EEA B9D7 "And now for something completely different." -- To unsubscribe, e-mail: opensuse-packaging+unsubscribe@opensuse.org To contact the owner, e-mail: opensuse-packaging+owner@opensuse.org
On lundi, 5 février 2018 17.25:02 h CET Andreas Schwab wrote:
On Feb 05 2018, Klaas Freitag
wrote: BuildRequires: libboost_system%{boost_version}-devel
You should be able to use boost-%{boost_version}-devel to get all subpackages.
Andreas.
No more on suse_version > 1325 you have to use liboost_.... ;-) -- Bruno Friedmann Ioda-Net Sàrl www.ioda-net.ch Bareos Partner, openSUSE Member, fsfe fellowship GPG KEY : D5C9B751C4653227 irc: tigerfoot -- To unsubscribe, e-mail: opensuse-packaging+unsubscribe@opensuse.org To contact the owner, e-mail: opensuse-packaging+owner@opensuse.org
On Monday 2018-02-05 18:29, Bruno Friedmann wrote:
On lundi, 5 février 2018 17.25:02 h CET Andreas Schwab wrote:
On Feb 05 2018, Klaas Freitag
wrote: BuildRequires: libboost_system%{boost_version}-devel
You should be able to use boost-%{boost_version}-devel to get all subpackages.
Andreas.
No more on suse_version > 1325 you have to use liboost_....
And that was done for a reason. Just because you can write BuildRequires: (kde5-devel) to get qt does not mean you should... -- To unsubscribe, e-mail: opensuse-packaging+unsubscribe@opensuse.org To contact the owner, e-mail: opensuse-packaging+owner@opensuse.org
On 02/05/2018 05:25 PM, Andreas Schwab wrote:
On Feb 05 2018, Klaas Freitag
wrote: BuildRequires: libboost_system%{boost_version}-devel
You should be able to use boost-%{boost_version}-devel to get all subpackages.
No, you can't. It was explained just over a year ago on openSUSE factory mailing list and packages that depend on binary boost libraries that do not have this fixed are not in openSUSE:Factory anymore (mostly because it was fixed). But yes, you can now continue to BR: boost-devel if all you need is the headers. libboost_headers-devel now provides boost-devel. You will not get any binary libraries so things will just fail on the link stage. Boost dependencies can actually be quite simple now, since you can have BuildRequires: boost-devel %if %{suse_version} >= 1330 BuildRequires: libboost_system-devel %endif and it should work for older Leap and SLE12 too as well as Factory and Leap 15. And if you don't care about old stuff, you don't need boost-devel at all in your spec files. Cheers, - Adam PS. And please, *never* use versioned boost package names in any build requires. If you require some min version, all the provides have a version. BuildRequires: libboost_system-devel or BuildRequires: libboost_system-devel >= 1.62.0 *NEVER* BuildRequires: libboost_system1_62_0-devel -- To unsubscribe, e-mail: opensuse-packaging+unsubscribe@opensuse.org To contact the owner, e-mail: opensuse-packaging+owner@opensuse.org
On Mon 05 Feb 2018 03:21:38 PM CST, Klaas Freitag wrote:
Hi,
I am building a cryfs [1] package in my homeprj, to maybe push it further to Factory later.
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?
Thanks,
Klaas
[1] https://www.cryfs.org Hi Feel free to take mine if your interested in pushing to Factory; https://build.opensuse.org/package/show/home%3Amalcolmlewis%3ATESTING/cryfs
I built last year for a Forum user.... just send me a delete request when you have your package done... -- Cheers Malcolm °¿° SUSE Knowledge Partner (Linux Counter #276890) openSUSE Leap 42.3 | GNOME 3.20.2 | 4.4.104-39-default HP 255 G4 Notebook | A6-6310 X4 @ 1.80 GHz | AMD Radeon R4 up 23:06, 1 user, load average: 0.94, 1.03, 0.99 -- To unsubscribe, e-mail: opensuse-packaging+unsubscribe@opensuse.org To contact the owner, e-mail: opensuse-packaging+owner@opensuse.org
participants (8)
-
Adam Majer
-
Andreas Schwab
-
Bruno Friedmann
-
Brüns, Stefan
-
Jan Engelhardt
-
John Paul Adrian Glaubitz
-
Klaas Freitag
-
Malcolm