/usr/include/boost/asio/ssl/detail/openssl_types.hpp:26:11: fatal error: openssl/engine.h: No such file or directory https://kojipkgs.fedoraproject.org//work/tasks/3545/123503545/build.log Seems like it should depend on the proper OpenSSL package? Interestingly, it works in f39, f40 and rawhide. Reproducible: Always
No it should not depend on openssl, which wouldn't help anyway because openssl/engine.h has been removed. You need to build your package with -DOPENSSL_NO_ENGINE so that headers do not try to use the deprecate engines feature. *** This bug has been marked as a duplicate of bug 2296114 ***
What I don't understand is: a.) Why does https://fedoraproject.org/wiki/Changes/OpensslNoEngine say this change was dropped? b.) Why does it work in rawhide? It seems to me this accidentally made it into f41 but was dropped from rawhide. Shouldn't it be dropped from f41 as well then? Also, even if we don't want the engines and hence don't want to add the missing dependency to boost: This is coming from a boost include. It's not feather trying to include openssl here without that include, it's boost doing that. In that case, boost should define OPENSSL_NO_ENGINE. It is unreasonable to expect that everything using boost adds a define that is required by boost manually.
(In reply to Jonathan S. from comment #2) > What I don't understand is: > > a.) Why does https://fedoraproject.org/wiki/Changes/OpensslNoEngine say this > change was dropped? Because that was dropped. A different change was made instead: https://fedoraproject.org/wiki/Changes/OpensslDeprecateEngine The approved change split Engine support into a separate package (openssl-engine) instead of dropping it entirely. > b.) Why does it work in rawhide? Because the openssl headers were fixed to make it work: https://src.fedoraproject.org/rpms/openssl/c/13b583a535e62d12521cfeb5088a68e5811eb6e6?branch=rawhide But that fix came too late for F41 and was not approved. > It seems to me this accidentally made it into f41 but was dropped from > rawhide. No, that's not what happened. > Shouldn't it be dropped from f41 as well then? It was proposed, and rejected because it was too close to the F41 release date. > Also, even if we don't want the engines and hence don't want to add the > missing dependency to boost: This is coming from a boost include. It's not > feather trying to include openssl here without that include, it's boost > doing that. In that case, boost should define OPENSSL_NO_ENGINE. It is > unreasonable to expect that everything using boost adds a define that is > required by boost manually. It's not strictly required by boost, because the boost headers do this: #ifndef OPENSSL_NO_ENGINE # include <openssl/engine.h> #endif So by not defining the macro, you're telling boost you want to use Engines. In that case, it's up to you to install the openssl-engine package that provides the header, or tell Boost not to try and use it. See the discussion in Bug 2297642. This was a breaking change in the openssl headers in F41, which affects Boost and a number of other packages. The workaround is to define OPENSSL_NO_ENGINE *** This bug has been marked as a duplicate of bug 2296114 ***
Oops, I think the engine support was split into a new package called openssl-devel-engine not openssl-engine.