[Pkg-ime-devel] SCIM ABI transition in sid

Ming Hua minghua at rice.edu
Sat Aug 13 04:05:57 UTC 2005

This mail is about the ongoing SCIM ABI transition in sid.  You are
receiving this mail because one of your package depends on scim.  I'm
also cc:ing to pkg-ime-devel list, apologies to those who get

With kind sponsoring by Akira TAGOH, scim 1.4.1-1 was uploaded to sid
today, and is currently waiting for ftp master's approval.  Once it hits
the archive, all the IM engine packages in sid are going to stop
working, so I'd like to finish this transition as soon as possible.

The problem is mostly caused by the ABI change in scim libraries.  scim
1.0.2-3 ships /usr/lib/libscim-1.0.so.0 (and other similar dynamic
libraries) in binary package scim.  In scim 1.4.1-1, the SONAME for the
shared libraries are changed from 0 to 8, so we are having
/usr/lib/libscim-1.0.so.8 now.  All the packages compiled against old
scim will fail to find the libscim-1.0.so.0 library and therefore won't

To solve this issue, you need to recompile your package against the new
scim.  In new scim packages the development files for library is moved
from scim-dev to libscim-dev, so you need to change Build-Depends to
libscim-dev (>= 1.4.1).  One way to check that you've compiled against
the correct version of scim is that the ${shlibs:Depends} in you binary
package should give you a dependency on package libscim8.

You also need to make sure your build environment is up to date.  Most
importantly, you should have GCC 4.0 as the default compiler.  If your
package depends on other C++ libraries other than libscim-1.0 and
libstdc++, you need to make sure the other C++ libraries have also
finished C++ transition.  See the mail to debian-devel-announce for more
detail about C++ transition.

For the scim IM engine packages (scim-m17n, scim-chewing and
scim-hangul), if you changed the scim dynamic module install directory
(all my IM engine packages did) from /usr/lib/scim-1.0 to
/usr/lib/scim-1.0/1.0.0, you need to change that to
/usr/lib/scim-1.0/1.4.0 instead (these are done by a dpatch in the IM
engine packages I maintain, I've not checked other people's packages
yet), and have your binary package depend on scim (>= 1.4.1).

You may notice that the new scim package conflicts with all old IM
engine packages.  This is due to the shared libraries in the old scim
binary package.  Conflicts is the only way I can prevent users mixing
new scim and old IM engines.  So you probably need to remove all the old
IM engine pacakges before building the new ones.  Sorry for the
inconvenience.  Now that libraries are in their own package (libscim8),
future ABI transitions will be a bit smoother.


More information about the Pkg-ime-devel mailing list