Bug 960738

Summary: libicu53_1 should be available for Leap as was for 13.2
Product: [openSUSE] openSUSE Distribution Reporter: Martin Koller <kollix>
Component: BasesystemAssignee: Dirk Mueller <dmueller>
Status: RESOLVED WONTFIX QA Contact: E-mail List <qa-bugs>
Severity: Normal    
Priority: P5 - None CC: jengelh, maint-coord, qantas94heavy
Version: Leap 42.1   
Target Milestone: ---   
Hardware: Other   
OS: Other   
Whiteboard:
Found By: --- Services Priority:
Business Priority: Blocker: ---
Marketing QA Status: --- IT Deployment: ---

Description Martin Koller 2016-01-05 16:05:02 UTC
Our (commercial) software is built for openSuse 13.2, which uses libicu53_1.
When I want to install the package also for the newer Leap 42.1 I can't do so since Leap only has the older libicu52_1.
It would really be helpful to at least have the one which is in the older openSuse version available also for Leap
Comment 2 Dirk Mueller 2016-01-07 09:51:46 UTC
How do you want to add this to Leap?
Comment 3 Jan Engelhardt 2016-01-07 10:01:52 UTC
>When I want to install the package also for the newer Leap 42.1 I can't do so since Leap only has the older libicu52_1.

You have to rebuild the software in any case, since any particular distribution and version thereof can have different ABIs of ICU. Tumbleweed for example has "56_1", Debian "56".

With an instance of Open Build Service, once set up, you can easily build for different distributions and versions.
Comment 4 Martin Koller 2016-01-07 11:47:23 UTC
(In reply to Dirk Mueller from comment #2)
> How do you want to add this to Leap?

Preferably it's available in one of the default repositories, so a customer of our software would just have to install Leap, then zypper install our_software.rpm

In other openSuse distributions there were e.g. compat* packages for older libstdc++ etc. libs. Having something like this would be great.
Comment 5 Martin Koller 2016-01-07 11:55:43 UTC
(In reply to Jan Engelhardt from comment #3)
> >When I want to install the package also for the newer Leap 42.1 I can't do so since Leap only has the older libicu52_1.
> 
> You have to rebuild the software in any case, since any particular
> distribution and version thereof can have different ABIs of ICU. Tumbleweed
> for example has "56_1", Debian "56".
> 
> With an instance of Open Build Service, once set up, you can easily build
> for different distributions and versions.

of course we could build the software for a multitude of Linux distributions, however you can imagine how much effort that would be (don't forget testing, patching, support, documentation, ...)
So we try to stick with currently 2 different distributions: RHEL and openSuse
Since our release cycle is not aligned with any of these, we have now the situation that we built the latest version with the latest openSuse at this point in time, but now even the download of an openSuse 13.2 ISO is very well hidden (you can't find it!), which is very sad!

I was really hoping that software developed and built for 13.2 would install without hassle with the next version.
Comment 6 Jan Engelhardt 2016-01-07 19:53:08 UTC
>I was really hoping that software developed and built for 13.2 would install without hassle with the next version.

Binary compatibility is in the hands of upstream. glibc libc.so.6, libGL.so.1, libX11.so.6, you name it. But not everyone does their job.
Comment 7 Dirk Mueller 2016-01-08 08:29:39 UTC
I think its not an unreasonable request to have a distribution be backward compatible to some extend to previous releases.
Comment 8 Jan Engelhardt 2016-01-08 10:14:00 UTC
>I think its not an unreasonable request to have a distribution be backward compatible to some extend to previous releases.

Though possible, problems with having two different library versions in the program address space (can happen if you link to an "old" libX and a "still-fresh" libY that is linked against a "new" libX) are well described.

It gets worse. On Debian 9, libraries even retained their SONAME, but an "old" program (D7/D8) passing a struct{std::string} to libX which passes the string to libY which plays with it, crashes (because std::string changed).

That latter may be an isolated case, but it shows just how bad things can turn.
Comment 9 Leonardo Chiquitto 2016-01-15 12:00:29 UTC
(In reply to Martin Koller from comment #0)
> Our (commercial) software is built for openSuse 13.2, which uses libicu53_1.
> When I want to install the package also for the newer Leap 42.1 I can't do
> so since Leap only has the older libicu52_1.
> It would really be helpful to at least have the one which is in the older
> openSuse version available also for Leap

Even though Leap 42.1 was released after 13.2, some packages are older in Leap (it's based on SLE-12 code stream, which is older than 13.2).

If your software can be built against icu52, I suggest to create builds specifically for Leap 42.1 instead of using the same packages for 13.2.

If it really needs features from icu53, you could create a compat-icu53 package and submit it to Factory. From there it could be then added to Leap.
Comment 10 Jan Engelhardt 2016-01-15 12:16:11 UTC
The package name would be "icu-53", not compat-icu53. However, if there is anything wanting a newer ICU, we would just submit the TW version into Leap, alleviating the need for a separate icu-53 package.
Comment 11 Karl Cheng 2017-12-08 10:14:27 UTC
There won't be any more releases in the Leap 42.x series, so this won't be implemented. Leap 15 should provide a newer version of ICU.