Tue Jan 27 15:54:36 PST 2015
>From what I've
> seen, dependency resolution methods based on SAT solving expect the
> complete universe of available packages and their dependency relations
> plus a list of packages that should be installed after the current
> action finished. Generating the complete list with accurate dependency
> info by executing the Portfiles would take ~15 minutes and is thus
> out of the question.
> We do have a cache of the information, which we call the port index.
> However, since Portfiles can execute arbitrary code, some Portfiles
> may currently depend on the behavior that they are being evaluated
> during dependency calculation (e.g. by changing their depends_lib
> depending on the variant selection the user has given). We should
> figure out a solution for that, for example by
> (a) somehow adding the effect of a variant on dependency relations
> to the portindex, so we could tell what the dependencies of
> foobar +bar +baz were without actually running the Portfile.
As there is already a cache with the dependency information, we can
update/better create another cache (cudfindex) with the required
information from PortIndex and checking for variants when we run port
install. This might not take ~15 minutes or so I guess as most of the
information is already there. Also, it depends on number of variant
combination as Mihai had mentioned.
> The problem is that this is not static. See above. There are 2^n*
> different states for n variants. For a port like mplayer-devel (or my
> own ports, mpv and audacious-plugins), the amount of variant
> combinations is *very* high and for each combination the dependencies
> You do NOT want to record this in PortIndex, which is supposed to be
> fast cache.
I don't think normal users will always make use of variant, also if
they do they won't keep changing the variants too much. Considering
the same variant would be passed in future, we could probably make use
of this cudfindex.
Also, I would prefer stable and reliable build rather than a fast and
S6 B.Tech CSE
Amrita Vishwa Vidyapeetham
More information about the macports-dev