Gentoo Websites Logo
Go to: Gentoo Home Documentation Forums Lists Bugs Planet Store Wiki Get Gentoo!

Bug 831371

Summary: dev-ml/findlib-1.8.1-r2 circular dependency to dev-ml/labltk-8.06.10 with USE=tk
Product: Gentoo Linux Reporter: onkobu
Component: Current packagesAssignee: Gentoo Team for the ML programming language family <ml>
Status: RESOLVED CANTFIX    
Severity: normal CC: gienah
Priority: Normal    
Version: unspecified   
Hardware: All   
OS: Linux   
See Also: https://bugs.gentoo.org/show_bug.cgi?id=833604
Whiteboard:
Package list:
Runtime testing required: ---

Description onkobu 2022-01-17 20:14:56 UTC
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.
Comment 1 Tupone Alfredo gentoo-dev 2022-01-24 08:06:05 UTC
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