solvit: removing a reverse dependency from package removal now checks for that package's dependencies instead of every package

This commit is contained in:
Ponali
2026-05-03 17:46:11 +02:00
parent 95b1c56d65
commit 8dda210eb3
+9 -6
View File
@@ -211,7 +211,6 @@ local function startTransaction(dbpath)
return packInfo[avs.serializePack(pack)]
end
local function finalizeInstall(settings)
installIncomplete=false
-- find missing package information
local missing = {}
for i=1,#ins do
@@ -223,6 +222,7 @@ local function startTransaction(dbpath)
return false,missing
end
-- find dependencies
installIncomplete=false
local i=1
while i<=#ins do
local deps = getPackInfo(ins[i]).dependencies
@@ -380,14 +380,17 @@ local function startTransaction(dbpath)
db.remove(dbpath,pack[1])
end
-- remove reverse dependencies
for _,rdep in ipairs(rem) do
for _,pack in db.list(dbpath) do
local dat = db.get(dbpath,pack)
for _,pack in ipairs(rem) do
local pdat = getPackInfo(pack)
if not pdat.dependencies then goto continue end
for _,dep in ipairs(pdat.dependencies) do
local dat = db.get(dbpath,dep)
if dat.reverseDependencies then
removeFromArray(rdep[1],dat.reverseDependencies)
removeFromArray(pack[1],dat.reverseDependencies)
end
db.set(dbpath,pack,dat)
db.set(dbpath,dep,dat)
end
::continue::
end
end
function transaction.store()