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-sdk-2.1 package for OpenSUSE is broken #3261
Comments
From @nguerrera on July 28, 2018 15:22 |
From @nguerrera on July 28, 2018 15:24 I assume there is a libicu package available for OpenSUSE that you can install to run without going to invariant mode where several features of the runtime will not work as you might expect. But I don't understand why the runtime package didn't pull it in for you. @wli3 Who's a good contact for a missing runtime dependency in OpenSUSE package? |
From @pavelbraginskiy on July 28, 2018 15:28 There is a libicu, but it has a different version number in the package name. |
From @nguerrera on July 28, 2018 15:52 @janvorli Is this an issue in coreclr locating libicu? I'm totally guessing here, but I saw in https://github.com/dotnet/coreclr/pull/15562/files that there is some special code to handle the binding. |
From @janvorli on July 29, 2018 17:15 @nguerrera this is a problem of the package. Coreclr can run with any libicu version higher or equal to 50, but the package that @pavelbraginskiy is trying to install refers to a version different from the one supported on the tumbleweed. It seems that our instructions describe single feed for opensuse 42.2, which cannot work for tubleweed. It is always possible to install the .tar.gz version that should work with any icu version installed. |
From @nguerrera on July 29, 2018 17:39 cc @leecow Should we recommend the .tar.gz for tumbleweed in the instructions or provide an additional feed there that can satisfy the libicu dependency? |
From @nguerrera on July 29, 2018 17:42 Reading again it seems we're manifesting that we need icu 52 when 50 or greater would work. Should we be changing the package to allow a lower version? |
|
I'm reluctant to produce an installer for Tumbleweed. Its rolling nature would have us chasing our tails keeping up with dependencies. Installing from tar.gz should be the plan but even that does not work at the moment. The libicu version available on Tumbleweed is libicu-suse61_1 and even after installing that, dotnet fails to locate what it believes is a valid ICU package. |
That is strange, that would indicate that there is something unexpected in the version 61.1. That version is still in the range of versions we scan. I can take a look over I'm back from my vacation in mid August. But of anyone else want to take a look now, it should be simple to find what's wrong by stepping through the code of the shim initialization code in icushim.cpp |
Could the official documentation for installing the SDK on OpenSuse be updated to say that currently only Leap is supported? |
It doesn't work with Leap 15.0. During install it screams about
Here is Leap info:
|
@janvorli Hello. Sorry for coming back to you with this. Maybe you had time to take a look at this? openSUSE is one of the most stable linux distros that I've worked with and it is a pity that dotnet does not work with it out of the box. |
@RamanBut-Husaim let me give it a try in a docker container to see what's going on. |
I've tried the 2.1.3 tarball in OpenSUSE Leap docker container and it seems to work fine. Here are the exact steps: zypper install icu
zypper install libopenssl1_0_0
zypper install wget
zypper install tar
mkdir ~/dotnet
cd ~/dotnet
wget https://dotnetcli.blob.core.windows.net/dotnet/Sdk/release/2.1.401/dotnet-sdk-latest-linux-x64.tar.gz
tar -xf dotnet-sdk-latest-linux-x64.tar.gz
cd ~
mkdir test
cd test
~/dotnet/dotnet new console
~/dotnet/dotnet run
However, I can confirm that on Tumbleweed it doesn't work - it cannot find the ICU. Looking into it. |
I have found the culprit on Tumbleweed - openSUSE has decided to add
When dotnet core looks for the ICU libraries, it tries various naming conventions used on different systems, but this one is completely unexpected. As a workaround, you can create the following symlinks, after that, dotnet worked just fine.
|
Note that since Tumbleweed is a rolling distro, the version part of the above mentioned names may change in the future. |
@janvorli Hello, thanks a lot for the update. Thanks, this helps! It could make sense to update the documentation with such approach. Looking at the
Not sure that this is the way to go across all other repos but is it possible to use this one instead of version specific? Thanks. |
@RamanBut-Husaim the non-versioned file comes from a dev package. If you have just the icu runtime package installed, you won't have it. I've created a PR for a fix to add for the case where the version is prefixed by "suse" too. |
cc @rakeshsinghranchi, @vivmishra Another note on this issue as it relates to Leap 15. Our OpenSUSE runtime-deps package is looking for libicu52_1 but libicu60_2 is what's available on the default Leap repos. I'll update the docs to call out the dependency requirement for Leap 15. |
Installing on LEAP is broken again, and I'd expect on TW also based on what has been posted in this Issue. The maintainers of the the install and package should consider using something like the Open Build Service (https://openbuildservice.org/) to build packages so that with a common source packages can be targeted at numerous distros and distro versions. Package builds can be automated so that for instance rolling releases like Tumbleweed are created automatically for each distro release. |
See https://github.com/dotnet/corefx/issues/42194, I can't build from source but the binaries work or so it seems. |
From @pavelbraginskiy on July 26, 2018 2:31
I don't know if this is the correct repo for this issue, but I can't think of a better place.
Steps to reproduce
Attempt to install .NET Core on OpenSUSE Tumbleweed following the instructions at https://www.microsoft.com/net/learn/get-started-with-dotnet-tutorial
Expected behavior
Actual behavior
Environment data
dotnet --info
output:dotnet --info
output after setting System.Globalization.Invariant:Copied from original issue: dotnet/cli#9735
The text was updated successfully, but these errors were encountered: