Bug 1300741

Summary: asio-devel requires boost-devel and openssl-devel but does not need them
Product: [Fedora] Fedora Reporter: Ryan Mulder <ryanjmulder>
Component: asioAssignee: Marc Maurer <uwog>
Status: CLOSED RAWHIDE QA Contact: Fedora Extras Quality Assurance <extras-qa>
Severity: unspecified Docs Contact:
Priority: unspecified    
Version: rawhideCC: fale, jwakely, me, uwog
Target Milestone: ---Keywords: FutureFeature
Target Release: ---   
Hardware: Unspecified   
OS: Unspecified   
Whiteboard:
Fixed In Version: Doc Type: Bug Fix
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2020-07-04 10:55:41 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 Ryan Mulder 2016-01-21 15:32:10 UTC
Description of problem:

asio-devel Requires boost-devel, but according to asio's website:
http://think-async.com/Asio/AsioAndBoostAsio?skin=clean.nat%2casio%2cpattern#What_are_the_differences_in_the
"Asio can be used independently of Boost by defining ASIO_STANDALONE when you compile."

I use asio-devel with the ASIO_STANDALONE configuration, and it works quite well.

Similarly, openssl is only required if using asio's ssl features, otherwise it is unnecessary:
http://think-async.com/Asio/asio-1.5.1/doc/asio/overview/ssl.html

So far, I only use asio without openssl.

Version-Release number of selected component (if applicable):
1.10.6-5.fc24

Additional info:
Would you consider changing the Requres to some form of weak dependency?

Comment 1 Jan Kurik 2016-02-24 14:18:52 UTC
This bug appears to have been reported against 'rawhide' during the Fedora 24 development cycle.
Changing version to '24'.

More information and reason for this action is here:
https://fedoraproject.org/wiki/Fedora_Program_Management/HouseKeeping/Fedora24#Rawhide_Rebase

Comment 2 Jonathan Wakely 2016-11-18 19:41:40 UTC
(Changing version back to rawhide, since this isn't something that should be changed on a stable release.)

AFAICT the default configuration tries to use openssl if available, so requiring it is correct. We could potentially have separate asio-with-ssl and asio-without-ssl packages, but simply providing a more feature-complete package seems preferable.

> So far, I only use asio without openssl.

What about other users?

Just because you *can* build it without SSL support doesn't mean it's more useful. (Although it's worth noting that the version of openssl in rawhide prevents building asio, see Bug 1396638, so disabling it would solve that!)

Removing the boost dependency might make sense now that the version of G++ in Fedora defaults to C++14, the features that Asio uses from Boost have replacements in the C++ standard library. Boost.DateTime seems to be an exception, parts of Asio such as basic_deadline_timer appear to depend on Boost and are disabled without it, although there's a steady_timer alternative based on std::chrono.

Comment 3 Ryan Mulder 2016-11-21 17:59:33 UTC
Thanks for taking a look at this, Jonathan. I appreciate your time.

> What about other users?

You're right that the package needs to be usable by everyone, so it should be feature-complete.

I failed to mention in my problem description that the asio-devel package is header only. There are no compiled libraries released in the rpm (file list here: http://koji.fedoraproject.org/koji/rpminfo?rpmID=8074845).

So, because there are only headers deployed, every user must choose the preprocessor definitions that they want to build with. That allows me to opt-out of boost and openssl, and allows others to opt-in.

Therefore, it is unnecessary to require the installation of the openssl and boost devel packages when installing the asio-devel package. Could the "Requires:" statements in the spec file be changed to "Recommends:" or "Suggests:" to more accurately reflect that these are optional dependencies?

I did notice in the build log that the example and test code is compiled during the rpm build: https://kojipkgs.fedoraproject.org//packages/asio/1.10.7/1.fc26/data/logs/x86_64/build.log So, the "BuildRequires:" for openssl-devel and boost-devel still makes sense.

Comment 4 Jonathan Wakely 2016-11-22 13:19:24 UTC
Aha, since I saw the asio package failing to build against an updated boost package I assumed there was a binary component. It must have been only the examples and tests failing.

In that case I agree that Requires seems wrong.

Comment 5 Fedora End Of Life 2017-02-28 09:52:55 UTC
This bug appears to have been reported against 'rawhide' during the Fedora 26 development cycle.
Changing version to '26'.

Comment 6 Fedora End Of Life 2018-05-03 08:44:41 UTC
This message is a reminder that Fedora 26 is nearing its end of life.
Approximately 4 (four) weeks from now Fedora will stop maintaining
and issuing updates for Fedora 26. It is Fedora's policy to close all
bug reports from releases that are no longer maintained. At that time
this bug will be closed as EOL if it remains open with a Fedora  'version'
of '26'.

Package Maintainer: If you wish for this bug to remain open because you
plan to fix it in a currently maintained version, simply change the 'version'
to a later Fedora version.

Thank you for reporting this issue and we are sorry that we were not
able to fix it before Fedora 26 is end of life. If you would still like
to see this bug fixed and are able to reproduce it against a later version
of Fedora, you are encouraged  change the 'version' to a later Fedora
version prior this bug is closed as described in the policy above.

Although we aim to fix as many bugs as possible during every release's
lifetime, sometimes those efforts are overtaken by events. Often a
more recent Fedora release includes newer upstream software that fixes
bugs or makes them obsolete.

Comment 7 Jan Kurik 2018-08-14 10:22:57 UTC
This bug appears to have been reported against 'rawhide' during the Fedora 29 development cycle.
Changing version to '29'.

Comment 8 Ben Cotton 2019-10-31 20:51:34 UTC
This message is a reminder that Fedora 29 is nearing its end of life.
Fedora will stop maintaining and issuing updates for Fedora 29 on 2019-11-26.
It is Fedora's policy to close all bug reports from releases that are no longer
maintained. At that time this bug will be closed as EOL if it remains open with a
Fedora 'version' of '29'.

Package Maintainer: If you wish for this bug to remain open because you
plan to fix it in a currently maintained version, simply change the 'version' 
to a later Fedora version.

Thank you for reporting this issue and we are sorry that we were not 
able to fix it before Fedora 29 is end of life. If you would still like 
to see this bug fixed and are able to reproduce it against a later version 
of Fedora, you are encouraged  change the 'version' to a later Fedora 
version prior this bug is closed as described in the policy above.

Although we aim to fix as many bugs as possible during every release's 
lifetime, sometimes those efforts are overtaken by events. Often a 
more recent Fedora release includes newer upstream software that fixes 
bugs or makes them obsolete.

Comment 9 Fabio Alessandro Locati 2020-07-04 10:55:41 UTC
From version 1.16.1-1 the two dependencies have been moved to weak dependencies