From 8dda210eb376b727245ad27266527df1789f9655 Mon Sep 17 00:00:00 2001 From: Ponali Date: Sun, 3 May 2026 17:46:11 +0200 Subject: [PATCH] solvit: removing a reverse dependency from package removal now checks for that package's dependencies instead of every package --- lib/solvit.lua | 15 +++++++++------ 1 file changed, 9 insertions(+), 6 deletions(-) diff --git a/lib/solvit.lua b/lib/solvit.lua index a04effe..8de8fcb 100644 --- a/lib/solvit.lua +++ b/lib/solvit.lua @@ -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()