Skip to content

Debian 11 - allow installation against libicu67 #43052

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

Closed
nzbart opened this issue Oct 5, 2020 · 20 comments
Closed

Debian 11 - allow installation against libicu67 #43052

nzbart opened this issue Oct 5, 2020 · 20 comments
Milestone

Comments

@nzbart
Copy link

nzbart commented Oct 5, 2020

I see that there is a list of known libicu versions, aptly named KnownLibIcuVersion. Is it possible to add libicu67 to the list so that dotnet can be installed on Debian Testing?

Currently, this is the error I get when trying to install:

apt-get install -y dotnet-sdk-2.1 dotnet-sdk-3.1 azure-cli code
Reading package lists...
Building dependency tree...
Reading state information...
Some packages could not be installed. This may mean that you have
requested an impossible situation or if you are using the unstable
distribution that some required packages have not yet been created
or been moved out of Incoming.
The following information may help to resolve the situation:
The following packages have unmet dependencies:
 dotnet-runtime-deps-2.1 : Depends: libicu but it is not installable or
                                    libicu66 but it is not installable or
                                    libicu65 but it is not installable or
                                    libicu63 but it is not installable or
                                    libicu60 but it is not installable or
                                    libicu57 but it is not installable or
                                    libicu55 but it is not installable or
                                    libicu52 but it is not installable
 dotnet-runtime-deps-3.1 : Depends: libicu but it is not installable or
                                    libicu66 but it is not installable or
                                    libicu65 but it is not installable or
                                    libicu63 but it is not installable or
                                    libicu60 but it is not installable or
                                    libicu57 but it is not installable or
                                    libicu55 but it is not installable or
                                    libicu52 but it is not installable
E: Unable to correct problems, you have held broken packages.

This Dockerfile reproduces the issue:

FROM debian:testing-20200908
ARG DEBIAN_FRONTEND=noninteractive
RUN apt-get update
RUN apt-get install -y wget
RUN wget https://packages.microsoft.com/config/debian/10/packages-microsoft-prod.deb -O packages-microsoft-prod.deb
RUN dpkg -i packages-microsoft-prod.deb
RUN apt-get update; \
  apt-get install -y apt-transport-https && \
  apt-get update && \
  apt-get install -y dotnet-sdk-3.1

Build with:

sudo docker build -t dotnetinstall .
@Dotnet-GitSync-Bot Dotnet-GitSync-Bot added area-Infrastructure-libraries untriaged New issue has not been triaged by the area owner labels Oct 5, 2020
@ghost
Copy link

ghost commented Oct 5, 2020

Tagging subscribers to this area: @safern, @ViktorHofer
See info in area-owners.md if you want to be subscribed.

@ghost
Copy link

ghost commented Oct 5, 2020

Tagging subscribers to this area: @tarekgh, @safern, @krwq
See info in area-owners.md if you want to be subscribed.

@safern safern removed area-Infrastructure-libraries untriaged New issue has not been triaged by the area owner labels Oct 5, 2020
@safern safern self-assigned this Oct 5, 2020
@safern safern added this to the 5.0.0 milestone Oct 5, 2020
@safern
Copy link
Member

safern commented Oct 5, 2020

@tarekgh @ericstj I guess we would need to backport this to 2.x, 3.x and 5.0?

@tarekgh
Copy link
Member

tarekgh commented Oct 5, 2020

Is there a way to avoid listing the version numbers in the dependencies? I am guessing we'll need to do that again with new ICu versions?

@tarekgh
Copy link
Member

tarekgh commented Oct 5, 2020

by the way, I am still seeing this infrastructure issue more than globalization :-)

@tarekgh
Copy link
Member

tarekgh commented Oct 5, 2020

@tarekgh
Copy link
Member

tarekgh commented Oct 5, 2020

@nzbart what version of Debian you have?

@nzbart
Copy link
Author

nzbart commented Oct 5, 2020

@tarekgh For day-to-day development, I run Debian Testing (what will be Debian 11) so that I have the most recent versions of the O/S and software. I deploy to Debian 10 stable.

@tarekgh
Copy link
Member

tarekgh commented Oct 5, 2020

it looks according the doc https://docs.microsoft.com/en-us/dotnet/core/install/linux-debian we are not supporting Debian 11 yet.

CC @dagood

@nzbart
Copy link
Author

nzbart commented Oct 5, 2020

@tarekgh I realise that official Debian 11 support will only come several months after official release of Debian 11. Due to the infrequent (around once every two years) release cycle of Debian stable versions, it'd be great if it was still possible to install and run on the latest version - maybe via a beta channel or similar? Not many developers will be running the stable version of Debian other than for production deployment.

