Broken OpenSSL dependency during upgrade

I had an old computer that hadn’t been updated in a while. I updated using snapshots

tumbleweed switch --install 20250503

A few minutes into the update, I ran into an error

I’m unable to shutdown/reboot my system or open any program, folder, or even a terminal through graphical interface so I switched to TTY with ctrl+alt+f1 just to access command line. However, I’m unable to run zypper or curl or wget as I get the error

curl: /lib64/glibc-hwcaps/x86-64-v3/libssl.so.3.1.4: version `OPENSSL_3.2.0' not found (required by /lib64/libcurl.so.4)

The issue seems similar to this and it suggests using an external pacman but I’m not sure what the equivalent fix is for Opensuse

LT-B:~ # rpm -q --whatprovides "libssl.so.3(OPENSSL_3.2.0)(64bit)"
libopenssl3-3.5.0-1.1.x86_64
LT-B:~ #

Check the version you have:

rpm -q --info libopenssl3

if it is lower than 3.5.0 the following should update it:

rpm -U https://cdn.opensuse.org/tumbleweed/repo/oss/x86_64/libopenssl3-x86-64-v3-3.5.0-1.1.x86_64.rpm

Unfortunately rpm doesn’t work either

/usr/bin/curl: /lib64/glibc-hwcaps/x86-64-v3/libssl.so.3.1.4: version `OPENSSL_3.2.0' not found (required by /lib64/libcurl.so.4)
error: Executing url helper --silent --show-error --fail --globoff --location -o -/var/tmp/rpm-temp.eEKMa8 https://cdn.opensuse.org/tumbleweed/repo/oss/x86_64/libopenssl3-x86-64-v3-3.5.0-1.1.x86_64.rpm" failed with status 1

running

rpm -q --info libopenssl3

shows I have OpenSSL 3.5.0 release 1.1 installed which I think was updated before my initial update stopped and ran into the error in the first place

That is not how you post the command output. You copy and paste the full command line and its complete output, not describe what you see.

Anyway - the /lib64/glibc-hwcaps/x86-64-v3/libssl.so.3.1.4 belongs to the package libopenssl3-x86-64 which should match the main version but apparently does not. Post

zypper search -s libopenssl3

Apologies for that. I have the same issue with running zypper as I do with curl, wget, rpm

$ zypper search -s libopenssl3
/usr/bin/curl: /lib64/glibc-hwcaps/x86-64-v3/libssl.so.3.1.4: version `OPENSSL_3.2.0' not found (required by /lib64/libcurl.so.4)

That’s strange, zypper does not directly invoke curl at all.

Show

rpm -qif /lib64/glibc-hwcaps/x86-64-v3/libssl.so.3.1.4

Oops typo on that

$ zypper search -s libopenssl3
zypper: /lib64/glibc-hwcaps/x86-64-v3/libssl.so.3.1.4: version `OPENSSL_3.2.0' not found (required by /lib64/libcurl.so.4)

And this is the rpm output

$ rpm -qif /lib64/glibc-hwcaps/x86-64-v3/libssl.so.3.1.4
Name:         libopenssl3-x86-64-v3
Version:      3.1.4
Release:      13.1
Architecture: x86_64
Install Date: Tue 10 Sep 2024 12:02:08 AM PDT
Group:        Unspecified
Size:         6466003
License:      Apache-2.0
Signature:    RSA/SHA512, thu 05 Sep 2024 07:23:01 AM PDT, Keg ID 35a2f86e29b700a4
Source RPM:   openssl-3-3.1.4-13.1.src.rpm
Build Date:   Thu 22 Aug 2024 08:18:03 AM PDT
Build Host:   reproducible
Packager:     https://bugs.opensuse.org
Vendor:       openSUSE
URL:          https://www.openssl.org/
Summary:      Secure Sockets and Transport Layer Security
Description: 
OpenSSL is a software library to be used in applications that need to
secure communications over computer networks against eavesdropping or
need to ascertain the identity of the party at the other end.
OpenSSL contains an implementation of the SSL and TLS protocols.
Distribution: openSUSE Tumbleweed

Please show your repolist via zypper lr -d.

You seem to have your initial installation media still activated. Remove it and perform an upgrade afterwards. Your libopenssl3 version is completely outdated.

This are the actual versions in Tumbleweed:

ich@laptopneu:~> zypper search -s libopenssl3
Loading repository data...
Reading installed packages...

S  | Name                  | Type  | Version   | Arch   | Repository
---+-----------------------+-------+-----------+--------+-----------
i  | libopenssl3           | Paket | 3.5.0-1.1 | x86_64 | OSS
i  | libopenssl3-32bit     | Paket | 3.5.0-1.1 | x86_64 | OSS
i  | libopenssl3-x86-64-v3 | Paket | 3.5.0-1.1 | x86_64 | OSS
ich@laptopneu:~> 

Show

rpm -qa libopenssl\*

Did you read the previous posts?

I’m having the same issue after attempting to update just now via zypper update after not having updated for a while.

Original error:

