There is a new ncurses version in experimental which changes the soname
of the libraries from 5 to 6. One notable change between libncurses5
and libncurses6 is that the "chtype" data type has changed from unsigned
long to unsigned int. This affects the cdk library, which makes use of
chtype all over the place.
If libcdk5 has been rebuilt against libncurses6 but the application
using it has not, or vice versa, they disagree about what "chtype" is,
and bad things can happen on 64-bit architectures, where
sizeof(long) != sizeof(int).
For testing purposes, I have built the example programs in libcdk5-doc
on amd64 with libncurses6 and the libcdk5 library which is still linked
against libncurses5. While most of them seem to work, I got a segfault
in demos/clock and a bus error in buttonbox_ex.
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.
-- System Information:
Debian Release: buster/sid
APT prefers unstable
APT policy: (500, 'unstable'), (101, 'experimental')
Architecture: i386 (x86_64)
Foreign Architectures: amd64
Kernel: Linux 4.15.7-nouveau (SMP w/2 CPU cores)
Locale: LANG=de_DE.UTF-8, LC_CTYPE=de_DE.UTF-8 (charmap=UTF-8),
Shell: /bin/sh linked to /bin/dash
Init: systemd (via /run/systemd/system)
Versions of packages libcdk5 depends on:
ii libc6 2.27-1
ii libncurses5 6.1+20180210-1
ii libtinfo5 6.1+20180210-1
libcdk5 recommends no packages.
libcdk5 suggests no packages.
-- no debconf information