Setting up MacPorts libsolv branch and Testing libsolv search
Clemens Lang
cal at macports.org
Tue Jun 23 14:38:07 PDT 2015
Hi,
----- On 23 Jun, 2015, at 23:02, Ryan Schmidt ryandesign at macports.org wrote:
> On Jun 23, 2015, at 3:24 AM, Clemens Lang wrote:
>
>> I've been in contact with the developer of libsolv about that and my
>> current approach would be to represent every variant separately in the
>> package universe, e.g. a port A with the variants var1, var2, var3 with a
>> conflict between var2 and var3 and an additional dependency on C in var1
>> would become
>>
>> portA+0 (i.e. without variants)
>> Provides: portA
>>
>> portA+var1
>> Provides: portA
>> Requires: portC
>>
>> portA+var2
>> Provides: portA
>> Conflicts portA+var3
>>
>> portA+var3
>> Provides: portA
>> Conflicts: portA+var2
>
> What about portA+var1+var2 and portA+var1+var3? Exponential explosion of
> combinations?
No, the whole point of the idea is to avoid the combinatorial explosion and
stay linear in the number of variants by having exactly one variant per one
of these "virtual/pseudo" ports. They may have the same name, but that does
not mean that they cannot be "installed" at the same time.
port install portA+var1+var3 on the command line would translate into a
request to install both portA+var1 and portA+var3 (in the libsolv
representation), and would then be translated back into installing portA
with the var1 and var3 variants after dependency calculation has finished.
--
Clemens Lang
More information about the macports-dev
mailing list