Treat single conflict cases as well when building conflict formula

This commit is contained in:
Ettore Di Giacinto 2020-01-31 20:50:55 +01:00
parent 0147b2cf99
commit 0e30e6a1ad
No known key found for this signature in database
GPG Key ID: 1ADA699B145A2D1C

View File

@ -536,20 +536,25 @@ func (pack *DefaultPackage) BuildFormula(definitiondb PackageDatabase, db Packag
if err != nil || len(packages) == 0 {
required = requiredDef
} else {
for _, p := range packages {
encodedB, err := p.Encode(db)
if err != nil {
return nil, err
}
B := bf.Var(encodedB)
formulas = append(formulas, bf.Or(bf.Not(A),
bf.Not(B)))
if len(packages) == 1 {
required = packages[0]
} else {
for _, p := range packages {
encodedB, err := p.Encode(db)
if err != nil {
return nil, err
}
B := bf.Var(encodedB)
formulas = append(formulas, bf.Or(bf.Not(A),
bf.Not(B)))
f, err := p.BuildFormula(definitiondb, db)
if err != nil {
return nil, err
f, err := p.BuildFormula(definitiondb, db)
if err != nil {
return nil, err
}
formulas = append(formulas, f...)
}
formulas = append(formulas, f...)
continue
}
}
}