From e5ba67bb11b55c1f3d48762ff17762d231b2361c Mon Sep 17 00:00:00 2001 From: Boris Kolpackov Date: Sat, 30 Jan 2016 15:18:51 +0200 Subject: Ignore version revision in package dependencies resolution --- load/load.cxx | 34 +++++++++++++++++++++++----------- 1 file changed, 23 insertions(+), 11 deletions(-) (limited to 'load') diff --git a/load/load.cxx b/load/load.cxx index 9e6ee5d..e2a318c 100644 --- a/load/load.cxx +++ b/load/load.cxx @@ -591,20 +591,32 @@ resolve_dependencies (package& p, database& db) { auto c (*d.constraint); - if (c.min_version) + if (c.min_version && c.max_version && *c.min_version == *c.max_version) { - if (c.min_open) - q = q && vm > *c.min_version; - else - q = q && vm >= *c.min_version; + const version& v (*c.min_version); + q = q && compare_version_eq (vm, v, v.revision != 0); } - - if (c.max_version) + else { - if (c.max_open) - q = q && vm < *c.max_version; - else - q = q && vm <= *c.max_version; + if (c.min_version) + { + const version& v (*c.min_version); + + if (c.min_open) + q = q && compare_version_gt (vm, v, v.revision != 0); + else + q = q && compare_version_ge (vm, v, v.revision != 0); + } + + if (c.max_version) + { + const version& v (*c.max_version); + + if (c.max_open) + q = q && compare_version_lt (vm, v, v.revision != 0); + else + q = q && compare_version_le (vm, v, v.revision != 0); + } } } -- cgit v1.1