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

Reply via email to