When I run emerge --update --newuse --deep @world with USE="...tk..." (in make.conf) dev-ml/findlib is configured to build -with-toolbox. This requires dev-ml/labtk which in turn requires findlib. I assume while the depency of labltk to findlib is correct it does not require -with-toolbox of findlib. I didn't look into the ebuild. But according to the docs of findlib: » -with-toolbox also compile and install the "toolbox". This requires that labltk is available. The toolbox contains the "make_wizard" to easily create findlib-enabled Makefiles.« labltk itself does not have a USE flag tk and also does not force it for findlib. So it should be detectable for emerge that findlib with or without tk doesn't make a difference for labltk. Reproducible: Always Steps to Reproduce: 1. Have USE=tk in make.conf or add USE=tk inline 2. emerge --update --deep @world so that dev-ml/findlib-1.8.1-r2 becomes a candidate 3. emerge bails out with circular dependency Actual Results: Error: circular dependencies: (dev-ml/labltk-8.06.10:0/8.06.10::gentoo, ebuild scheduled for merge) depends on (dev-ml/findlib-1.8.1-r2:0/0::gentoo, ebuild scheduled for merge) (buildtime) (dev-ml/labltk-8.06.10:0/8.06.10::gentoo, ebuild scheduled for merge) (buildtime_slot_op) Expected Results: Update works fine. labltk was not necessary on the host before. USE-flag tk was enabled for a long time for other packages. Seems as if the recent changes/ stabilization lead to this.
It might be possible to break this cycle by applying the following change: - dev-ml/findlib-1.8.1-r2 (Change USE: -tk) Note that this change can be reverted, once the package has been installed. That is what emerge suggests you have two package to build findlib and labltk and you want findlib with tk The correct sequence of build should be dev-ml/findlib -tk dev-ml/labltk dev-ml/findlib +tk But this is something that emerge is not doing. Does not build a package twice. Maybe it will do it in the future. I don't know