Bug#434499: balsa: Workaround found : downgrade gmime2.2 to 2.9

Loïc Minier lool at dooz.org
Mon Aug 27 19:37:10 UTC 2007


On Fri, Aug 24, 2007, Sven Arvidsson wrote:
> Anyway, between 2.2.9 and 2.2.10, strcasecmp and strncasecmp was
> removed. In 2.2.9 they don't show up in any header file, but do show up
> on an objdump run (if I haven't misunderstood, this should give a list
> of public symbols); 
>         $ objdump -T libgmime-2.0.so.2.2.9 | grep .text
>         [...]
>         0000ea20 g    DF .text  000000ac  Base        strncasecmp
>         [...]
>         0000ead0 g    DF .text  00000093  Base        strcasecmp
> Is this ABI breakage?

 It's an ABI change, but it's more a bug fix than an ABI breakage;
 these functions should never have been exported, and I can imagine they
 would have caused bugs in the past.  Perhaps some programs actually use
 strncasecmp and strcasecmp and were linked against libgmime instead of
 libc and started crashing when libgmime didn't have the symbols
 anymore?  In this case, we should rebuild such packages.

 Do you think you could build a list of such packages?  Any package with
 a -lgmime and a binary referencing strncasecmp or strcasecmp is a
 candidate, so you could for example write a small shell script to:
 1) search packages build-depending on libgmime-dev (recursively, that
 is packages build-depending on something depending on libgmime-dev
 should be included)
 2) download the .deb files of such packages for i386
 3) run objdump on all binaries of the .deb files and search for
 strcasecmp or strncasecmp

 The results could be sent to the release team to schedule bin NMUs
 (rebuilds).

 If the list in 1) is small, you could skip the next steps and request
 all packages to be rebuilt.

-- 
Loïc Minier





More information about the pkg-gnome-maintainers mailing list