As it currently stands, it's looking like this issue will prevent the installation via apt-get of the dotnet tooling for Debian based distros (except Ubuntu) until some time near the end of 2021 or beginning of 2022. The current situation is that we either need to manually download and install the binaries (and remember to manually update them) or use the snap version, which appears to be poorly supported by tooling such as Rider and VS Code.

@tarekgh
Copy link
Member

tarekgh commented Oct 5, 2020

@nzbart I am not objecting to do something here. I support unblocking Debian 11 usage.

@dagood @safern could you advise what need to be done here? I marked this issue as release blocking but please advise if this is not the case.

@dagood
Copy link
Member

dagood commented Oct 5, 2020

This is an area-Setup issue since it's specifically about the Debian package dependencies. (If there were a problem at runtime when libicu67 is installed, then I suppose it'd be area-System.Globalization.)

For context, the linux-x64 .tar.gz extract/use workflow works right now on Debian 11: dotnet/source-build#782 (comment).


The way it normally works is that libicu67 will get in the list at some point before Debian 11 is released, or on the .NET servicing release after Debian 11 is released. IMO it's fine to get it in early. This dependency is part of an "or" list, so it doesn't negatively impact other distros/versions.

Keep in mind that it'll only take effect on the next servicing release after merging a PR, because we only build/release new runtime-deps packages as part of a servicing release. (I think that we should decouple runtime-deps from servicing releases and opened this proposal earlier this year: #35672.)

I'm not in area-Setup anymore BTW 😄 /cc @dleeapho @NikolaMilosavljevic @leecow

@dagood dagood removed this from the 5.0.0 milestone Oct 5, 2020
@dagood dagood added the untriaged New issue has not been triaged by the area owner label Oct 5, 2020
@dagood
Copy link
Member

dagood commented Oct 5, 2020

Is there a way to avoid listing the version numbers in the dependencies? I am guessing we'll need to do that again with new ICu versions?

A few ways:

  • Get .NET into Debian proper. 🚀 .NET Core in Linux Distro Repositories source-build#782
  • Convince Debian to start naming this package libicu (or provide both names) so we can get off this libicuXX treadmill.
  • Build a separate dotnet-runtime-deps for every version of Debian (and Ubuntu, etc.). But this just makes everything more complex and there are even more lists.

@jmp75
Copy link
Contributor

jmp75 commented Oct 6, 2020

Convince Debian to start naming this package libicu (or provide both names) so we can get off this libicuXX treadmill.

This sounds a very reasonable request to the debian package manager. In my very shallow understanding of package design if libicu versions are backward compatible having a libicu package pointing to "the latest" is a good thing.

dotnet/source-build#782 would be fantastic. Am not qualified to do it but would be glad to contribute/test.

@dagood
Copy link
Member

dagood commented Oct 6, 2020

This sounds a very reasonable request to the debian package manager. In my very shallow understanding of package design if libicu versions are backward compatible having a libicu package pointing to "the latest" is a good thing.

Come to think about it, as far as I know, nobody's ever directly asked. 😄 If that happens, our packages will automatically start working right away because we already include libicu as an option.

@safern safern removed their assignment Oct 6, 2020
@safern
Copy link
Member

safern commented Oct 6, 2020

It seems like this is a little more convoluted, so I removed my assignment in the meantime to wait for the area-Setup owners to chime in. Thanks, @tarekgh and @dagood

@NikolaMilosavljevic
Copy link
Member

@NikolaMilosavljevic , please explore asking Debian package maintainer to add unversioned libicu package to point at latest included in distro.

Otherwise wait on Debian 11 release to add support in deps packages.

@NikolaMilosavljevic NikolaMilosavljevic added this to the 6.0.0 milestone Oct 7, 2020
@NikolaMilosavljevic NikolaMilosavljevic changed the title Allow installation against libicu67 Debian 11 - allow installation against libicu67 Oct 7, 2020
@NikolaMilosavljevic NikolaMilosavljevic removed the untriaged New issue has not been triaged by the area owner label Oct 7, 2020
@NikolaMilosavljevic
Copy link
Member

Fixed with linked PR.

@dagood
Copy link
Member

dagood commented Dec 15, 2020

Any luck on the forward-thinking part?

@NikolaMilosavljevic , please explore asking Debian package maintainer to add unversioned libicu package to point at latest included in distro.

@NikolaMilosavljevic
Copy link
Member

Any luck on the forward-thinking part?

@NikolaMilosavljevic , please explore asking Debian package maintainer to add unversioned libicu package to point at latest included in distro.

We are tracking that task with #43419

@ghost ghost locked as resolved and limited conversation to collaborators Jan 15, 2021
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Projects
None yet
Development

No branches or pull requests

7 participants