On Mon 2025-06-02 19:15:01 +0100, Simon McVittie wrote:
> Sure, but unfortunately we don't live in an ideal world, and we're 
> unlikely to arrive in one before the trixie release!

agreed, hence the patch ;) I'd love to hear suggestions for what next
steps you think we need to get closer to the ideal world post release!

>>In the long run, it would be nice to not hard-code this specific
>>preference list, and just let the system default OpenPGP verifier work
>>as planned.
>
> What is "the system default OpenPGP verifier"? Is that a 
> yet-to-be-designed mechanism, or some sort of default-sopv virtual 
> package or metapackage, or what?

i'd expect the system default OpenPGP verifier to be whatever package
Provides: sopv, and is pointed to by sopv in the default $PATH.  At the
moment, that's an update-alternatives question.  Guillem and I have had
a lengthy conversation [0] about possible other ways of doing it, which
haven't really resolved into anything beyond what's in place today.

[0] https://gitlab.com/dkg/openpgp-stateless-cli/-/issues/42

I'd love to get more feedback on what you (and others) think a stable
and simple way to have that be a stock choice for debian.

>>For OpenPGP signature verification, prefer specific implementations of
>>the Stateless OpenPGP Verification subset rather than just the generic
>>"sopv" variant.
> ...
>>+ sqopv | rsopv | gosop | sopv | gpgv,
>
> Thanks, this answers the question I wanted to ask on behalf of my Debian 
> derivative: "which sopv implementation should we prefer to work around 
> this?" -> sqopv.

i don't personally have a strong preference among the three listed
implementations.  I've tested them all personally and i found them
reasonable both in terms of performance and robustness; and they all
perform well on the OpenPGP Interoperability Test Suite [0]. I chose the
order here following Holger's listing, really.

[0] https://tests.sequoia-pgp.org/

> But, is there a reason why the less-preferred (non-sqopv) 
> implementations need to be listed explicitly? If they can be dropped 
> from the or-group, then that would mitigate your maintenance concerns.

I agree we could remove them, probably without any functional
difference.  Similarly, we could choose either of the other two as that
primary placement and it would also be fine on all release
architectures.

> sqopv seems to exist on all release architectures, and on all -ports 
> architectures that have a working rustc/cargo. Even if we're assuming 
> that non-Rust -ports architectures are important, the the minimum to get 
> a predictable installation would be to list some real package that 
> exists on those architectures as higher-preference than (i.e. before)
> the sopv virtual package, like maybe:
>
>      sqopv     # real package, but not on all architectures
>      | gpgv    # real package, portable fallback
>      | sopv    # virtual package

I think this order would be a mistake.  We should prefer sopv over gpgv,
because the sopv semantics and interface are deliberately minimalist,
stable, and well-understood.  gpgv has corner cases that make it
challenging to use in situations where OpenPGP might evolve (e.g., it
fails when it sees a signature that it doesn't understand, even if that
signature is coupled with a signature it *does* understand; and, its
ability to select which OpenPGP certificate to trust can't cope with
armored certificates; and, the way that you identify certificates has
idiosyncratic rules that don't follow standard unix conventions; and, it
deliberately doesn't implement the latest version of OpenPGP).

Please list gpgv *after* sopv.  I say this as one of the co-maintainers
of the GnuPG suite in debian.  If anything, i would recommend dropping
support for gpgv from devscripts.  It will still be usable in normalized
form with sopv-gpgv for those people who really want that to be their
system OpenPGP verifier.  And there will be less code to maintain in
devscripts.

> (Or, perhaps more realistically, if we get a default-sopv metapackage or 
> virtual package in forky, then that would replace sqopv.)

That's an interesting proposal, and i'd be happy to work through the
details there and make it happen after the trixie release.

        --dkg

Attachment: signature.asc
Description: PGP signature

Reply via email to