Bionic: Circular dependency between libicu60 and libicu-le-hb-dev??

Asked by Yaobin Wen


I am trying to backport libicu60 from Ubuntu 18.04 onto Ubuntu 14.04 for my personal use.

When I was examining the libicu60's source package, I found a possible circular dependency between it and libicu-le-hb-dev. I'm not sure if I miss something so would like to ask about it. More details follow.

- 1). I'm using icu's source code from this page:
  - 1.1). The page says the source code produces 5 binary packages, and "libicu60" and "libicu-dev" are two of them.
  - 1.2). The same page also says icu's build depends on "libicu-le-hb-dev".

- 2). I then look at "libicu-le-hb-dev"'s page here:
  - 2.1). Weirdly, the page says its build depends on "libicu-dev (>= 60.1)".

So here is the circular dependency I don't understand: "icu"'s build depends on "libicu-le-hb-dev" which is produced by "icu-le-hb" whose build depends on "libicu-dev" which is produced by "icu".

Did I overlook something?

Thanks for help!


Question information

English Edit question
Ubuntu icu Edit question
No assignee Edit question
Last query:
Last reply:
Revision history for this message
Yaobin Wen (yaobinwen) said :

I tried to build the "icu" source code [1] on Ubuntu 18.04. Its configuration output and building process showed that "icu-le-hb" is actually optional.

On my Ubuntu 18.04 I don't have the "icu-le-hb"-related packages installed. The "" file has the module check:

> PKG_CHECK_MODULES(ICULEHB, icu-le-hb, have_icu_le_hb=true, :)

It simply reported that my system didn't have it, and continued on the subsequent checks.

When I ran "make check" to build the code and run the tests, I didn't encounter any build errors and the tests all passed.

I then found in the email thread [2] where the same issue was discussed, quoting:

> The package I need to build have optional build dependency (libgpm-dev) which is not available on all platforms.
> If I just put it to Build-Depends, package will FTBFS on some platforms.

For my work at hand, I might probably simply remove the Build-Depends of "libicu-le-hb-dev" because it is anyway not available on Ubuntu 14.04.

But I still feel it not completely correct in some way for Ubuntu 18.04 because of the circular dependency.


- [1] I used this source code:
- [2] Email thread: "optional package in Build-Depends (how?)":

Revision history for this message
Manfred Hampl (m-hampl) said :

Your assessment seems correct.

Instead of using (which is an information platform) you should go back to the source on, but this tells the same: 60.2-3ubuntu3 which is the source for libicu-dev build-depends on libicu-le-hb-dev 1.0.3+git161113-4 which is the source for libicu-le-hb-dev build-depends on libicu-dev(>=60.1)

Digging through the different versions it seems that the build dependency on libicu-le-hb-dev was introduced in icu (60.2-1)

So the following sequence might be possible:
build libicu-dev from icu 60.1-1
build libicu-le-hb-dev from icu-le-hb
build libicu-dev from icu 60.2-3

You should consider creating a bug report against these two source packages.

Can you help with this problem?

Provide an answer of your own, or ask Yaobin Wen for more information if necessary.

To post a message you must log in.