solvit: added resolving code for different constant AVS conflict where the dependency is already installed

This commit is contained in:
Ponali
2026-05-10 16:50:49 +02:00
parent 137f8645fd
commit e3464a920e
+9 -4
View File
@@ -297,12 +297,16 @@ local function startTransaction(dbpath)
dbpack = avs.parse(dep[1].."="..dbinfo.version) dbpack = avs.parse(dep[1].."="..dbinfo.version)
end end
if not avs.matching(dep,dbpack) then if not avs.matching(dep,dbpack) then
local msg = ""
if settings.resolveConflict then if settings.resolveConflict then
msg="Cannot resolve conflict: "..msg removeIncomplete=true
table.insert(rem,1,dbpack)
installIncomplete=true
table.insert(ins,j,dep)
else
local msg = "Package "..avs.serializePack(ins[i]).." depends on "..avs.serializePack(dep)..", but another version ("..avs.serializePack(dbpack)..") is installed"
return false, msg
end end
msg=msg.."Package "..avs.serializePack(ins[i]).." depends on "..avs.serializePack(dep)..", but another version ("..avs.serializePack(dbpack)..") is installed"
return false, msg
end end
end end
end end
@@ -401,6 +405,7 @@ local function startTransaction(dbpath)
-- return "false, "[verbose string]"" when conflict found -- return "false, "[verbose string]"" when conflict found
-- TODO: handle resolving different constant AVS conflict (package1->dep1=1.0.0 + package2->dep1=1.2.3 where package2 and dep1=1.2.3 is on db) -- TODO: handle resolving different constant AVS conflict (package1->dep1=1.0.0 + package2->dep1=1.2.3 where package2 and dep1=1.2.3 is on db)
-- TODO: handle resolving different constant AVS conflict (package1->dep1=1.0.0 + package2->dep1=1.2.3 where package1 and dep1=1.0.0 is on db) -- TODO: handle resolving different constant AVS conflict (package1->dep1=1.0.0 + package2->dep1=1.2.3 where package1 and dep1=1.0.0 is on db)
-- TODO: make solvit yield every 0.1s
-- TODO: handle same range AVS -- TODO: handle same range AVS
-- TODO: handle different intercompatible 1.*.* range AVS -- TODO: handle different intercompatible 1.*.* range AVS
-- TODO: handle different incompatible 1.*.* range AVS -- TODO: handle different incompatible 1.*.* range AVS