From 6b684e308334299476c3dee0d9d1df612d6a0986 Mon Sep 17 00:00:00 2001 From: Giovanni Harting <539@idlegandalf.com> Date: Tue, 19 May 2026 03:16:02 +0200 Subject: [PATCH] compare HK drift detection against RepoVersion to match genQueue --- housekeeping.go | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) diff --git a/housekeeping.go b/housekeeping.go index c82cd97..0a9cc8c 100644 --- a/housekeeping.go +++ b/housekeeping.go @@ -154,11 +154,15 @@ func housekeeping(ctx context.Context, repo, march string, wg *sync.WaitGroup) e // the pacman sync DB (always current) and force a re-queue. // Only act on settled packages; a Queued/Building/Delayed row is // already moving and our SetStatus(Queued) would race it. + // Compare against RepoVersion (what we actually published): the + // Version column gets rewritten to state.PkgVer by isEligible's + // "repo higher than PKGBUILD" branch on subsequent passes, so it + // would falsely report drift on every cycle for drift-built pkgs. if pkg.DBPackage.Status == dbpackage.StatusLatest && - pkg.DBPackage.Version != "" && pkgResolved.Version() != "" && - alpm.VerCmp(pkgResolved.Version(), pkg.DBPackage.Version) > 0 { - log.Infof("[HK] %s->%s upstream version drift detected (db: %s < upstream: %s), requeuing", - pkg.FullRepo, pkg.Pkgbase, pkg.DBPackage.Version, pkgResolved.Version()) + pkg.DBPackage.RepoVersion != "" && pkgResolved.Version() != "" && + alpm.VerCmp(pkgResolved.Version(), pkg.DBPackage.RepoVersion) > 0 { + log.Infof("[HK] %s->%s upstream version drift detected (repo: %s < upstream: %s), requeuing", + pkg.FullRepo, pkg.Pkgbase, pkg.DBPackage.RepoVersion, pkgResolved.Version()) pkg.DBPackage, err = pkg.DBPackage.Update(). SetStatus(dbpackage.StatusQueued). ClearTagRev().