Hi, Quoting John Paul Adrian Glaubitz (2016-06-14 23:42:45) > I recently accidentally upgraded gnupg in my experimental chroots to > version 2.x. This upgrade rendered the chroots unusable with sbuild, > attempting to build a package will fail with the following error: > > gpg: /«BUILDDIR»/resolver-X436Nh/gpg/trustdb.gpg: trustdb created > gpg: Warning: not using 'Sbuild Signer' as default key: No secret key > gpg: all values passed to '--default-key' ignored > gpg: no default secret key: No secret key > gpg: signing failed: No secret key > Failed to sign dummy archive Release file. > > Downgrading gnupg to 1.4.x resolves the problem again.
thanks a lot for reporting this! I can now reproduce this outside of sbuild in the following way. In a Debian unstable chroot with gnupg 1.4.20-6 I set up a new keypair and $GNUPGHOME by issuing the following commands: $ export GNUPGHOME=/tmp/gpg $ mkdir /tmp/apt_archive $ mkdir --mode=0700 /tmp/gpg $ cat > /tmp/gpgbatch <<EOF > Key-Type: RSA > Key-Length: 1024 > Name-Real: Sbuild Signer > Name-Comment: Sbuild Build Dependency Archive Key > Name-Email: buildd-tools-de...@lists.alioth.debian.org > Expire-Date: 0 > %secring /tmp/apt_archive/sbuild-key.sec > %pubring /tmp/apt_archive/sbuild-key.pub > %commit > EOF $ gpg --no-options --no-default-keyring --batch --gen-key /tmp/gpgbatch I then copy /tmp/gpg and /tmp/apt_archive to a Debian unstable chroot with experimental enabled and the gnupg package upgraded to version 2.1.12-1. I create a dummy Release file in /tmp/apt_archive/Release and then run: $ gpg --yes --no-default-keyring --homedir /tmp/gpg \ --secret-keyring /tmp/apt_archive/sbuild-key.sec \ --keyring /tmp/apt_archive/sbuild-key.pub \ --default-key 'Sbuild Signer' -abs --digest-algo SHA512 \ -o /tmp/apt_archive/Release.gpg /tmp/apt_archive/Release This results in: gpg: starting migration from earlier GnuPG versions gpg: porting secret keys from '/tmp/gpg/secring.gpg' to gpg-agent gpg: migration succeeded gpg: /tmp/gpg/trustdb.gpg: trustdb created gpg: Warning: not using 'Sbuild Signer' as default key: No secret key gpg: all values passed to '--default-key' ignored gpg: no default secret key: No secret key gpg: signing failed: No secret key Thanks to Daniel Kahn Gillmor in #debian-gnupg, a solution that would solve this problem and at the same time that keys generated with gnupg 2.1.12-1 outside the chroot are not compatible with 1.4.20-6 (or earlier) inside the chroot would be to always use gpg --export, gpg --export-secret-keys, and gpg --import. I'll work on a fix which lets sbuild-update generate plain keys using the above method and store it in /var/lib/sbuild/apt-keys under a different file name. Then sbuild can do the right thing depending on which keys it finds in that directory while still being compatible with the old keys. Thanks! cheers, josch
signature.asc
Description: signature