On 2018-03-10 09:31 -0300, Herbert Fortes wrote:

> Em 09-03-2018 17:03, Sven Joachim escreveu:
>> On 2018-03-09 15:18 -0300, Herbert Fortes wrote:
>> 
>>> Hi Sven Joachim,
>>>
>>>>> My conclusion is that it is very risky to allow such combinations, and
>>>>> to rule them out I propose to change the package name of the cdk
>>>>> library, say to libcdk5a.  It would then have to build-depend on
>>>>> libncurses-dev (>= 6.1+20180210) to ensure that it is linked against
>>>>> libncurses6 and not libncurses5.  Of course this can only be uploaded
>>>>> to experimental for now, but should go to unstable when the ncurses
>>>>> transition starts there.
>>>
>>>
>>> I am OK with changing the name. But libcdk5a does not say 
>>> much about why the change.
>>>
>>> Since the package name will change because of SONAME of 
>>> libncurses, I thought to follow the SONAME of the library.
>> 
>> Well, the SONAME of the cdk library does not change with my proposal.
>> 
>>> libcdk5-6
>> 
>> If you like that better than libcdk5a, choose it.  Or any other name,
>> it's rather arbitrary anyway.
>> 
>>> But maybe this will cause misunderstanding. The change is
>>> on version 6.1+20180210.
>> 
>> That's why the build-dependency on libncurses-dev (>= 6.1+20180210) is
>> needed.
>> 
>> I am not sure we understand each other yet, but I'm happy to answer
>> questions.
>> 
>
> Good! I am searching for a name. And talk about it could
> help.
>
> cdk library had problems before (about name), and I belive
> the number "5" (cdk SONAME) was the choice to differ from the
> other package. That's what I remember.
>
>  - libcdk-java
>  - libcdk-perl
>  - libcdk5
>
> The "5" was accepted because the SONAME does not change much.

The "5" is there because it is the standard convention for shared
library packages: if you ship libfoo.so.5 in your package, the package
is supposed to be called libfoo5.  See the chapter in the Policy about
shared libraries.[1]

Now, the "chtype" change in ncurses changes the ABI of the cdk library,
and hence the package name must change to not break reverse dependencies
(e.g. gphoto2).  Ideally, the SONAME would also change, but this means
you would have to invent your own SONAME since upstream did not take it
into account.  Therefore I proposed to only change the package name,
from libcdk5 to libcdk5a (or any other name, it's really arbitrary).
This means that the reverse dependencies have to be upgraded in
lock-step, but since there are only three of them (cpm, libcdk-perl and
gphoto2), that looks manageable.

> The number "6" is from libncurses. If the two projects have
> a strong link, it could be used. But seeing the two numbers,
> which of them refers to what. I can put an explanation on 
> debian/README.Debian file. But maybe the name will be changed
> more than expected.

Well, you could use libcdk5nc6 or something like that to indicate that
the package name change is related to libncurses6, but there is no need
to explain this in a README.Debian, since shared libraries are usually
automatically installed as a dependency of some other package and not
for their own merits.

Cheers,
       Sven


1. https://www.debian.org/doc/debian-policy/#s-sharedlibs-runtime

Reply via email to