Hi, On Tue, Jul 04, 2017 at 04:23:13PM +0200, Rainer Müller wrote: > I still don't understand why we pass *default* variants to > dependencies at all. As I see it, the problem would go away if we > would not request default variants explicitly... > > @Clemens, > as you originally added this to mpbb/tools/dependencies.tcl, do you > still remember the reason?
You were right on it when you mentioned the failcache. However, you only considered the reading part of the failcache, not the writing part of it. We need to know the canonical (i.e., fully-expanded) set of variants for every port we build, because even when a port is only installed as a dependency, we update the failcache when it fails. Failure to do this would possibly cache a build failure of what mpbb thinks is 'cairo +quartz' (but actually is 'cairo +quartz+x11') cached for 'cairo +quartz-x11' (i.e. canonically 'cairo +quartz'). > I am attaching a patch to only print active variants that are not > enabled by default (or disabled default variants). To me the result > looks like what we want to have: > > $ tools/dependencies.tcl wine | grep -E 'glib2|cairo' > glib2 +universal > cairo +universal > $ tools/dependencies.tcl gtk3 +quartz | grep -E 'glib2|cairo' > glib2 +quartz > cairo No, this won't work, because with this output you can no longer distinguish 'cairo (default variants)' from 'cairo -quartz-x11'. This is probably not a valid configuration for the cairo port specifically, but you get the idea. I think a patch that does not return a default variant if a conflicting other variant was selected should work fine, though (and is exactly what MacPorts itself would do in these situations, afaik). -- Clemens