Cask-updater herstellen na verplichte minisign-verificatie #2

Open
opened 2026-10-08 18:44:12 +00:00 by brenno · 0 comments
Owner

Probleem

Sinds de publicatie van OciDeck v0.6.14 blijft de canonieke Homebrew-tap op v0.6.13 staan. De halfuurlijke workflow Cask bijhouden faalt sinds 6 oktober onafgebroken; op 8 oktober waren dat 108 opeenvolgende mislukte runs. Daardoor krijgen gebruikers via zowel de Forgejo-tap als de GitHub-spiegel nog v0.6.13.

Voorbeeld: taprun #2323 eindigt met:

Nieuwste stabiele release: v0.6.14
minisign verifier not found

Oorzaak

OciDeck v0.6.14 heeft scripts/update_homebrew_cask.sh terecht fail-closed gemaakt: het script vertrouwt SHA256SUMS pas nadat SHA256SUMS.minisig is geverifieerd tegen de bij de tag behorende minisign.pub.

De workflow in deze repository voldoet niet aan dat nieuwe contract:

  • het gebruikte image ocideck-ci:flutter-3.47.0 bevat geen minisign;
  • de workflow haalt alleen het generatiescript en de casktemplate op, niet minisign.pub;
  • het script wordt als $WORK/update_homebrew_cask.sh geplaatst, terwijl het via zijn eigen pad de repositoryroot bepaalt en dus de verwachte layout $WORK/scripts/update_homebrew_cask.sh nodig heeft.

Alleen minisign installeren is daarom onvoldoende: daarna ontbreekt nog steeds de publieke sleutel op het verwachte pad.

Dit is geen rechten- of tokenprobleem. De workflow gebruikte voor v0.6.13 succesvol het door Forgejo verstrekte, repo-beperkte Actions-token. Voeg geen persoonlijk toegangstoken of cross-repo secret toe.

Oplossingsrichting

  1. Installeer Ubuntu 24.04’s officiële minisign-pakket in de caskjob, of gebruik een aantoonbaar gepind image waarin dezelfde verifier aanwezig is.
  2. Bouw een tijdelijke layout die overeenkomt met de OciDeck-repository:
    • $WORK/scripts/update_homebrew_cask.sh;
    • $WORK/homebrew/ocideck.rb.tmpl;
    • $WORK/minisign.pub.
  3. Haal alle drie bestanden op bij exact dezelfde OciDeck-tag die wordt verwerkt.
  4. Roep het script vanuit $WORK/scripts/ aan en behoud de huidige fail-closed handtekeningcontrole.
  5. Commit en push de nieuwe cask met het bestaande repo-beperkte Actions-token.
  6. Voeg een kleine contractcontrole toe die vóór uitvoering bewijst dat minisign, de publieke sleutel en de drie verwachte paden bestaan.

Acceptatiecriteria

  • Een handmatige workflowdispatch verwerkt v0.6.14 volledig groen.
  • Casks/ocideck.rb bevat versie 0.6.14 en exact de hash uit de met minisign geverifieerde SHA256SUMS.
  • Een ontbrekende verifier, ontbrekende sleutel of ongeldige handtekening blijft de workflow blokkeren.
  • De oplossing gebruikt geen persoonlijk toegangstoken en verruimt geen rechten buiten deze repository.
  • Na de push loopt de bestaande GitHub-spiegel bij en zijn beide casks inhoudelijk gelijk.
  • De eerstvolgende geplande run is idempotent groen en maakt geen nieuwe commit.
  • De regressiecontrole faalt wanneer één van de drie opgehaalde bouwstenen wordt weggelaten.

Relaties

  • OciDeck-run die het achterlopen detecteert: #5521
  • OciDeck v0.6.14-publicatie: v0.6.14