( 681/1331) Installing: checkmedia-6.3-1.3.x86_64 ................................................................[done]
/usr/bin/systemd-sysusers --replace=/usr/lib/sysusers.d/system-user-lp.conf -
/usr/bin/systemd-sysusers: /lib64/glibc-hwcaps/x86-64-v3/libcrypto.so.3.1.7: version `OPENSSL_3.4.0' not found (required by /usr/lib64/systemd/libsystemd-shared-257.5-2.1.so)
/usr/bin/systemd-sysusers -
/usr/bin/systemd-sysusers: /lib64/glibc-hwcaps/x86-64-v3/libcrypto.so.3.1.7: version `OPENSSL_3.4.0' not found (required by /usr/lib64/systemd/libsystemd-shared-257.5-2.1.so)
error: %prein(system-user-lp-20170617-27.1.noarch) scriptlet failed, exit status 1
error: system-user-lp-20170617-27.1.noarch: install failed
error: system-user-lp-20170617-26.1.noarch: erase skipped
( 682/1331) Installing: system-user-lp-20170617-27.1.noarch .....................................................[error]
Installation of system-user-lp-20170617-27.1.noarch failed:
Error: Subprocess failed. Error: RPM failed: Command exited with status 1.

After this I retried and then aborted and got: Warning: %posttrans and %transfiletrigger scripts are not executed when aborting!.

Some outputs:

admin@swiss:~> rpm -qa libopenssl\*
libopenssl3-x86-64-v3-3.1.7-1.1.x86_64
libopenssl3-3.5.0-1.1.x86_64
admin@swiss:~> rpm -q --info libopenssl3
Name        : libopenssl3
Version     : 3.5.0
Release     : 1.1
Architecture: x86_64
Install Date: Mon 19 May 2025 01:17:35 AM EDT
Group       : Unspecified
Size        : 7984450
License     : Apache-2.0
Signature   : RSA/SHA512, Tue 29 Apr 2025 11:48:11 AM EDT, Key ID 35a2f86e29b700a4
Source RPM  : openssl-3-3.5.0-1.1.src.rpm
Build Date  : Fri 04 Apr 2025 09:34:27 AM EDT
Build Host  : reproducible
Packager    : https://bugs.opensuse.org
Vendor      : openSUSE
URL         : https://www.openssl.org/
Summary     : Secure Sockets and Transport Layer Security
Description :
OpenSSL is a software library to be used in applications that need to
secure communications over computer networks against eavesdropping or
need to ascertain the identity of the party at the other end.
OpenSSL contains an implementation of the SSL and TLS protocols.
Distribution: openSUSE Tumbleweed
admin@swiss:~> zypper lr -d
zypper: /lib64/glibc-hwcaps/x86-64-v3/libssl.so.3.1.7: version `OPENSSL_3.2.0' not found (required by /lib64/libcurl.so.4)
admin@swiss:~> sudo rpm -Uhv https://download.opensuse.org/tumbleweed/repo/oss/x86_64/libssl.so.3.1.7
Retrieving https://download.opensuse.org/tumbleweed/repo/oss/x86_64/libssl.so.3.1.7
/usr/bin/curl: /lib64/glibc-hwcaps/x86-64-v3/libssl.so.3.1.7: version `OPENSSL_3.2.0' not found (required by /lib64/libcurl.so.4)
error: Executing url helper "/usr/bin/curl   --silent --show-error --fail --globoff --location -o /var/tmp/rpm-tmp.at55iT https://download.opensuse.org/tumbleweed/repo/oss/x86_64/libssl.so.3.1.7" failed with status 1
error: skipping https://download.opensuse.org/tumbleweed/repo/oss/x86_64/libssl.so.3.1.7 - transfer failed

Can’t even restart:

admin@swiss:~> sudo shutdown -r now
shutdown: /lib64/glibc-hwcaps/x86-64-v3/libcrypto.so.3.1.7: version `OPENSSL_3.4.0' not found (required by /usr/lib64/systemd/libsystemd-shared-257.5-2.1.so)

I fixed it by copying the following files from an old snapshot:

  • /lib64/libcurl.so.4.8.0
  • /lib64/glibc-hwcaps/x86-64-v3/libcrypto.so.3.1.7
  • /lib64/glibc-hwcaps/x86-64-v3/libssl.so.3.1.7

Then, I re-ran sudo zypper update and then sudo zypper dup, then sudo shutdown -r now, and now everything is fine again. Not sure if this is the right way to do things though, maybe an expert could weigh in.

Delete this package, it is entirely optional:

rpm -e libopenssl3-x86-64-v3-3.1.7-1.1.x86_64

When zypper/curl work again, you can install the current version (or it will be installed automatically as dependency).

And please, someone hitting this open bug report. This is dependency problem and it is not obvious how to solve it (packages depend on libopenssl3 but the content of libopenssl3-x86-64 is used in preference).

1 Like

Thank you arvidjaar. I’m actually pretty new to this, can you point me to where to file a bug report? Is this a TW bug, or openssl, or libcurl?

https://bugzilla.opensuse.org/, same user/password as here, select openSUSE, product Tumbleweed, version Current and component Basesystem.

1 Like

In TW zypper dup is the only way to update!!

If it’s that dangerous to use update instead of dup that it can break your system, there should probably be some better documentation around it. As a newbie, when first running both commands, I saw update seems to work like apt upgrade, and dup gives a noisy warning. It’s not very intuitive unfortunately, and even the SDB at first says that you can use update.

Because we don’t just want to update our individual applications (which is the purpose of zypper up), but our entire Tumbleweed system, we use option #2, the zypper dup command.

Yes, hence why I said “at first”, because earlier in the article it gives update as an option.

It’s like if I were to ask “How do I make an omelette?” and you say “You can boil the egg or you can fry it. But we always fry it because that’s how you make an omelette.” It’s confusing for people new to the community. All I’m saying is it should be clarified, maybe it should say something like “For other, non-Tumbleweed openSUSE systems, there are 2 ways to update”.

There, the wiki page is fixed.

1 Like

On Tumbleweed zypper update after new Tumbleweed snapshot is published will advice you to use zypper dup.

In any case, this particular problem is not related to the up vs. dup.

1 Like