On Wed, May 16, 2018 at 10:42:50AM +0200, Francois Gouget wrote:
> libicu-dev is not multi-arch aware, causing the i386 version to conflict
> with the amd64 one which makes it impossible to install both. As a
> result the /usr/lib/i386-linux-gnu/libicu*.so symbolic links are missing
> so that developping 32 bit applications using this library is
> impossible on a 64 bit system.

This is correct. The problem here is that libicu-dev ships icu-config.
The behaviour of icu-config is architecture-dependent, but its path is
not. There is no way to have it behave correctly for two architectures
simultaneously. As long as icu-config is shipped, it cannot be
coinstalled. That puts us between a rock and a hard place.

> The lack of multi-arch support in libicu-dev also breaks multi-arch
> support in the following packages: fis-gtm-6.3-003a libboost-regex1.62-dev
> libcdr-dev libe-book-dev libharfbuzz-dev libical-dev libmspub-dev
> libvisio-dev libxslt1-dev. So the impact is quite wide ranging.

icu-config is deprecated upstream already, but still used in a variety
of downstream packages including libreoffice, qtwebkit-opensource-src,
libxml2, chromium-browser and many more. The impact of removinig
icu-config has worse consequences. For the time being, fixing this is
impractical.

On the other hand, this tells us how to fix the issue: Make packages
stop using icu-config. Use pkg-config icu instead. When you send
patches, I suggest that you add a "block 898820 by $yourbug" to track
progress.

Another way to make a dent is tracking the size of the problem: Perform
an archive rebuild with icu-config removed and diff against a regular
archive rebuild. That'll tell us which packages need fixing. One could
use sbuild --starting-build-commands="rm /usr/bin/icu-config" to do
that.

Thanks for your help

Helmut

Reply via email to