Bug 2028852 - opae-devel bundles libcrypto.so and libcrypto-1_1-x64.dll, provides libcrypto.so.1.1()(64bit), breaking the default x86_64 buildroot
Summary: opae-devel bundles libcrypto.so and libcrypto-1_1-x64.dll, provides libcrypto...
Keywords:
Status: CLOSED EOL
Alias: None
Product: Fedora
Classification: Fedora
Component: opae
Version: 35
Hardware: Unspecified
OS: Unspecified
unspecified
unspecified
Target Milestone: ---
Assignee: Tom Rix
QA Contact: Fedora Extras Quality Assurance
URL:
Whiteboard:
Depends On:
Blocks:
TreeView+ depends on / blocked
 
Reported: 2021-12-03 15:05 UTC by Miro Hrončok
Modified: 2022-12-13 16:02 UTC (History)
6 users (show)

Fixed In Version: opae-2.0.0-2.5.fc36
Clone Of:
Environment:
Last Closed: 2022-12-13 16:02:25 UTC
Type: Bug
Embargoed:


Attachments (Terms of Use)

Description Miro Hrončok 2021-12-03 15:05:09 UTC
Description of problem:
The opae-devel package provides libcrypto.so.1.1()(64bit) and similar provides:

$ rpm -q --provides opae-devel
config(opae-devel) = 2.0.0-2.3.fc35
libboard_a10gx.so()(64bit)
libboard_d5005.so()(64bit)
libboard_n3000.so()(64bit)
libcrypto.so.1.1()(64bit)
libcrypto.so.1.1(OPENSSL_1_1_0)(64bit)
libcrypto.so.1.1(OPENSSL_1_1_0a)(64bit)
libcrypto.so.1.1(OPENSSL_1_1_0c)(64bit)
libcrypto.so.1.1(OPENSSL_1_1_0d)(64bit)
libcrypto.so.1.1(OPENSSL_1_1_0f)(64bit)
libcrypto.so.1.1(OPENSSL_1_1_0g)(64bit)
libcrypto.so.1.1(OPENSSL_1_1_0h)(64bit)
libcrypto.so.1.1(OPENSSL_1_1_0i)(64bit)
libcrypto.so.1.1(OPENSSL_1_1_0j)(64bit)
libcrypto.so.1.1(OPENSSL_1_1_1)(64bit)
libcrypto.so.1.1(OPENSSL_1_1_1b)(64bit)
libcrypto.so.1.1(OPENSSL_1_1_1c)(64bit)
libcrypto.so.1.1(OPENSSL_1_1_1d)(64bit)
libcrypto.so.1.1(OPENSSL_1_1_1e)(64bit)
libfpgad-vc.so()(64bit)
libmodbmc.so()(64bit)
libxfpga.so()(64bit)
opae-devel = 2.0.0-2.3.fc35
opae-devel(x86-64) = 2.0.0-2.3.fc35
python3.10dist(opae-admin) = 1.4.1
python3.10dist(opae.admin) = 1.4.1
python3.10dist(pacsign) = 1.0.3
python3dist(opae-admin) = 1.4.1
python3dist(opae.admin) = 1.4.1
python3dist(pacsign) = 1.0.3

Hence, packages that require that might pull in opae-devel instead of openssl1.1 (and will, because it is sorted alphabetically first).

Since no more packages in the default buidlroot bring openssl1.1 by other requires, all x86_64 builds (as opae only builds on x86_64) install opae-devel instead of openssl1.1.

Apps like cmake or appstream-util are broken:


/usr/bin/cmake: error while loading shared libraries: libcrypto.so.1.1: cannot open shared object file: No such file or directory 

https://lists.fedoraproject.org/archives/list/devel@lists.fedoraproject.org/thread/LAHTJWRB5HEPY3YNM7BSDGVZHGIHRORN/

And appstream-util:

appstream-util: error while loading shared libraries: libcrypto.so.1.1: cannot open shared object file: No such file or directory

