fix check in housekeeping not checking the actual no-build list
This commit is contained in:
@@ -50,12 +50,6 @@ func housekeeping(repo, march string, wg *sync.WaitGroup) error {
|
|||||||
Arch: *mPackage.Arch(),
|
Arch: *mPackage.Arch(),
|
||||||
}
|
}
|
||||||
|
|
||||||
matchNoBuild, err := MatchGlobList(pkg.Pkgbase, conf.Blacklist.Packages)
|
|
||||||
if err != nil {
|
|
||||||
log.Errorf("[HK] %s->%s error parsing no-build glob: %v", pkg.FullRepo, mPackage.Name(), err)
|
|
||||||
continue
|
|
||||||
}
|
|
||||||
|
|
||||||
// check if package is still part of repo
|
// check if package is still part of repo
|
||||||
dbs, err := alpmHandle.SyncDBs()
|
dbs, err := alpmHandle.SyncDBs()
|
||||||
if err != nil {
|
if err != nil {
|
||||||
@@ -69,7 +63,7 @@ func housekeeping(repo, march string, wg *sync.WaitGroup) error {
|
|||||||
pkgResolved.DB().Name() != pkg.Repo.String() ||
|
pkgResolved.DB().Name() != pkg.Repo.String() ||
|
||||||
pkgResolved.Architecture() != pkg.Arch ||
|
pkgResolved.Architecture() != pkg.Arch ||
|
||||||
pkgResolved.Name() != mPackage.Name() ||
|
pkgResolved.Name() != mPackage.Name() ||
|
||||||
matchNoBuild {
|
MatchGlobList(pkg.Pkgbase, conf.Blacklist.Packages) {
|
||||||
switch {
|
switch {
|
||||||
case err != nil:
|
case err != nil:
|
||||||
log.Infof("[HK] %s->%s not included in repo (resolve error: %v)", pkg.FullRepo, mPackage.Name(), err)
|
log.Infof("[HK] %s->%s not included in repo (resolve error: %v)", pkg.FullRepo, mPackage.Name(), err)
|
||||||
@@ -85,7 +79,7 @@ func housekeeping(repo, march string, wg *sync.WaitGroup) error {
|
|||||||
case pkgResolved.Name() != mPackage.Name():
|
case pkgResolved.Name() != mPackage.Name():
|
||||||
log.Infof("[HK] %s->%s not included in repo (name mismatch: repo:%s != pkg:%s)", pkg.FullRepo,
|
log.Infof("[HK] %s->%s not included in repo (name mismatch: repo:%s != pkg:%s)", pkg.FullRepo,
|
||||||
mPackage.Name(), pkgResolved.Name(), mPackage.Name())
|
mPackage.Name(), pkgResolved.Name(), mPackage.Name())
|
||||||
case matchNoBuild:
|
case MatchGlobList(pkg.Pkgbase, conf.Blacklist.Packages):
|
||||||
log.Infof("[HK] %s->%s not included in repo (blacklisted pkgbase %s)", pkg.FullRepo, mPackage.Name(), pkg.Pkgbase)
|
log.Infof("[HK] %s->%s not included in repo (blacklisted pkgbase %s)", pkg.FullRepo, mPackage.Name(), pkg.Pkgbase)
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -249,7 +243,7 @@ func housekeeping(repo, march string, wg *sync.WaitGroup) error {
|
|||||||
DBPackage: dbPkg,
|
DBPackage: dbPkg,
|
||||||
}
|
}
|
||||||
buildManager.repoPurge[fullRepo] <- []*ProtoPackage{pkg}
|
buildManager.repoPurge[fullRepo] <- []*ProtoPackage{pkg}
|
||||||
case dbPkg.Status == dbpackage.StatusSkipped && dbPkg.RepoVersion == "" && dbPkg.SkipReason == "blacklisted":
|
case dbPkg.Status == dbpackage.StatusSkipped && dbPkg.SkipReason == "blacklisted" && !MatchGlobList(pkg.Pkgbase, conf.Blacklist.Packages):
|
||||||
log.Infof("[HK] requeue previously blacklisted package %s->%s", fullRepo, dbPkg.Pkgbase)
|
log.Infof("[HK] requeue previously blacklisted package %s->%s", fullRepo, dbPkg.Pkgbase)
|
||||||
err = dbPkg.Update().SetStatus(dbpackage.StatusQueued).ClearSkipReason().ClearTagRev().Exec(context.Background())
|
err = dbPkg.Update().SetStatus(dbpackage.StatusQueued).ClearSkipReason().ClearTagRev().Exec(context.Background())
|
||||||
if err != nil {
|
if err != nil {
|
||||||
|
@@ -43,11 +43,6 @@ var (
|
|||||||
)
|
)
|
||||||
|
|
||||||
func (p *ProtoPackage) isEligible(ctx context.Context) bool {
|
func (p *ProtoPackage) isEligible(ctx context.Context) bool {
|
||||||
globMatch, err := MatchGlobList(p.Pkgbase, conf.Blacklist.Packages)
|
|
||||||
if err != nil {
|
|
||||||
log.Errorf("error parsing glob from no-build list: %v", err)
|
|
||||||
}
|
|
||||||
|
|
||||||
skipping := false
|
skipping := false
|
||||||
switch {
|
switch {
|
||||||
case p.Arch == "any":
|
case p.Arch == "any":
|
||||||
@@ -55,7 +50,7 @@ func (p *ProtoPackage) isEligible(ctx context.Context) bool {
|
|||||||
p.DBPackage.SkipReason = "arch = any"
|
p.DBPackage.SkipReason = "arch = any"
|
||||||
p.DBPackage.Status = dbpackage.StatusSkipped
|
p.DBPackage.Status = dbpackage.StatusSkipped
|
||||||
skipping = true
|
skipping = true
|
||||||
case globMatch:
|
case MatchGlobList(p.Pkgbase, conf.Blacklist.Packages):
|
||||||
log.Debugf("skipped %s: package on no-build list", p.Pkgbase)
|
log.Debugf("skipped %s: package on no-build list", p.Pkgbase)
|
||||||
p.DBPackage.SkipReason = "blacklisted"
|
p.DBPackage.SkipReason = "blacklisted"
|
||||||
p.DBPackage.Status = dbpackage.StatusSkipped
|
p.DBPackage.Status = dbpackage.StatusSkipped
|
||||||
|
9
utils.go
9
utils.go
@@ -699,17 +699,18 @@ func (globs Globs) Expand() ([]string, error) {
|
|||||||
return matches, nil
|
return matches, nil
|
||||||
}
|
}
|
||||||
|
|
||||||
func MatchGlobList(target string, globs []string) (bool, error) {
|
func MatchGlobList(target string, globs []string) bool {
|
||||||
for _, lGlob := range globs {
|
for _, lGlob := range globs {
|
||||||
tGlob, err := glob.Compile(lGlob)
|
tGlob, err := glob.Compile(lGlob)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return false, fmt.Errorf("failed to compile glob %s: %w", lGlob, err)
|
log.Warningf("failed to compile glob %s: %v", lGlob, err)
|
||||||
|
return false
|
||||||
}
|
}
|
||||||
if tGlob.Match(target) {
|
if tGlob.Match(target) {
|
||||||
return true, nil
|
return true
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
return false, nil
|
return false
|
||||||
}
|
}
|
||||||
|
|
||||||
func Copy(srcPath, dstPath string) (err error) {
|
func Copy(srcPath, dstPath string) (err error) {
|
||||||
|
Reference in New Issue
Block a user