## Probleem Sinds de publicatie van OciDeck v0.6.14 blijft de canonieke Homebrew-tap op v0.6.13 staan. De halfuurlijke workflow `Cask bijhouden` faalt sinds 6 oktober onafgebroken; op 8 oktober waren dat 108 opeenvolgende mislukte runs. Daardoor krijgen gebruikers via zowel de Forgejo-tap als de GitHub-spiegel nog v0.6.13. Voorbeeld: [taprun #2323](https://pawprint.vigilis.online/LibreKAT/homebrew-ocideck/actions/runs/2323) eindigt met: ``` Nieuwste stabiele release: v0.6.14 minisign verifier not found ``` ## Oorzaak OciDeck v0.6.14 heeft `scripts/update_homebrew_cask.sh` terecht fail-closed gemaakt: het script vertrouwt `SHA256SUMS` pas nadat `SHA256SUMS.minisig` is geverifieerd tegen de bij de tag behorende `minisign.pub`. De workflow in deze repository voldoet niet aan dat nieuwe contract: - het gebruikte image `ocideck-ci:flutter-3.47.0` bevat geen `minisign`; - de workflow haalt alleen het generatiescript en de casktemplate op, niet `minisign.pub`; - het script wordt als `$WORK/update_homebrew_cask.sh` geplaatst, terwijl het via zijn eigen pad de repositoryroot bepaalt en dus de verwachte layout `$WORK/scripts/update_homebrew_cask.sh` nodig heeft. Alleen `minisign` installeren is daarom onvoldoende: daarna ontbreekt nog steeds de publieke sleutel op het verwachte pad. Dit is geen rechten- of tokenprobleem. De workflow gebruikte voor v0.6.13 succesvol het door Forgejo verstrekte, repo-beperkte Actions-token. Voeg geen persoonlijk toegangstoken of cross-repo secret toe. ## Oplossingsrichting 1. Installeer Ubuntu 24.04’s officiële `minisign`-pakket in de caskjob, of gebruik een aantoonbaar gepind image waarin dezelfde verifier aanwezig is. 2. Bouw een tijdelijke layout die overeenkomt met de OciDeck-repository: - `$WORK/scripts/update_homebrew_cask.sh`; - `$WORK/homebrew/ocideck.rb.tmpl`; - `$WORK/minisign.pub`. 3. Haal alle drie bestanden op bij exact dezelfde OciDeck-tag die wordt verwerkt. 4. Roep het script vanuit `$WORK/scripts/` aan en behoud de huidige fail-closed handtekeningcontrole. 5. Commit en push de nieuwe cask met het bestaande repo-beperkte Actions-token. 6. Voeg een kleine contractcontrole toe die vóór uitvoering bewijst dat `minisign`, de publieke sleutel en de drie verwachte paden bestaan. ## Acceptatiecriteria - Een handmatige workflowdispatch verwerkt v0.6.14 volledig groen. - `Casks/ocideck.rb` bevat versie 0.6.14 en exact de hash uit de met `minisign` geverifieerde `SHA256SUMS`. - Een ontbrekende verifier, ontbrekende sleutel of ongeldige handtekening blijft de workflow blokkeren. - De oplossing gebruikt geen persoonlijk toegangstoken en verruimt geen rechten buiten deze repository. - Na de push loopt de bestaande GitHub-spiegel bij en zijn beide casks inhoudelijk gelijk. - De eerstvolgende geplande run is idempotent groen en maakt geen nieuwe commit. - De regressiecontrole faalt wanneer één van de drie opgehaalde bouwstenen wordt weggelaten. ## Relaties - OciDeck-run die het achterlopen detecteert: [#5521](https://pawprint.vigilis.online/LibreKAT/Ocideck/actions/runs/5521) - OciDeck v0.6.14-publicatie: [v0.6.14](https://pawprint.vigilis.online/LibreKAT/Ocideck/releases/tag/v0.6.14)
Sign in to join this conversation.
No labels
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set

Reference
LibreKAT/homebrew-ocideck#2
No description provided.