Control: tags -1 = patch > Indeed, several downstream projects don't follow ICU development and > still use icu-config for library detection. ICU upstream doesn't force > the pkg-config library detection either. That's why I still need to > ship icu-config which is the barrier of co-installation of multi-arch > packages.
Whether to ship icu-config is not a matter of this bug. That's tracked and discussed in #898820. It is only relevant in so far as it reduces the solution space of this bug. This bug solely seeks making icu cross buildable (not bootstrappable or coinstallable). > The way of dependency is intentional. Not all ICU dependent programs > need icu-le-hb but all icu-le-hb dependent packages need ICU. The dependency is not changed by my patch. Dropping the dependency is tracked and discussed in #898571 and #898806. I only referenced them here to explain the approach taken by my patch: It makes the additional native build pass (that only happens for cross building) build without le-hb. The cross build pass (that integrates with le-hb) does not depend on the native build pass integrating with le-hb. > I would like to. Of course, I can do an intermediate step to break > the dependency cycle. But the best would be to drop icu-le-hb for > being unmaintained and mainly unneeded. Only OpenTTD uses it and its > maintainers are noted even via Debian[1] that icu-le-hb and its > functionality is long deprecated. I'm in favour of the long-term solution without intermediate solutions provided that it is ready in time for buster. > As noted above, it would break OpenTTD big when cross building. You > need to manually bootstrap ICU as I had to with native builds. Yes, > first build it without icu-le-hb and remove the layoutex library from > the installation. Then build icu-le-hb with the new ICU and install > it. Then you can build without disabling the layoutex library and be > able to build OpenTTD as well. This I remove the patch tag. Well, this patch does not solve the bootstrapping problem. It solely solves the cross building part. The cross build of icu will build a native icu without le-hb and use that and a bootstrapped libicu-le-hb-dev to cross build an icu with le-hb. The resulting package should look exactly the same. I actually verified that a successful cross build inculdes the le-hb integration. It wasn't fully bit-identical, but icu isn't reproducible even in native builds. In any case, OpenTTD is not broken. > But if your intention is to cross-build ICU only and don't mind if > OpenTTD is unbuildable, then add back the patch tag and I'll upload > this change somewhen. I don't see how this patch breaks OpenTTD. On the other hand, it also doesn't solve the bootstrap problem. > Meanwhile, Matthijs can you tell us how the OpenTTD layout work goes? > May you have any ETA from its upstream? It would be good to drop > icu-le-hb very soon. Yes, please. Helmut