From e8d12186d1efc5027b6946cc6467fb6855319b08 Mon Sep 17 00:00:00 2001 From: kolaente Date: Sun, 12 Apr 2026 16:49:36 +0200 Subject: [PATCH] fix(ci): configure gpg loopback pinentry for reprepro signing reprepro uses gpgme which bypasses the preset passphrase cache and tries to launch a pinentry dialog, failing in CI with "Inappropriate ioctl for device". Adding loopback pinentry mode allows gpgme to obtain the passphrase without a dialog. --- .github/workflows/release.yml | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index cf4f08435..c8aee77f5 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -259,6 +259,13 @@ jobs: gpg-passphrase: "${{ secrets.RELEASE_GPG_PASSPHRASE }}" gpg-sign-key: "${{ secrets.RELEASE_GPG_SIGN_KEY }}" + - name: Configure GPG for non-interactive signing + run: | + echo "pinentry-mode loopback" >> ~/.gnupg/gpg.conf + echo "allow-loopback-pinentry" >> ~/.gnupg/gpg-agent.conf + gpgconf --kill gpg-agent + gpg-connect-agent reloadagent /bye + - name: Export GPG public key run: | mkdir -p dist/repo-output