Dependency issues with libunwind-13

Bug #1984450 reported by Jarl Gullberg
28
This bug affects 5 people
Affects Status Importance Assigned to Milestone
dotnet6 (Ubuntu)
Fix Released
Medium
Miriam España Acebal
Jammy
Fix Released
Medium
Miriam España Acebal
Kinetic
Fix Released
Medium
Miriam España Acebal

Bug Description

Currently, dotnet-runtime-6.0 from jammy-updates cannot be installed on a system that also has libc++1 installed, due to it taking a hard dependency on libunwind-13 (which conflicts with libc++1's libc++1-14, which has a hard dependency on libunwind-14).

This contrasts with the Microsoft-provided packages, which do not have any dependencies on any libunwind packages at all.

Revision history for this message
Miriam España Acebal (mirespace) wrote (last edit ):

Hi Jarl,

Thank you for taking the time to report this and helping to make Ubuntu better.

Yes, Ubuntu's dotnet-runtime-6.0 package depends on libunwind-13 and MS-provided package doesn't. The reason behind this is that libunwind is already present as a package in the Ubuntu series (libunwind-{12,13,14} in Jammy in fact), so any bug/security
fix that may arise upstream can be incorporated into the version of libunwind that Ubuntu provides, thus making Ubuntu more stable and more maintainable.

While we were packaging and building dotnet6-runtime, we found some issues with using libunwind-14 and so libunwind-13 was chosen instead.

Upgrading the dependency to libunwind-14 for the next release needs to be discussed and formal tested, but I've already done a building attempt based on what you expose (the results are promising):

root@Jdotnet1983380:~# apt-cache depends dotnet-runtime-6.0
dotnet-runtime-6.0
  Depends: dotnet-hostfxr-6.0
  Depends: libicu70
  Depends: libunwind-14
  Depends: libc6
  Depends: libgcc-s1
  Depends: liblttng-ust1
  Depends: libssl3
  Depends: libstdc++6
  Depends: libunwind8
  Depends: zlib1g
root@Jdotnet1983380:~# dotnet --version
6.0.108
root@Jdotnet1983380:~# dotnet --info
.NET SDK (reflecting any global.json):
 Version: 6.0.108
 Commit: 4e3a463d2b

Runtime Environment:
 OS Name: ubuntu
 OS Version: 22.04
 OS Platform: Linux
 RID: ubuntu.22.04-x64
 Base Path: /usr/lib/dotnet/dotnet6-6.0.108/sdk/6.0.108/

global.json file:
  Not found

Host:
  Version: 6.0.8
  Architecture: x64
  Commit: 55fb7ef977

.NET SDKs installed:
  6.0.108 [/usr/lib/dotnet/dotnet6-6.0.108/sdk]

.NET runtimes installed:
  Microsoft.AspNetCore.App 6.0.8 [/usr/lib/dotnet/dotnet6-6.0.108/shared/Microsoft.AspNetCore.App]
  Microsoft.NETCore.App 6.0.8 [/usr/lib/dotnet/dotnet6-6.0.108/shared/Microsoft.NETCore.App]

Download .NET:
  https://aka.ms/dotnet-download

Learn about .NET Runtimes and SDKs:
  https://aka.ms/dotnet/runtimes-sdk-info
root@Jdotnet1983380:~#

For the above reasons, I'm going to mark this as "Opinion/Wishlist". If you disagree or have new information, we would be grateful if you could please add a comment stating why and then change the status of the bug to 'New'.

Thanks again for your time on this.

Changed in dotnet6 (Ubuntu):
status: New → Opinion
importance: Undecided → Wishlist
Revision history for this message
Jarl Gullberg (jarl-gullberg) wrote :

I wouldn't call this a wishlist issue; it's a blocking problem for coinstallation with several other applications - Discord being one such example. You cannot install the Ubuntu-provided .NET packages at the same time as these other softwares.

Changed in dotnet6 (Ubuntu):
status: Opinion → New
Revision history for this message
Launchpad Janitor (janitor) wrote :

Status changed to 'Confirmed' because the bug affects multiple users.

Changed in dotnet6 (Ubuntu):
status: New → Confirmed
Revision history for this message
Robin Munn (rmunn) wrote :

Also tracked upstream at https://github.com/dotnet/core/issues/7699

And this is definitely a blocker, not a wishlist item, as you can see by the many comments on the upstream GitHub issue.

Changed in dotnet6 (Ubuntu Jammy):
assignee: nobody → Miriam España Acebal (mirespace)
Changed in dotnet6 (Ubuntu Kinetic):
assignee: nobody → Miriam España Acebal (mirespace)
Changed in dotnet6 (Ubuntu Jammy):
status: New → In Progress
Changed in dotnet6 (Ubuntu Kinetic):
status: Confirmed → In Progress
Changed in dotnet6 (Ubuntu Kinetic):
importance: Wishlist → Medium
Changed in dotnet6 (Ubuntu Jammy):
importance: Undecided → Medium
Revision history for this message
Miriam España Acebal (mirespace) wrote (last edit ):
Download full text (17.2 KiB)

Removing the dependency on Kinetic: Testing it with steps from bug #1983380: All OK

#Doing upgrade, checking installation and common commands (info, versio, sdk checks): All OK

root@K-dotnet-pristine-tar:~/109# dpkg -l | grep dotnet
ii dotnet-apphost-pack-6.0 6.0.108-0ubuntu1 amd64 Internal - targeting pack for Microsoft.NETCore.App 6.0
ii dotnet-host 6.0.108-0ubuntu1 amd64 dotNET host command line
ii dotnet-hostfxr-6.0 6.0.108-0ubuntu1 amd64 dotNET host resolver
ii dotnet-runtime-6.0 6.0.108-0ubuntu1 amd64 dotNET runtime
ii dotnet-sdk-6.0 6.0.108-0ubuntu1 amd64 dotNET 6.0 Software Development Kit
ii dotnet-targeting-pack-6.0 6.0.108-0ubuntu1 amd64 Internal - targeting pack for Microsoft.NETCore.App 6.0
ii dotnet-templates-6.0 6.0.108-0ubuntu1 amd64 dotNET 6.0 templates
ii dotnet6 6.0.108-0ubuntu1 amd64 dotNET CLI tools and runtime
root@K-dotnet-pristine-tar:~/109# apt upgrade dotnet6
Reading package lists... Done
Building dependency tree... Done
Reading state information... Done
Calculating upgrade... Done
The following packages were automatically installed and are no longer required:
g++-11 inetutils-telnet libdns-export1110 libisc-export1105 libstdc++-11-dev libunwind-13 telnet
Use 'apt autoremove' to remove them.
The following packages have been kept back:
fwupd libfwupd2
The following packages will be upgraded:
aspnetcore-runtime-6.0 aspnetcore-targeting-pack-6.0 dotnet-apphost-pack-6.0 dotnet-host dotnet-hostfxr-6.0 dotnet-runtime-6.0 dotnet-sdk-6.0
dotnet-targeting-pack-6.0 dotnet-templates-6.0 dotnet6 netstandard-targeting-pack-2.1
11 upgraded, 0 newly installed, 0 to remove and 2 not upgraded.
Need to get 122 MB of archives.
After this operation, 606 kB of additional disk space will be used.
Do you want to continue? [Y/n]

[…]

Fetched 122 MB in 12s (10.4 MB/s)
(Reading database ... 59776 files and directories currently installed.)
Preparing to unpack .../00-dotnet-host_6.0.109-0ubuntu1_amd64.deb ...
Unpacking dotnet-host (6.0.109-0ubuntu1) over (6.0.108-0ubuntu1) ...
Preparing to unpack .../01-dotnet-hostfxr-6.0_6.0.109-0ubuntu1_amd64.deb ...
Unpacking dotnet-hostfxr-6.0 (6.0.109-0ubuntu1) over (6.0.108-0ubuntu1) ...
Preparing to unpack .../02-dotnet-runtime-6.0_6.0.109-0ubuntu1_amd64.deb ...
Unpacking dotnet-runtime-6.0 (6.0.109-0ubuntu1) over (6.0.108-0ubuntu1) ...
Preparing to unpack .../03-aspnetcore-runtime-6.0_6.0.109-0ubuntu1_amd64.deb ...
Unpacking aspnetcore-runtime-6.0 (6.0.109-0ubuntu1) over (6.0.108-0ubuntu1) ...
Preparing to unpack .../04-aspnetcore-targeting-pack-6.0_6.0.109-0ubuntu1_amd64.deb ...
Unpacking aspnetcore-targeting-pack-6.0 (6.0.109-0ubuntu1) over (6.0.108-0ubuntu1) ...
Preparing to unpack .../05-dotnet-apphost-pack-6.0_6.0.109-0ubuntu1_amd64.deb ...
Unpacking dotnet-apphost-pack-6.0 (6.0.109-0ubuntu1) o...

Revision history for this message
Miriam España Acebal (mirespace) wrote :
Download full text (10.0 KiB)

# Testing the fix on Jammy (same tests that for Kinetic): All OK

# Upgrading: checking installation and common commands (info, version, sdk checks): All OK

root@Jdotnet1983380:~# apt list --upgradable | grep -E 'dotnet|asp|targeting'

WARNING: apt does not have a stable CLI interface. Use with caution in scripts.

aspnetcore-runtime-6.0/jammy 6.0.109-0ubuntu1~22.04.1 amd64 [upgradable from: 6.0.108-0ubuntu1~22.04.1]
aspnetcore-targeting-pack-6.0/jammy 6.0.109-0ubuntu1~22.04.1 amd64 [upgradable from: 6.0.108-0ubuntu1~22.04.1]
dotnet-apphost-pack-6.0/jammy 6.0.109-0ubuntu1~22.04.1 amd64 [upgradable from: 6.0.108-0ubuntu1~22.04.1]
dotnet-host/jammy 6.0.109-0ubuntu1~22.04.1 amd64 [upgradable from: 6.0.108-0ubuntu1~22.04.1]
dotnet-hostfxr-6.0/jammy 6.0.109-0ubuntu1~22.04.1 amd64 [upgradable from: 6.0.108-0ubuntu1~22.04.1]
dotnet-runtime-6.0/jammy 6.0.109-0ubuntu1~22.04.1 amd64 [upgradable from: 6.0.108-0ubuntu1~22.04.1]
dotnet-sdk-6.0/jammy 6.0.109-0ubuntu1~22.04.1 amd64 [upgradable from: 6.0.108-0ubuntu1~22.04.1]
dotnet-targeting-pack-6.0/jammy 6.0.109-0ubuntu1~22.04.1 amd64 [upgradable from: 6.0.108-0ubuntu1~22.04.1]
dotnet-templates-6.0/jammy 6.0.109-0ubuntu1~22.04.1 amd64 [upgradable from: 6.0.108-0ubuntu1~22.04.1]
dotnet6/jammy 6.0.109-0ubuntu1~22.04.1 amd64 [upgradable from: 6.0.108-0ubuntu1~22.04.1]
netstandard-targeting-pack-2.1/jammy 6.0.109-0ubuntu1~22.04.1 amd64 [upgradable from: 6.0.108-0ubuntu1~22.04.1]

root@Jdotnet1983380:~# dpkg -l | grep libunwind
ii libunwind-13:amd64 1:13.0.1-2ubuntu2.1 amd64 production-quality unwinder
ii libunwind8:amd64 1.3.2-2build2 amd64 library to determine the call-chain of a program - runtime

root@Jdotnet1983380:~# apt upgrade dotnet6
Reading package lists... Done
Building dependency tree... Done
Reading state information... Done
Calculating upgrade... Done
The following package was automatically installed and is no longer required:
  libunwind-13
Use 'apt autoremove' to remove it.
The following packages have been kept back:
  fwupd libfwupd2
The following packages will be upgraded:
  aspnetcore-runtime-6.0 dotnet-apphost-pack-6.0 dotnet-host dotnet-hostfxr-6.0 dotnet-runtime-6.0 dotnet-sdk-6.0
  dotnet-targeting-pack-6.0 dotnet-templates-6.0 dotnet6 netstandard-targeting-pack-2.1
10 upgraded, 0 newly installed, 0 to remove and 2 not upgraded.
[...]

root@Jdotnet1983380:~# dpkg -l | grep -E 'NET|ASP'
ii aspnetcore-runtime-6.0 6.0.109-0ubuntu1~22.04.1 amd64 ASP dotNET Core runtime
ii dotnet-apphost-pack-6.0 6.0.109-0ubuntu1~22.04.1 amd64 Internal - targeting pack for Microsoft.NETCore.App 6.0
ii dotnet-host 6.0.109-0ubuntu1~22.04.1 amd64 dotNET host command line
ii dotnet-hostfxr-6.0 6.0.109-0ubuntu1~22.04.1 amd64 dotNET host resolver
ii dotnet-runtime-6.0 6.0.109-0ubuntu1~22.04.1 amd64 dotNET runtime
ii dotnet-sdk-6.0 6.0.109-0ubuntu1~22.04.1 amd64 dotNET 6.0 ...

Revision history for this message
Ian Constantin (iconstantin) wrote (last edit ):

6.0.109-0ubuntu1~22.04.1 was published for jammy today which removes the pinned libunwind-13 dependency for dotnet6. (Change also present in 6.0.109-0ubuntu1 for kinetic)

Quick tests from my end showed that the dependency conflicts when installing discord (and other packages that may have an eventual dependency on libunwind-14) should be resolved.

Let us know if you have any issues we may be able to help with before we close the bug.

Changed in dotnet6 (Ubuntu Jammy):
status: In Progress → Fix Released
Changed in dotnet6 (Ubuntu Kinetic):
status: In Progress → Fix Released
To post a comment you must log in.
This report contains Public information  
Everyone can see this information.

Other bug subscribers

Remote bug watches

Bug watches keep track of this bug in other bug trackers.