On Wed, Jul 12, 2017 at 8:07 PM, Joshua Root <[email protected]> wrote:
> On 2017-7-13 08:10 , Umesh Singla wrote:
>>
>>  3. ensuring that active versions are installed after the inactive
>>     versions
>
> The install action of port(1) does execute the activate target, however your
> code could run only the install target for ports that were not active. That
> is what restore_ports.tcl does.

Wouldn't it still be possible to end up in the wrong state due to
dependencies? Imagine that port A+huge depends on port B+huge, while
A+tiny depends on B+tiny. +huge is inactive, +tiny is active.

This is also all predicated on the idea that MacPorts handles
dependent variants. I forget what the current state is there.

Installing A+huge would install and activate A+huge and B+huge.
Installing, but not activating A+tiny, would first require installing
and activating B+tiny.

Certainly this could be resolved by installing and not activating the
port and everything in the dependency tree. I haven't examined
restore_ports to see what it does with dependencies.

Another method would be to install and deactivate all the inactive
ports first. Or even just default to not installing anything that's
inactive and providing an option to install those as well (or
presenting a list to pick from). That's perhaps getting a bit too
extensive at this point.

-- 
arno  s  hautala    /-|   [email protected]

pgp b2c9d448

Reply via email to