Source: icu Version: 60.2-1 Severity: important User: helm...@debian.org Usertags: rebootstrap
icu introduces a build dependency cycle with icu-le-hb. Doing so breaks architecture bootstrap. The full cycle is: src:icu Build-Depends: libicu-le-hb-dev libicu-le-hb-dev is built from src:icu-le-hb src:icu-le-hb Build-Depends: libicu-dev libicu-dev is built from src:icu I haven't fully understood the reason of the new dependency yet, so I cannot easily suggest a cure. One thing that strikes me as odd is that these source packages seem to be fully interdependent. That suggests that merging them into a single multi-tarball source package might work. Reading http://userguide.icu-project.org/layoutengine/paragraph suggests that doing so may be impossible, because that'd require adding harfbuzz to icu's Build-Depends introducing yet another dependency cycle with harfbuzz. An alternative may be splitting icu-lx into separate binary packages libiculx60 and libicu-lx-dev. Then we could add a build profile pkg.icu.nolayoutex to skip generating these packages. Downstream users would have to add an explicit dependency on libicu-lx-dev to get that functionality. An even better variant would be splitting icu-lx into a fully separate source package if possible. Potentially moving icu-lx into libicu-le-hb might work. These ideas concentrate on the src:icu -> libicu-le-hb-dev edge. As far as I understand, trying to build src:icu-le-hb without libicu-dev doesn't make any sense at all (and still produces a cycle via harfbuzz). Do you see any other options? Which route do you prefer? Helmut