concretizer: prioritize matching compilers over newer versions (#20020)

fixes #20019

Before this modification having a newer version of a node came
at higher priority in the optimization than having matching
compilers. This could result in unexpected configurations for
packages with conflict directives on compilers of the type:

conflicts('%gcc@X.Y:', when='@:A.B')

where changing the compiler for just that node is preferred to
lower the node version to less than 'A.B'. Now the priority has
been switched so the solver will try to lower the version of the
nodes in question before changing their compiler.
This commit is contained in:
Massimiliano Culpo
2020-11-26 13:10:48 +01:00
committed by Tamara Dahlgren
parent 0ae49821e2
commit b326d59e10
4 changed files with 37 additions and 6 deletions

View File

@@ -12,5 +12,10 @@ class Openblas(Package):
url = "http://github.com/xianyi/OpenBLAS/archive/v0.2.15.tar.gz"
version('0.2.15', 'b1190f3d3471685f17cfd1ec1d252ac9')
version('0.2.14', 'b1190f3d3471685f17cfd1ec1d252ac9')
version('0.2.13', 'b1190f3d3471685f17cfd1ec1d252ac9')
# See #20019 for this conflict
conflicts('%gcc@:4.4.99', when='@0.2.14:')
provides('blas')