mirror of
https://github.com/aptly-dev/aptly.git
synced 2026-06-11 06:24:04 +00:00
Fix multiple subtle bugs in dependency verification.
This commit is contained in:
Vendored
+13
-3
@@ -190,19 +190,23 @@ func (l *PackageList) VerifyDependencies(options int, architectures []string, so
|
|||||||
}
|
}
|
||||||
|
|
||||||
variantsMissing := make([]Dependency, 0, len(variants))
|
variantsMissing := make([]Dependency, 0, len(variants))
|
||||||
|
missingCount := 0
|
||||||
|
|
||||||
for _, dep := range variants {
|
for _, dep := range variants {
|
||||||
dep.Architecture = arch
|
dep.Architecture = arch
|
||||||
|
|
||||||
hash := dep.Hash()
|
hash := dep.Hash()
|
||||||
_, ok := cache[hash]
|
r, ok := cache[hash]
|
||||||
if ok {
|
if ok {
|
||||||
|
if !r {
|
||||||
|
missingCount++
|
||||||
|
}
|
||||||
continue
|
continue
|
||||||
}
|
}
|
||||||
|
|
||||||
if sources.Search(dep) == nil {
|
if sources.Search(dep) == nil {
|
||||||
variantsMissing = append(variantsMissing, dep)
|
variantsMissing = append(variantsMissing, dep)
|
||||||
cache[hash] = false
|
missingCount++
|
||||||
} else {
|
} else {
|
||||||
cache[hash] = true
|
cache[hash] = true
|
||||||
}
|
}
|
||||||
@@ -210,9 +214,15 @@ func (l *PackageList) VerifyDependencies(options int, architectures []string, so
|
|||||||
|
|
||||||
if options&DepFollowAllVariants == DepFollowAllVariants {
|
if options&DepFollowAllVariants == DepFollowAllVariants {
|
||||||
missing = append(missing, variantsMissing...)
|
missing = append(missing, variantsMissing...)
|
||||||
|
for _, dep := range variantsMissing {
|
||||||
|
cache[dep.Hash()] = false
|
||||||
|
}
|
||||||
} else {
|
} else {
|
||||||
if len(variantsMissing) == len(variants) {
|
if missingCount == len(variants) {
|
||||||
missing = append(missing, variantsMissing...)
|
missing = append(missing, variantsMissing...)
|
||||||
|
for _, dep := range variantsMissing {
|
||||||
|
cache[dep.Hash()] = false
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user