-
Notifications
You must be signed in to change notification settings - Fork 5k
Higher version of libicu (6x) installed on OpenSuSE Leap than accepted by dotnet-runtime #3523
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
Comments
Do you have a suggestion on how to do this? The issue I see is that the ICU package name includes the version, e.g. Here's this dependency, FWIW: https://github.com/dotnet/core-setup/blob/19120e4565130fa36d0fa9d5db059c1247c01946/src/pkg/packaging/rpm/dotnet-runtime-deps-rpm_config_opensuse.42-x64.json#L37 From the os-release info above, we might need to handle OpenSUSE 15.0 too, as well as 42? I know something interesting happened with these versions recently, will need to understand that better before taking action. @leecow thoughts?
Done. |
Yes, OpenSUSE "re-engineered" their versioning to align their Leap channel (slow moving stable) with SLES. 15.0 is the next version after 42.3 and we need to support it. |
@dagood I am seeing 2 issues with ICU dependency:
For the first one, is there a way the setup can handle such case? For the second one, I think this will depend if we support such distro and if we need to update the dependency on the supported distro. but at least we may want to give option to the users if they can install ICU manually, our setup can succeed at that time. I now the issue can be more complicated than what I simplify here, I just wanted to share my thoughts to reduce such reports as I am seeing we started to get many of them for same issue. And thanks for your follow up and prompt replies. |
It seems that RPM allows you to specify dependency in way that would work by saying you require ICU >= 50.1. I am no RPM expert, just googled it here: https://rpm.org/user_doc/dependencies.html |
Interesting, I hadn't noticed the Running the install command tells me
These are the extra files:
If this is fine, then we should certainly depend on |
I realized I can look at the advertised package info:
@leecow, is it worth including the 630.3 KiB of Is openSUSE commonly used to host microservices, or other situations the extra size has particular impact? For comparison, we are in a similar situation with our Debian and Ubuntu I view this change as a workaround for some distros that only make (Linking ICU statically would be another way around this, but that's not going to happen: https://github.com/dotnet/coreclr/issues/5853.) |
Side point, in the near future we may need to have something like preferred ICU version in addition to min ICU version. I mean if the setup can install the preferred version or later that will be great. otherwise the setup want to ensure at least the min version is available. I am telling that because in May 1, 2019 Japan is going to have a new era in their calendar. The new era will be supported by the new ICU version which would be the preferred version for us. if we don't have this mechanism in the setup, we'll have to advise people to manually upgrade the ICU on their machines which is not a good experience to users. |
Or we can have the setup always target the greatest ICU version available for the distro. |
In most major distros, the major.minor ICU version is tied to the distro version. There are only a few distros with rolling versions of packages. |
Maybe you know better here but I am wondering such distros don't allow installing higher versions if it is available? like doing something
and if it fail we'll just fallback to whatever version we have today. my point is try to install the higher version and then fallback if we couldn't. |
The thing is that they never make a newer version available for a specific version of the distro. So for example, Ubuntu 14.04 carries libicu52, Ubuntu 16.04 libicu55 etc. They were released with those versions and stick with it. |
I noticed this line in our setup instructions:
It turns out that even though the package is named
I tried it out, and we can actually depend on
(This might be unique to openSUSE or some family of distros. For Debian 9, at least, So, for this issue, we should change the openSUSE 42.0 runtime-deps package dependency from |
Maybe it is specific to distros using RPM packages (just guessing). |
Agreed with trying to update the dependency to just 'libicu'. If you could hack an rpm and a deb together, I can do a local test easily enough. |
@omajid to chime in on the premise. |
I looked through the RPM based distros (RHEL 7, 8, Fedora 29, 30 OpenSUSE Leap 15 and Tumbleweed). All of these have a real package or package providing Debian and friends don't seem to have anything equivalent that I could see. But I am not familiar with debian, so I may just have missed something. |
Closing, this was done a while ago, and it's in 2.1.12. I haven't had a chance myself to do a fuller validation of the results, but there haven't been any reports of problems, and if any turn up, I'd expect the best way to handle them is by filing new issues. |
I still get the error message that dotnet wants to downgrade libicu on @openSUSE 15.1:
You may not notice that on a fresh VM install, but if you run updates it will break. |
That error's a little weirder than that, it seems to me. Machine translating gives me:
Why is @Mailaender can you please file a new issue in dotnet/runtime? I can take a look later. |
It could have something to do with https://build.opensuse.org/request/show/764336. The easiest solution might be to Requires: icu which itself depends on the correct version of |
I noticed that earlier at https://github.com/dotnet/core-setup/issues/5628#issuecomment-478702149 --yeah, reluctant because it brings in stuff we don't use. We'll probably have to start building (more) version-specific packages. |
@git-gone commented on Sat Mar 23 2019
Problem encountered on https://dotnet.microsoft.com/learn/dotnet/hello-world-tutorial/install
Operating System: Linux openSUSE Leap
installing as per instructions on page above fail at step to install .net SDK, Added all Microsoft public keys and downloaded repo files as recommended on the web page whose URL appears above
In OpenSuSE, there appears to beno RPM package that provides libicu at version 52. Is it likely that a version of dotnet-runtime will be available for download that will be accept libicu6x in place of libicu52?
Many thanks in advance & best Regards
git-gone
@leecow commented on Wed Mar 27 2019
Can you share the output of
cat /etc/os-release
? Here's what I see on a fresh image ...@SvenjaReissaus commented on Sat Mar 30 2019
I am having the same issue here, there's a higher version of libicu already installed:
$ zypper install libicu
Made a clean install of openSUSE Leap 15.0:
$ cat /etc/os-release
And the repository search:
$ zypper search libicu
@karelz commented on Sat Mar 30 2019
@tarekgh @janvorli any thoughts or advice?
@SvenjaReissaus commented on Sat Mar 30 2019
Perhaps this workaround from https://github.com/dotnet/core-setup/issues/4413#issuecomment-417505779 is one you could take a look at. I didn't tried it, as I installed ignoring the warning (yet it does not seems to break nor print warnings) but I'll give it a try.
$ dotnet --info
@tarekgh commented on Sun Mar 31 2019
CC @rakeshsinghranchi
Why we have hard dependency on ICU 52? if the system already have any more recent version of ICU, we should be ok. it looks the package dependency should get fixed.
@karelz commented on Sun Mar 31 2019
@tarekgh note that @rakeshsinghranchi's responsibilities in the space were transfered to @dagood
@tarekgh commented on Sun Mar 31 2019
thanks @karelz for the info. @dagood may help then here. should this be moved to core-setup?
The text was updated successfully, but these errors were encountered: