Buildbot now fails to build wine dependencies
Clemens Lang
cal at macports.org
Tue Jul 4 22:07:48 UTC 2017
Hey,
On Tue, Jul 04, 2017 at 10:00:16PM +0200, Clemens Lang wrote:
> > 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 had another look at your proposed patch. In general, the idea of
printing active variants that are not enabled by default and disabled
default variants is correct. We need a string that uniquely identifies a
specific variant combination when passed to 'port install', and your
idea fulfills that property.
However, the implementation has problems:
- Due to the way how $depinfo(active_variants) works, it only contains
positive variants. Hence $active_variants($variant) eq "-" can never
be true and your code will never disable a default variant. This works
in your gtk3 +quartz example for the same reason that 'port info glib2
+quartz' does not show x11 as a default variant.
- $default_variants does not contain default variants that have been
disabled for this port. Just because a variant is not in
default_variants does not mean that it is not a default variant of the
given port, it might just have been disabled for this instance. It's
weird, I know.
Note, btw, that this did work correctly before
https://github.com/macports/mpbb/commit/4462924d822cb61464b6ecb8badcc9949231527b
I'm adding Joshua to Cc.
Since Joshua's commit did improve speed quite a bit (turns out the extra
Portfile execution comes with a hefty performance penalty), how about
this approach:
- Print all selected variants that are not default.
- Intersect the set of variants explicitly disabled on the command line
with the set of available variants of a port, and print those.
This will still give us a situation where disabling a non-default
variant of a port will cause a failcache miss, but your patch already
had these downsides.
Reviews please: https://github.com/macports/mpbb/pull/4
--
Clemens
More information about the macports-dev
mailing list