solvit: made it return another error when trying to resolve different constant AVS conflict

This commit is contained in:
Ponali
2026-05-09 16:54:21 +02:00
parent 477d1de809
commit 44f391253c
+15 -7
View File
@@ -262,22 +262,29 @@ local function startTransaction(dbpath)
local inArr,arrPack = packageNameInArray(dep,ins)
if inArr then
if not avs.matching(dep,arrPack) then
local msg = ""
if settings.resolveConflict then
msg="Cannot resolve conflict: "..msg
end
local rev = findReverseDependencies(arrPack)
if #rev==0 then
return false, "Package "..avs.serializePack(ins[i]).." depends on "..avs.serializePack(dep)..", but one or more packages depend on "..avs.serializePack(arrPack)
msg=msg.."Package "..avs.serializePack(ins[i]).." depends on "..avs.serializePack(dep)..", but one or more packages depend on "..avs.serializePack(arrPack)
return false, msg
elseif #rev==1 then
return false, "Package "..avs.serializePack(ins[i]).." depends on "..avs.serializePack(dep)..", but package "..avs.serializePack(rev[1]).." depends on "..avs.serializePack(arrPack)
msg=msg.."Package "..avs.serializePack(ins[i]).." depends on "..avs.serializePack(dep)..", but package "..avs.serializePack(rev[1]).." depends on "..avs.serializePack(arrPack)
return false, msg
else
local revstr = ""
msg=msg.."Package "..avs.serializePack(ins[i]).." depends on "..avs.serializePack(dep)..", but packages "
for i=1,#rev do
if i>1 and i~=#rev then
revstr=revstr..", "
msg=msg..", "
elseif i==#rev then
revstr=revstr.." and "
msg=msg.." and "
end
revstr=revstr..avs.serializePack(rev[i])
msg=msg..avs.serializePack(rev[i])
end
return false, "Package "..avs.serializePack(ins[i]).." depends on "..avs.serializePack(dep)..", but packages "..revstr.." depend on "..avs.serializePack(arrPack)
msg=msg.." depend on "..avs.serializePack(arrPack)
return false, msg
end
end
elseif type(db.get(dbpath,dep[1]))=="nil" then
@@ -393,6 +400,7 @@ local function startTransaction(dbpath)
-- TODO: handle update of a single package with dependencies that need updating
-- TODO: handle update of a single package that has a set dependency version changed
-- TODO: handle updating all packages in the database
-- TODO: handle installing optional packages
-- TODO: handle installing virtual packages and store this vpack info to database
-- TODO: handle removing virtual packages from database info
-- TODO: handle installing groups and store this group info to database