Gentoo Websites Logo
Go to: Gentoo Home Documentation Forums Lists Bugs Planet Store Wiki Get Gentoo!
Bug 815242 - media-libs/harfbuzz and media-libs/freetype - circular dependency
Summary: media-libs/harfbuzz and media-libs/freetype - circular dependency
Status: RESOLVED CANTFIX
Alias: None
Product: Gentoo Linux
Classification: Unclassified
Component: Current packages (show other bugs)
Hardware: All Linux
: Normal minor
Assignee: Lars Wendler (Polynomial-C) (RETIRED)
URL:
Whiteboard:
Keywords:
Depends on:
Blocks:
 
Reported: 2021-09-28 15:31 UTC by Jaco Kroon
Modified: 2021-09-28 15:39 UTC (History)
5 users (show)

See Also:
Package list:
Runtime testing required: ---


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Jaco Kroon 2021-09-28 15:31:38 UTC
New install in progress.  stage3-amd64-20210630T214504Z.tar.xz, default/linux/amd64/17.1/no-multilib profile.  Already chrooted (reproducing the failure from our install script):

sysresccd / # emerge -1av harfbuzz

 * IMPORTANT: 11 news items need reading for repository 'gentoo'.
 * Use eselect news read to view new items.


These are the packages that would be merged, in order:

Calculating dependencies... done!


[nomerge       ] media-libs/harfbuzz-2.9.1:0/0.9.18::gentoo  USE="cairo glib graphite icu introspection truetype -debug -doc -experimental -test" 
[nomerge       ]  x11-libs/cairo-1.16.0-r4::gentoo  USE="glib svg -X (-aqua) -debug (-gles2-only) -opengl -static-libs -utils -valgrind" 
[nomerge       ]   media-libs/fontconfig-2.13.1-r2:1.0::gentoo  USE="-doc -static-libs" 
[ebuild  N     ]    app-eselect/eselect-fontconfig-1.1-r1::gentoo  2 KiB
[ebuild  N     ] media-libs/harfbuzz-2.9.1:0/0.9.18::gentoo  USE="cairo glib graphite icu introspection truetype -debug -doc -experimental -test" 18,706 KiB
[ebuild  N     ]  x11-libs/cairo-1.16.0-r4::gentoo  USE="glib svg -X (-aqua) -debug (-gles2-only) -opengl -static-libs -utils -valgrind" 41,014 KiB
[ebuild  N     ]   media-libs/fontconfig-2.13.1-r2:1.0::gentoo  USE="-doc -static-libs" 1,684 KiB
[ebuild  N     ]    media-libs/freetype-2.11.0-r1:2::gentoo  USE="adobe-cff cleartype-hinting harfbuzz png static-libs -X -brotli -bzip2 -debug -doc -fontforge (-infinality) -utils" 2,208 KiB

Total: 5 packages (5 new), Size of downloads: 63,611 KiB

 * Error: circular dependencies:

(media-libs/freetype-2.11.0-r1:2/2::gentoo, ebuild scheduled for merge) depends on
 (media-libs/harfbuzz-2.9.1:0/0.9.18::gentoo, ebuild scheduled for merge) (buildtime)
  (media-libs/freetype-2.11.0-r1:2/2::gentoo, ebuild scheduled for merge) (buildtime_slot_op)

It might be possible to break this cycle
by applying the following change:
- media-libs/freetype-2.11.0-r1 (Change USE: -harfbuzz)


My commit (private git repo) where I flipped freetype[harfbuzz] on states:

rrdtool[graph] requires libpango requires freetype[harfbuzz]


Looking at the various ebuilds:

harfbuzz-2.9.1.ebuild: RDEPEND (and DEPEND) has truetype? ( >=media-libs/freetype-2.5.0.1:2=[${MULTILIB_USEDEP}] )

freetype-2.11.0-r1.ebuild: RDEPEND (and DEPEND) has harfbuzz? ( >=media-libs/harfbuzz-1.3.0[truetype,${MULTILIB_USEDEP}] )


USE=-truetype emerge -1av harfbuzz does not merge.  I had to USE=-harfbuzz emerge -av freetype.  In the former case the circular dependency just shifts:

(x11-libs/cairo-1.16.0-r4:0/0::gentoo, ebuild scheduled for merge) depends on
 (media-libs/freetype-2.11.0-r1:2/2::gentoo, ebuild scheduled for merge) (buildtime)
  (media-libs/harfbuzz-2.9.1:0/0.9.18::gentoo, ebuild scheduled for merge) (buildtime)
   (x11-libs/cairo-1.16.0-r4:0/0::gentoo, ebuild scheduled for merge) (buildtime_slot_op)


Not sure if/how this can be sorted in a more generic manner, and I'm not familiar enough with the overall portage infrastructure to know if it's possible to basically sort this out in a generic manner.  In this specific case if portage could possibly figure out that it can break the dependency with the following merge order:

media-libs/freetype[-harfbuzz]
media-libs/harfbuzz[truetype]
media-libs/freetype[harfbuzz]


I'm not actually sure I require freetype[harfbuzz], so might just end up killing that once I've managed to confirm that. There is already a warning in this regards on the freetype side:

 + + harfbuzz          : Use media-libs/harfbuzz for auto-hinting OpenType fonts. WARNING: may
                         trigger circular dependencies!


If possible, please kill the circular dep, if not possible, just close with CANTFIX.  Else keep around as a portage wishlist item, of which I'm sure there are many.

Reproducible: Always
Comment 1 Mike Gilbert gentoo-dev 2021-09-28 15:37:39 UTC
Pretty sure this is CANTFIX.
Comment 2 Emily Rowlands 2021-09-28 15:39:52 UTC
This is a pretty common circular dep during installation. Sam made a good guide here to some of the ways to solve this.

https://wiki.gentoo.org/wiki/User:Sam/Portage_help/Circular_dependencies