https://koschei.fedoraproject.org/build/11634367


Version-Release number of selected component (if applicable):
opae-devel-2.0.0-2.3.fc35.x86_64

Steps to Reproduce:
1. $ rpm -q --provides opae-devel

Actual results:
Includes libcrypto.so.1.1*

Expected results:
Must not include libcrypto.so.1.1*

Comment 1 Miro Hrončok 2021-12-03 15:07:51 UTC
This is caused by:

$ rpm -ql opae-devel | grep libcrypto
/usr/lib/python3.10/site-packages/pacsign/hsm_managers/openssl/library/libcrypto-1_1-x64.dll
/usr/lib/python3.10/site-packages/pacsign/hsm_managers/openssl/library/libcrypto.so


I will now filter the provides out, but this needs to be solved, it looks like a bundled pre-built openssl (which might be the reason this is only functional on x86_64).

Comment 2 Miro Hrončok 2021-12-03 15:20:53 UTC
The provide also exists on Fedora 35, but there it doesn't cause buildroot damage.

I will not backport my filter, please remove the bundled OpenSSL instead.

Comment 3 Zbigniew Jędrzejewski-Szmek 2021-12-03 15:21:20 UTC
Hmm, why do we generate Provides for libraries outside of the usual library load path? Shouldn't those be just skipped by default automatically?

Comment 4 Fedora Update System 2021-12-03 15:35:08 UTC
FEDORA-2021-27cb13142d has been pushed to the Fedora 36 stable repository.
If problem still persists, please make note of it in this bug report.

Comment 5 Miro Hrončok 2021-12-03 16:01:41 UTC
(In reply to Zbigniew Jędrzejewski-Szmek from comment #3)
> Hmm, why do we generate Provides for libraries outside of the usual library
> load path?

Backwards compatibility mostly I guess.

> Shouldn't those be just skipped by default automatically?

I agree. This has been discussed many times and I gave up. See also e.g. https://github.com/rpm-software-management/rpm/issues/1227


------


Lowering the urgency, this has been worked around in Rawhide.

Comment 6 Miro Hrončok 2021-12-03 21:13:45 UTC
I see a partial fix in https://src.fedoraproject.org/rpms/opae/c/c2931b8a9bd0c792643f782eea180fe828b133b3?branch=rawhide

/usr/lib/python3.10/site-packages/pacsign/hsm_managers/openssl/library/libcrypto-1_1-x64.dll still remains to be shipped.

Also, I am not sure plain removal keeps the package in a working state.

Comment 7 Tom Rix 2021-12-05 16:50:05 UTC
2.0.0-2.7 removes the dll and the optional tool pacsign that used it.
Discussion upstream on removing the dependency to the private libcrypto are ongoing.

Comment 8 Ben Cotton 2022-11-29 17:26:20 UTC
This message is a reminder that Fedora Linux 35 is nearing its end of life.
Fedora will stop maintaining and issuing updates for Fedora Linux 35 on 2022-12-13.
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
'version' of '35'.

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

Thank you for reporting this issue and we are sorry that we were not 
able to fix it before Fedora Linux 35 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 Linux, you are encouraged to change the 'version' to a later version
prior to this bug being closed.

Comment 9 Ben Cotton 2022-12-13 16:02:25 UTC
Fedora Linux 35 entered end-of-life (EOL) status on 2022-12-13.

Fedora Linux 35 is no longer maintained, which means that it
will not receive any further security or bug fix updates. As a result we
are closing this bug.

If you can reproduce this bug against a currently maintained version of Fedora Linux
please feel free to reopen this bug against that version. Note that the version
field may be hidden. Click the "Show advanced fields" button if you do not see
the version field.

If you are unable to reopen this bug, please file a new report against an
active release.

Thank you for reporting this bug and we are sorry it could not be fixed.


Note You need to log in before you can comment on or make changes to this bug.