Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

dotnet-runtime-deps has broken dependencies on Fedora 34 #6407

Open
omajid opened this issue Jun 22, 2021 · 6 comments
Open

dotnet-runtime-deps has broken dependencies on Fedora 34 #6407

omajid opened this issue Jun 22, 2021 · 6 comments

Comments

@omajid
Copy link
Member

omajid commented Jun 22, 2021

Originally reported by @m-ghaoui on
dotnet/vscode-csharp#4360 (comment)

Description

The dotnet-runtime-deps-5.0.7 package for Fedora 34 on packages.microsoft.com has broken dependencies.

You can see that by following the steps on the issue described above:

    sudo dnf remove dotnet*
    sudo wget -O /etc/yum.repos.d/microsoft-prod.repo https://packages.microsoft.com/config/fedora/34/prod.repo <-- Note I changed it to 34
    sudo dnf config-manager --save --setopt="*microsoft-*.priority=50"
    sudo dnf install dotnet-runtime-5.0

The last command shows the error:

# dnf install dotnet-runtime-5.0
Last metadata expiration check: 0:07:12 ago on Tue Jun 22 21:00:06 2021.
Dependencies resolved.

 Problem: package dotnet-runtime-5.0-5.0.7-1.x86_64 requires dotnet-runtime-deps-5.0 >= 5.0.7, but none of the providers can be installed
  - cannot install the best candidate for the job
  - nothing provides compat-openssl10 needed by dotnet-runtime-deps-5.0-5.0.7-1.x86_64

You can see the dependency information directly in the broken package itself:

$ wget https://packages.microsoft.com/fedora/34/prod/dotnet-runtime-deps-5.0.7-fedora.27-x64.rpm
$ rpm -qp --requires dotnet-runtime-deps-5.0.7-fedora.27-x64.rpm
compat-openssl10
libicu
krb5-libs
rpmlib(PayloadFilesHavePrefix) <= 4.0-1
rpmlib(CompressedFileNames) <= 3.0.4-1
$ sudo dnf install dotnet-runtime-deps-5.0.7-fedora.27-x64.rpm
Last metadata expiration check: 0:38:43 ago on Tue 22 Jun 2021 04:48:36 PM EDT.
Error: 
 Problem: conflicting requests
  - nothing provides compat-openssl10 needed by dotnet-runtime-deps-5.0-5.0.7-1.x86_64
(try to add '--skip-broken' to skip uninstallable packages)

Configuration

  • Which version of .NET is the code running on? .NET 5.0
  • What OS and version, and for Linux, what distro? Fedora 34
  • What is the architecture (x64, x86, ARM, ARM64)? x64

Regression?

This worked in Fedora 33, since compat-openssl10 was available. compat-openssl10 was removed starting with Fedora 34 which broke this dependency.

Other information

  • Do you know of any workarounds?
    • Using the Fedora-provided packages is the suggested approach. When that doesn't work, the workaround is to install packages from packages.microsoft.com which is broken and is now tracked by this issue. In other words, the workaround is what's broken.
@krwq
Copy link
Member

krwq commented Jun 23, 2021

@bartonjs do you perhaps know any easy workarounds?

@omajid
Copy link
Member Author

omajid commented Jun 23, 2021

All recent versions of .NET/.NET Core support OpenSSL 1.1..

Thinking out loud here:

  • We could switch the dependency to openssl instead of compat-openssl10. But that might have an impact on existing deployments that are not prepared for OpenSSL 1.1. If both OpenSSL 1.0 and 1.1 are installed, older versions prefer OpenSSL 1.0, but newer versions (3.1 and later, I think) will use OpenSSL 1.1.

  • Recent versions of rpm support "rich" (conditional) dependencies: http://rpm.org/user_doc/boolean_dependencies.html. Maybe we use Requires: openssl unless compat-openssl10 or something similar? From what I can tell Fedora 24 and later have rpm 4.13, the minimum version we need. Please note that F23 - the last version without a new-enough rpm package - was EOL'ed on 2016

  • What if we were to make a copy of the dotnet-runtime-deps-5.0.7-fedora.27-x64.rpm, name it something like dotnet-runtime-deps-5.0.7-fedora.34-x64.rpm and change the dependency to openssl from compat-openssl10 on that (only)? Will dnf/yum ignore the fedora.27 rpm and use the fedora.34 rpm that has an available dependency?

@allenatdecisiv
Copy link

allenatdecisiv commented Jul 13, 2021

Based on the comment from @omajid re: OpenSSL 1.1, I did an rpm install with --nodeps. The 5.0 runtime does appear to work for my use case of being able to run the utility "genie" to get systemd as pid 1 (in WSL2).

@steveharter
Copy link
Member

Should this be closed?

@allenatdecisiv
Copy link

@steveharter,

It looks like it, but the OpenSSL dependency is now missing. That might be a concern? I don't know if it is or isn't.

$ rpm -q --requires dotnet-runtime-deps-5.0-5.0.11-1.x86_64
libicu
krb5-libs
rpmlib(PayloadFilesHavePrefix) <= 4.0-1
rpmlib(CompressedFileNames) <= 3.0.4-1

$ grep '^NAME=\|^VERSION='  /etc/os-release
NAME="Fedora Remix for WSL"
VERSION="34"

@xtqqczze
Copy link
Contributor

@ashnaga This issue is stale, Fedora 34 reached end-of-life on 2022-06-07.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

5 participants