On Dec 25, 2017, at 13:38, Jeremy Lavergne wrote: > I have a weird situation where default_variants appear to be ignored. > > Hoping for some insight on what I can change without getting into broken > builds from +x11 poisoning, or some more clarity on the +quartz/+x11 > debacle. > > > > https://trac.macports.org/ticket/55563 > > > > PSPP uses the standard "if no variants, use a default". It also has a > second "if dependencies were built with a specific variant, enable it > here as well." > > Both parts seem to not work. > > > >> if {![variant_isset x11] && ![variant_isset quartz]} { >> default_variants +x11 >> } >> >> # check for x11-poisoned dependencies >> set x11 no >> set depspecs {gtk3} >> foreach depspec depspecs { >> if {![catch {set result [active_variants $depspec x11]}]} { >> if {$result} { >> $x11 yes >> break >> } >> } >> } >> >> # if x11 poison, depend on x11 >> if {[string is true -strict $x11]} { >> default_variants +x11 >> } > > > From the log, the user has a build where gtk3 (an immediate dependency > of +x11) and gtksourceview3 (immediate dependency of +quartz) are both > missing. > > I would expect +x11 to be enabled since no requested variants were > provided--causing gtk3 to be installed, but it cannot be found. > > I also noticed something in the log which makes me wonder if the > active_variant checks no longer function: > >> :debug:configure Ignoring active_variants requirement for gtk3 >> because source-type install only considers depends_fetch >> depends_extract depends_lib depends_build depends_run and those >> do not contain gtk3
This message is correct. In the port's x11 variant you've written "require_active_variants gtk3 x11" and in the quartz variant you've written "require_active_variants gtk3 quartz" but nowhere have you written "depends_lib-append port:gtk3". Similarly in the quartz variant you wrote "require_active_variants gtksourceview3 quartz" but you only do "depends_lib-append ... port:gtksourceview3" in the gui variant. If you need to use require_active_variants, you must be sure the port you specify is one that you've already declared a dependency on. > What can be done to improve the situation? I don't know why it fails to build. The log attached to the ticket shows gtk3 and gtksourceview3 are installed.