From 151de2112ef18da2e7672aab82af0675ee31a229 Mon Sep 17 00:00:00 2001 From: EnumDev Date: Tue, 8 Apr 2025 19:20:49 +0300 Subject: [PATCH] Fix virtual packages not being accounted for in GetDependants function --- src/bpmlib/packages.go | 15 ++++++++++++++- 1 file changed, 14 insertions(+), 1 deletion(-) diff --git a/src/bpmlib/packages.go b/src/bpmlib/packages.go index abfffcc..dbc137c 100644 --- a/src/bpmlib/packages.go +++ b/src/bpmlib/packages.go @@ -1308,8 +1308,21 @@ func (pkgInfo *PackageInfo) GetDependants(rootDir string) ([]string, error) { if bpmpkg == nil { return nil, errors.New("package not found: " + pkg) } - if bpmpkg.PkgInfo.Name != pkgInfo.Name && slices.Contains(bpmpkg.PkgInfo.GetAllDependencies(false, true), pkgInfo.Name) { + if bpmpkg.PkgInfo.Name == pkgInfo.Name { + continue + } + + dependencies := bpmpkg.PkgInfo.GetAllDependencies(false, true) + + if slices.Contains(dependencies, pkgInfo.Name) { ret = append(ret, pkg) + continue + } + for _, vpkg := range pkgInfo.Provides { + if slices.Contains(dependencies, vpkg) { + ret = append(ret, pkg) + break + } } }