Install missing dependencies on update

This commit is contained in:
2026-04-20 17:17:54 +03:00
parent 248359c02f
commit 5d0312856d
+30 -9
View File
@@ -416,16 +416,37 @@ func UpdatePackages(rootDir string, syncDatabase, allowDowngrades, forceInstalla
DatabaseEntry: entry, DatabaseEntry: entry,
}) })
} }
}
}
// Check for new dependencies in updated packages // Check for new uninstalled dependencies
operation.ResolveDependencies(true) for _, dep := range entry.Info.Depends {
if len(operation.UnresolvedDepends) != 0 { if !IsPackageInstalled(dep, rootDir) && len(GetVirtualPackageInfo(dep, rootDir)) == 0 {
if !forceInstallation { // Find database entry for missing dependency
return nil, DependencyNotFoundErr{operation.UnresolvedDepends} depEntry, _, err := GetDatabaseEntry(dep)
} else if verbose { if err != nil {
log.Printf("Warning: %s", DependencyNotFoundErr{operation.UnresolvedDepends}) return nil, err
}
operation.AppendAction(&FetchPackageAction{
InstallationReason: InstallationReasonDependency,
DatabaseEntry: depEntry,
})
}
}
// Check for new uninstalled runtime dependencies
for _, dep := range entry.Info.RuntimeDepends {
if !IsPackageInstalled(dep, rootDir) && len(GetVirtualPackageInfo(dep, rootDir)) == 0 {
// Find database entry for missing dependency
depEntry, _, err := GetDatabaseEntry(dep)
if err != nil {
return nil, err
}
operation.AppendAction(&FetchPackageAction{
InstallationReason: InstallationReasonDependency,
DatabaseEntry: depEntry,
})
}
}
} }
} }