Discussion:
GnuPG 2.4 before Trixie freeze
Add Reply
Stephan Verbücheln
2024-09-24 12:50:02 UTC
Reply
Permalink
Hello everyone

Debian Trixie and Sid still have GnuPG 2.2.x. GnuPG 2.4.5 is available
in Experimental.
GnuPG 2.4.0 was released on December 20, 2022. The 2.4.x series has
various useful new features such as TPM support.


Is it realistic to get GnuPG 2.4 into Trixie before the freeze?

What is missing for acceptance into unstable/testing?

Regards
Stephan
Fabio Fantoni
2024-09-24 13:10:01 UTC
Reply
Permalink
Post by Stephan Verbücheln
Hello everyone
Debian Trixie and Sid still have GnuPG 2.2.x. GnuPG 2.4.5 is available
in Experimental.
GnuPG 2.4.0 was released on December 20, 2022. The 2.4.x series has
various useful new features such as TPM support.
Is it realistic to get GnuPG 2.4 into Trixie before the freeze?
What is missing for acceptance into unstable/testing?
Regards
Stephan
You can search bugs related to 2.4 and looking into them for possible
information, for example from a very fast look this seems one:

https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=1022702
Stephan Verbücheln
2024-11-26 10:50:02 UTC
Reply
Permalink
I tried to find a blocking bug before my question on debian-devel, but
I could not find any bug which justifies the delay.

Note that Ubuntu 24.04 LTS also already uses GnuPG 2.4.x, so I do not
expect a problem with the Debian tooling base like dpkg and apt.

Regards
Stephan Verbücheln
2025-01-04 08:50:01 UTC
Reply
Permalink
Please note that GnuPG 2.2 is also end of life now.

https://gnupg.org/download/index.html

Regards
Frank Guthausen
2025-01-07 14:00:02 UTC
Reply
Permalink
On Sat, 04 Jan 2025 08:42:10 +0000
Post by Stephan Verbücheln
Please note that GnuPG 2.2 is also end of life now.
https://gnupg.org/download/index.html
GnuPG 2.4.7 is in experimental[1] but neither yet in sid[2] or trixie[3]
(where it is version 2.2.45-2 in both repositories). The trixie freeze
timeline is not yet announced[4] but compared to bookworm[5] one might
guess this will happen in the near future.

Is there enough time to shift GnuPG 2.4
into trixie until the planned summer release?

[1] https://packages.debian.org/experimental/gnupg
[2] https://packages.debian.org/sid/gnupg
[3] https://packages.debian.org/trixie/gnupg
[4] https://release.debian.org/testing/freeze_policy.html
[5] https://release.debian.org/bookworm/freeze_policy.html
--
kind regards
Frank
Simon Josefsson
2025-01-07 14:20:01 UTC
Reply
Permalink
Post by Frank Guthausen
On Sat, 04 Jan 2025 08:42:10 +0000
Post by Stephan Verbücheln
Please note that GnuPG 2.2 is also end of life now.
https://gnupg.org/download/index.html
GnuPG 2.4.7 is in experimental[1] but neither yet in sid[2] or trixie[3]
(where it is version 2.2.45-2 in both repositories). The trixie freeze
timeline is not yet announced[4] but compared to bookworm[5] one might
guess this will happen in the near future.
Is there enough time to shift GnuPG 2.4
into trixie until the planned summer release?
I believe this would be good, I frequently run into GnuPG bugs in the
2.2.x branch that was fixed years ago in 2.4 and today I mostly these on
Debian because others moved on to 2.4.x. Andreas, can you give a
current status of pending issues for experimental->unstable upload?

It seems there is push from the anti-GnuPG people to promote a fork
called FreePG instead of real GnuPG, will you package that?

https://gitlab.com/freepg/gnupg

If so I think there would be value in having the real GnuPG as a
separate Debian package, for those who want to use the real version.

/Simon
Post by Frank Guthausen
[1] https://packages.debian.org/experimental/gnupg
[2] https://packages.debian.org/sid/gnupg
[3] https://packages.debian.org/trixie/gnupg
[4] https://release.debian.org/testing/freeze_policy.html
[5] https://release.debian.org/bookworm/freeze_policy.html
Andreas Metzler
2025-01-07 18:10:02 UTC
Reply
Permalink
On 2025-01-07 Simon Josefsson <***@josefsson.org> wrote:
[...]
Post by Simon Josefsson
I believe this would be good, I frequently run into GnuPG bugs in the
2.2.x branch that was fixed years ago in 2.4 and today I mostly these on
Debian because others moved on to 2.4.x. Andreas, can you give a
current status of pending issues for experimental->unstable upload?
Hello,
... guessing I might be the Andreas in question ...

Afaik there is no /known/ blocker except for the libgnupg-interface-perl
test error #1088155.

Should we move to 2.4? 2.4 is not a LTS release and will also EOL in
trixie' soon (2026-06-30).

2.6 will be the next LTS release. It has not yet been declared stable
and definitly is an implementation of librepgpg instead of the RFC
blessed version.

cu Andreas
Stephan Verbücheln
2025-01-07 18:40:01 UTC
Reply
Permalink
Current Ubuntu 24.04 LTS also uses GnuPG 2.4 and probably has a similar
set of patches.

Regards
Simon Josefsson
2025-01-07 20:00:01 UTC
Reply
Permalink
Post by Andreas Metzler
[...]
Post by Simon Josefsson
I believe this would be good, I frequently run into GnuPG bugs in the
2.2.x branch that was fixed years ago in 2.4 and today I mostly these on
Debian because others moved on to 2.4.x. Andreas, can you give a
current status of pending issues for experimental->unstable upload?
Hello,
... guessing I might be the Andreas in question ...
Afaik there is no /known/ blocker except for the libgnupg-interface-perl
test error #1088155.
Thanks -- that is good to know!
Post by Andreas Metzler
Should we move to 2.4? 2.4 is not a LTS release and will also EOL in
trixie' soon (2026-06-30).
It seems 2.4 is the latest stable branch since 2021, so it looks better
than shipping a branch created in 2014-11-06 that had EOL at 2024-12-31.

/Simon
Post by Andreas Metzler
2.6 will be the next LTS release. It has not yet been declared stable
and definitly is an implementation of librepgpg instead of the RFC
blessed version.
cu Andreas
Jonathan McDowell
2025-01-08 10:00:01 UTC
Reply
Permalink
Post by Andreas Metzler
[...]
Post by Simon Josefsson
I believe this would be good, I frequently run into GnuPG bugs in the
2.2.x branch that was fixed years ago in 2.4 and today I mostly these on
Debian because others moved on to 2.4.x. Andreas, can you give a
current status of pending issues for experimental->unstable upload?
Hello,
... guessing I might be the Andreas in question ...
Afaik there is no /known/ blocker except for the libgnupg-interface-perl
test error #1088155.
Should we move to 2.4? 2.4 is not a LTS release and will also EOL in
trixie' soon (2026-06-30).
I haven't been fully following the GnuPG situation, but did the
situation where 2.4 would generate v4 keys that weren't fully compatible
with the wider ecosystem get solved? Is the patch RedHat et al are
carrying sufficient for that?

J.
--
Revd Jonathan McDowell, ULC | Covered in paint and high as a kite.
Andreas Metzler
2025-01-08 17:50:01 UTC
Reply
Permalink
[...]
Post by Jonathan McDowell
Post by Andreas Metzler
Should we move to 2.4? 2.4 is not a LTS release and will also EOL in
trixie' soon (2026-06-30).
I haven't been fully following the GnuPG situation, but did the
situation where 2.4 would generate v4 keys that weren't fully compatible
with the wider ecosystem get solved? Is the patch RedHat et al are
carrying sufficient for that?
Hello,

I asked about gnupg2-revert-rfc4880bis.patch on the Debian gnupg list, it
is not sufficient and not really to the point,
https://alioth-lists.debian.net/pipermail/pkg-gnupg-maint/2024-February/009217.html

We have used these two patches instead
https://salsa.debian.org/debian/gnupg2/-/blob/debian/experimental/debian/patches/update-defaults/gpg-Do-not-set-OCB-key-preference.diff
https://salsa.debian.org/debian/gnupg2/-/blob/debian/experimental/debian/patches/update-defaults/gpg-encrypt-disrespect-OCB-key-preference.diff
which are needed for 2.2.x nowadays, too.

cu Andreas
--
`What a good friend you are to him, Dr. Maturin. His other friends are
so grateful to you.'
`I sew his ears on from time to time, sure'
Frank Guthausen
2025-01-17 20:00:01 UTC
Reply
Permalink
On Tue, 7 Jan 2025 19:01:51 +0100
Post by Andreas Metzler
Afaik there is no /known/ blocker except for the
libgnupg-interface-perl test error #1088155.
According to bug report[1] there are failed subtests in 2.4.6 but these
are not specified. What causes this failures and what needs to be done
to resolv the bug? Is the situation unchanged with 2.4.7? Is there a
patch missing? Configuration issue? Is this a bug in the test suite
itself?

[1] https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=1088155
--
kind regards
Frank
Daniel Kahn Gillmor
2025-01-08 23:10:01 UTC
Reply
Permalink
Thanks for this discussion, all--
Post by Simon Josefsson
I believe this would be good, I frequently run into GnuPG bugs in the
2.2.x branch that was fixed years ago in 2.4
Can you identify some of those bugs? It would be good to be clear about
what 2.2 is lacking.

For example, if you're talking about [easypg-deadlock], that was a bug
introduced on both GnuPG branches at once, and (during GnuPG's stated
maintenance window for 2.2) deliberately left unfixed on the 2.2 branch.

[easypg-deadlock] https://bugs.debian.org/1071552 a.k.a. https://dev.gnupg.org/T6481
Post by Simon Josefsson
Andreas, can you give a current status of pending issues for
experimental->unstable upload?
Andreas has done great work packaging the 2.4 branch and preparing it
for consideration in Debian. As he wrote elsewhere in this thread, 2.4
isn't likely to be supported through the lifetime of trixie either ☹

Aside from GnuPG's ongoing architectural challenges, the thing i
personally most want to avoid for Debian would be contributing to the
schism where longstanding users of OpenPGP are suddenly migrated to
non-OpenPGP artifacts that other OpenPGP implementations can't or won't
support. GnuPG seems to be going their own way there, despite
documented problems with some of their chosen cryptographic constructs
like [v5-v3-signature-aliases] and [encryption-key-separation].

[v5-v3-signature-aliases] https://gitlab.com/openpgp-wg/rfc4880bis/-/issues/130
[encryption-key-separation] https://gitlab.com/openpgp-wg/rfc4880bis/-/merge_requests/101
Post by Simon Josefsson
It seems there is push from the anti-GnuPG people to promote a fork
called FreePG instead of real GnuPG, will you package that?
https://gitlab.com/freepg/gnupg
All the relevant 2.2 patches in the FreePG repository are already in
Debian's unstable branch, and in most cases we have been shipping them
for years to address user needs that upstream GnuPG declines to
acknowledge or support. I've uploaded 2.2.46 today with our patches
renamed to match the names and annotations of this cross-distro effort.

I'm gradually trying to push other pieces of our divergence into the
FreePG patchset so that other distributions that want to keep shipping
GnuPG can arrive at a common and functional baseline. This gives us
opportunities to get feedback from other distros as well. In the ideal
case, of course, we'd eliminate all our divergence from upstream, but
that would depend on upstream being interested in working with the use
cases and concerns that our users have.

The FreePG project's visibility is also attracting attention from some
other downstreams of GnuPG that have distinct fixes that they've been
carrying that i hadn't been aware of, and we might end up adopting some
of their changes too.

If Andreas is interested, i'm happy to do the same alignment with the
FreePG patchset on the debian packaging for 2.4 (the debian/experimental
branch) too, to gather the same sort of cross-distro consensus.
Post by Simon Josefsson
If so I think there would be value in having the real GnuPG as a
separate Debian package, for those who want to use the real version.
Which of the patches in FreePG do you think are harmful for debian
users? As someone who has contributed years of labor into making sure
GnuPG provides a functional (if not quite as usable or robust as i would
like) interface to OpenPGP users on debian and derived distros, our
divergence from GnuPG upstream is a carefully curated set that tries to
address the most significant problems that upstream has declined to
accept.

So far, the FreePG patches seem to align pretty closely with that vision
(and where they don't align we can either skip them completely, or
propose improvements in the FreePG project just as we would with any
reasonable upstream).

It doesn't seem like normal practice to ask other debian maintainer
teams that are carrying patches requested by users but dismissed by
upstream to ship "the real version" of the upstream codebase. Is there
a reason that GnuPG needs such a process?

I welcome review and critique of the packaging for this tricky package,
which is pretty deeply embedded in Debian (though getting less so, as
apt no longer requires it and we have many other OpenPGP implementations
available today). I'd be even more delighted with offers of active
co-maintenance beyond the work that Andreas and i have been doing.

Regards,

--dkg
Stephan Verbücheln
2025-01-09 07:00:01 UTC
Reply
Permalink
GnuPG 2.4 was released in 2022, long before the LibrePGP schism. It is
generally not clear to me how the divergence from upstream is a reason
to favor 2.2 over 2.4, except that patches have to be ported (once?).

I also do not understand what is wrong/lacking with the already patched
versions in Experimental and Ubuntu.

https://packages.debian.org/experimental/gnupg

https://packages.ubuntu.com/noble/gnupg
https://packages.ubuntu.com/oracular/gnupg

Regards
Stephan
Daniel Kahn Gillmor
2025-01-09 23:30:01 UTC
Reply
Permalink
Post by Stephan Verbücheln
GnuPG 2.4 was released in 2022, long before the LibrePGP schism. It is
generally not clear to me how the divergence from upstream is a reason
to favor 2.2 over 2.4, except that patches have to be ported (once?).
sadly, 2.4 was released at a time when the LibrePGP schism was on the
horizon, and it was clear that GnuPG was going to go ahead and publish
whatever it wanted to do, rather than aligning with the rest of the
OpenPGP ecosystem.

This means it was producing "OpenPGP" artifacts that hadn't been
confirmed as interoperable by other implementations, or even had a
reasonable amount of cryptographic review (see the links in my previous
mail in this thread).

For example, OpenPGP certificates produced by earlier versions of 2.4
and imported into Thunderbird advertised non-standardized encryption
mechanisms that Thunderbird didn't support, which led to unreadable
mails for those users.

That's why we delayed bringing 2.4 into debian, so that our users
wouldn't get locked into non-standard or suboptimal cryptographic
mechanisms.
Post by Stephan Verbücheln
I also do not understand what is wrong/lacking with the already patched
versions in Experimental and Ubuntu.
https://packages.debian.org/experimental/gnupg
I can't speak to the versions in Ubuntu, but the work in experimental
helps us to understand exactly what we would be getting into if we were
to switch, in terms of emitting non-standardized or non-interoperable
formats. I agree that we should try to minimize risk there, and moving
to some stabilized version of 2.4 might be a good thing, given
upstream's increased attention to 2.4 compared to 2.2. If we can do
that safely, we will, but there's review work to be done to make sure it
really is sensible.

One of the nice things about FreePG is that we can share the load of
work toward safety and interoperability and robustness with other
downstream users of GnuPG who have the same concerns.

Regards,

--dkg
Frank Guthausen
2025-01-10 08:30:01 UTC
Reply
Permalink
On Thu, 09 Jan 2025 18:29:02 -0500
Post by Daniel Kahn Gillmor
Post by Stephan Verbücheln
GnuPG 2.4 was released in 2022, long before the LibrePGP schism. It
is generally not clear to me how the divergence from upstream is a
reason to favor 2.2 over 2.4, except that patches have to be ported
(once?).
sadly, 2.4 was released at a time when the LibrePGP schism was on the
horizon,
I reconstructed the following timeline:

Debian bullseye hard freeze[1]: 2021-03-12
According to Upstream[2], GnuPG 2.4 birth: 2021-04-07 (maybe as devel)
Debian bullseye full freeze[1]: 2021-07-17
First package (2.4.0) in experimental[3]: 2022-12-25
Debian bookworm hard freeze[4]: 2023-03-12
Debian bookworm full freeze[4]: 2023-05-24
Ubuntu 24.04 LTS (Noble Numbat) release[5]: 2024-04
RNP LibrePGP support[6]: 2024-07-22
OpenPGP RFC 9580 release[7]: 2024-07-31
Post by Daniel Kahn Gillmor
For example, OpenPGP certificates produced by earlier versions of 2.4
and imported into Thunderbird advertised non-standardized encryption
mechanisms that Thunderbird didn't support, which led to unreadable
mails for those users.
Is this still a problem with GnuPG 2.4.7? Can this be adjusted by
changing default configuration in the Debian package? Does it need
a code patch?

Thunderbird seems to use the RNP[8] crypto library which supports
a cooperative workflow with GnuPG via LibrePGP. Are there patches
to remove this behaviour in Debian?
Post by Daniel Kahn Gillmor
That's why we delayed bringing 2.4 into debian, so that our users
wouldn't get locked into non-standard or suboptimal cryptographic
mechanisms.
Still having GnuPG 2.2 in Debian is similarly suboptimal. At
the moment users are locked into using a software version tree
which started 2014-11-06 which is more than a decade ago.


[1] https://release.debian.org/bullseye/freeze_policy.html
[2] https://gnupg.org/download/index.html
[3] https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=1022702
[4] https://release.debian.org/bookworm/freeze_policy.html
[5] https://ubuntu.com/about/release-cycle
[6] https://www.rnpgp.org/blog/2024-07-22-rnp-and-librepgp/
[7] https://datatracker.ietf.org/doc/rfc9580/
[8] https://www.rnpgp.org/
--
kind regards
Frank
Andreas Metzler
2025-01-10 18:40:01 UTC
Reply
Permalink
On 2025-01-10 Frank Guthausen <***@shimps.de> wrote:
[...]
Post by Frank Guthausen
Debian bullseye hard freeze[1]: 2021-03-12
According to Upstream[2], GnuPG 2.4 birth: 2021-04-07 (maybe as devel)
Definitely -devel
https://lists.gnupg.org/pipermail/gnupg-announce/2021q2/000458.html
2.4.0 was released more than 18 months later in December 2022
https://lists.gnupg.org/pipermail/gnupg-announce/2022q4/000477.html
Post by Frank Guthausen
Debian bullseye full freeze[1]: 2021-07-17
First package (2.4.0) in experimental[3]: 2022-12-25
Debian bookworm hard freeze[4]: 2023-03-12
Debian bookworm full freeze[4]: 2023-05-24
Ubuntu 24.04 LTS (Noble Numbat) release[5]: 2024-04
RNP LibrePGP support[6]: 2024-07-22
OpenPGP RFC 9580 release[7]: 2024-07-31
Post by Daniel Kahn Gillmor
For example, OpenPGP certificates produced by earlier versions of 2.4
and imported into Thunderbird advertised non-standardized encryption
mechanisms that Thunderbird didn't support, which led to unreadable
mails for those users.
Is this still a problem with GnuPG 2.4.7? Can this be adjusted by
changing default configuration in the Debian package? Does it need
a code patch?
Patch. This is about AEAD OCB.
Post by Frank Guthausen
Thunderbird seems to use the RNP[8] crypto library which supports
a cooperative workflow with GnuPG via LibrePGP. Are there patches
to remove this behaviour in Debian?
[...]

I do not know the current status, but afaik thunderbird (not Debian
specific) configures rnp, version 128 release notes said:
| Disabled support for LibrePGP v5 AEAD/OCB decryption

cu Andreas
--
`What a good friend you are to him, Dr. Maturin. His other friends are
so grateful to you.'
`I sew his ears on from time to time, sure'
Frank Guthausen
2025-01-13 10:20:01 UTC
Reply
Permalink
On Fri, 10 Jan 2025 19:33:01 +0100
Post by Andreas Metzler
Post by Frank Guthausen
Is this still a problem with GnuPG 2.4.7? Can this be adjusted by
changing default configuration in the Debian package? Does it need
a code patch?
Patch. This is about AEAD OCB.
Does this path exist already? Is there an overview which pathches are
required and which are available? What are the open todos and stoppers
to be dealt with before shifting to sid and trixie? Is there anything
the community can do to support and speed up the workflow? Is there a
list of tests which need to be done and could be crowdsourced?
--
kind regards
Frank
Julian Andres Klode
2025-01-10 19:10:02 UTC
Reply
Permalink
Post by Stephan Verbücheln
GnuPG 2.4 was released in 2022, long before the LibrePGP schism. It is
generally not clear to me how the divergence from upstream is a reason
to favor 2.2 over 2.4, except that patches have to be ported (once?).
I also do not understand what is wrong/lacking with the already patched
versions in Experimental and Ubuntu.
https://packages.debian.org/experimental/gnupg
https://packages.ubuntu.com/noble/gnupg
https://packages.ubuntu.com/oracular/gnupg
This is being tracked in

https://bugs.launchpad.net/ubuntu/+source/gnupg2/+bug/2090995

and you can see we picked more patches in plucky to align with
the broader ecosystem to revert the dangerous changes in default
generation of rfc4880bis keys.
--
debian developer - deb.li/jak | jak-linux.org - free software dev
ubuntu core developer i speak de, en
Simon Josefsson
2025-01-13 10:10:01 UTC
Reply
Permalink
Post by Daniel Kahn Gillmor
Thanks for this discussion, all--
Post by Simon Josefsson
I believe this would be good, I frequently run into GnuPG bugs in the
2.2.x branch that was fixed years ago in 2.4
Can you identify some of those bugs? It would be good to be clear about
what 2.2 is lacking.
I actually meant missing features. From my recollection it was features
related to support for some subset of combinations of 25519, gpgsm,
smartcards and the gpg/ssh agent. Things didn't work in GnuPG 2.2 but
was fixed years ago in 2.4.

/Simon
Stephan Verbücheln
2025-01-13 11:10:02 UTC
Reply
Permalink
Since GnuPG 2.4 probably does not have any features removed (compared
to 2.2), is there anything other to do than patching the defaults for
new keys?

Debian has patches regarding GnuPG key defaults anyway, e.g. RSA key
size of 3072.

Regards
Daniel Kahn Gillmor
2025-01-13 13:50:01 UTC
Reply
Permalink
Post by Simon Josefsson
I actually meant missing features. From my recollection it was features
related to support for some subset of combinations of 25519, gpgsm,
smartcards and the gpg/ssh agent. Things didn't work in GnuPG 2.2 but
was fixed years ago in 2.4.
If you could identify the specific missing feature, i'd love to try to
figure out what's going on there (with either 2.2 or 2.4). A bug report
would be particularly useful. Thanks!

--dkg
Simon Josefsson
2025-01-13 14:00:01 UTC
Reply
Permalink
Post by Daniel Kahn Gillmor
Post by Simon Josefsson
I actually meant missing features. From my recollection it was features
related to support for some subset of combinations of 25519, gpgsm,
smartcards and the gpg/ssh agent. Things didn't work in GnuPG 2.2 but
was fixed years ago in 2.4.
If you could identify the specific missing feature, i'd love to try to
figure out what's going on there (with either 2.2 or 2.4). A bug report
would be particularly useful. Thanks!
I found one of them:

https://dev.gnupg.org/T5931

I didn't test if more recent GnuPG 2.2.x contain a fix for this. From
the bug log it doesn't look that way. This happens for all my SSH
connections to modern systems, when I work from Debian-based machines
and have forgotten to update GnuPG to 2.4.x or apply the workaround that
weakens my security.

I don't think gpgsm supports creating Ed25519 certificates using
hardware tokens in GnuPG 2.2.x? That works in 2.4.x. I must admit
again I did not re-check the most recent 2.2.x series.

/Simon
Simon Josefsson
2025-01-13 10:20:01 UTC
Reply
Permalink
Post by Daniel Kahn Gillmor
Aside from GnuPG's ongoing architectural challenges, the thing i
personally most want to avoid for Debian would be contributing to the
schism where longstanding users of OpenPGP are suddenly migrated to
non-OpenPGP artifacts that other OpenPGP implementations can't or won't
support. GnuPG seems to be going their own way there, despite
documented problems with some of their chosen cryptographic constructs
like [v5-v3-signature-aliases] and [encryption-key-separation].
[v5-v3-signature-aliases] https://gitlab.com/openpgp-wg/rfc4880bis/-/issues/130
[encryption-key-separation] https://gitlab.com/openpgp-wg/rfc4880bis/-/merge_requests/101
I don't think that is a neutral way of expressing the situation. The
situation seems to be that there are two set of implementations that
have chosen to not interoperate with the other set. Where to cast the
blame depends on which perspective you take. Reversely, the first
implementations to support a superset of approaches is likely to be seen
as a constructive force in this mess.
Post by Daniel Kahn Gillmor
Post by Simon Josefsson
It seems there is push from the anti-GnuPG people to promote a fork
called FreePG instead of real GnuPG, will you package that?
https://gitlab.com/freepg/gnupg
All the relevant 2.2 patches in the FreePG repository are already in
Debian's unstable branch, and in most cases we have been shipping them
for years to address user needs that upstream GnuPG declines to
acknowledge or support. I've uploaded 2.2.46 today with our patches
renamed to match the names and annotations of this cross-distro effort.
I'm gradually trying to push other pieces of our divergence into the
FreePG patchset so that other distributions that want to keep shipping
GnuPG can arrive at a common and functional baseline. This gives us
opportunities to get feedback from other distros as well. In the ideal
case, of course, we'd eliminate all our divergence from upstream, but
that would depend on upstream being interested in working with the use
cases and concerns that our users have.
The FreePG project's visibility is also attracting attention from some
other downstreams of GnuPG that have distinct fixes that they've been
carrying that i hadn't been aware of, and we might end up adopting some
of their changes too.
If Andreas is interested, i'm happy to do the same alignment with the
FreePG patchset on the debian packaging for 2.4 (the debian/experimental
branch) too, to gather the same sort of cross-distro consensus.
Post by Simon Josefsson
If so I think there would be value in having the real GnuPG as a
separate Debian package, for those who want to use the real version.
Which of the patches in FreePG do you think are harmful for debian
users?
Let's reverse it: Which of the patches in FreePG do you think are useful
for Debian users?

Who is behind FreePG? The group is created by pseduonyms with no
earlier contributions:

https://gitlab.com/groups/freepg/-/group_members

Do we want to trust the GnuPG author on what GnuPG should be?

Or do we want to trust 'Hooty McOwlface' with no earlier publicly
recorded community contributions?
Post by Daniel Kahn Gillmor
As someone who has contributed years of labor into making sure GnuPG
provides a functional (if not quite as usable or robust as i would
like) interface to OpenPGP users on debian and derived distros, our
divergence from GnuPG upstream is a carefully curated set that tries
to address the most significant problems that upstream has declined to
accept.
So far, the FreePG patches seem to align pretty closely with that vision
(and where they don't align we can either skip them completely, or
propose improvements in the FreePG project just as we would with any
reasonable upstream).
It doesn't seem like normal practice to ask other debian maintainer
teams that are carrying patches requested by users but dismissed by
upstream to ship "the real version" of the upstream codebase. Is there
a reason that GnuPG needs such a process?
I welcome review and critique of the packaging for this tricky package,
which is pretty deeply embedded in Debian (though getting less so, as
apt no longer requires it and we have many other OpenPGP implementations
available today). I'd be even more delighted with offers of active
co-maintenance beyond the work that Andreas and i have been doing.
I've offered help, but my impression has been that it not giving up on
the schism thing has been more important than getting Debian to ship
upstream code to users and let people decide what they want to use.

Sometimes it is better to let other make decisions rather than to make
decisions for others.

/Simon
Jonathan McDowell
2025-01-13 11:10:02 UTC
Reply
Permalink
Post by Simon Josefsson
Post by Daniel Kahn Gillmor
I welcome review and critique of the packaging for this tricky package,
which is pretty deeply embedded in Debian (though getting less so, as
apt no longer requires it and we have many other OpenPGP implementations
available today). I'd be even more delighted with offers of active
co-maintenance beyond the work that Andreas and i have been doing.
I've offered help, but my impression has been that it not giving up on
the schism thing has been more important than getting Debian to ship
upstream code to users and let people decide what they want to use.
Sometimes it is better to let other make decisions rather than to make
decisions for others.
I agree, but in this instance given the reliance we have upon GnuPG
throughout the Debian ecosystem I believe it's important we ensure that
the default configuration of what we ship is compatible with OpenPGP.
Power users can feel free to play with OpenPGP v6 / LibrePGP
enhancements, but for the vast majority of folk sticking to RFC
compliant v4 is going to make the most sense.

Given what I've seen in this thread though it sounds like the
appropriate patches have been worked out and it might be feasible to get
2.4 into unstable?

J.
--
101 things you can't have too much of : 31 - Hot showers.
Simon Josefsson
2025-01-13 13:20:01 UTC
Reply
Permalink
Post by Jonathan McDowell
Post by Simon Josefsson
Post by Daniel Kahn Gillmor
I welcome review and critique of the packaging for this tricky package,
which is pretty deeply embedded in Debian (though getting less so, as
apt no longer requires it and we have many other OpenPGP implementations
available today). I'd be even more delighted with offers of active
co-maintenance beyond the work that Andreas and i have been doing.
I've offered help, but my impression has been that it not giving up on
the schism thing has been more important than getting Debian to ship
upstream code to users and let people decide what they want to use.
Sometimes it is better to let other make decisions rather than to make
decisions for others.
I agree, but in this instance given the reliance we have upon GnuPG
throughout the Debian ecosystem I believe it's important we ensure that
the default configuration of what we ship is compatible with OpenPGP.
Power users can feel free to play with OpenPGP v6 / LibrePGP
enhancements, but for the vast majority of folk sticking to RFC
compliant v4 is going to make the most sense.
I understand this concern, but I believe there is a strong bias for
Debian developers to care about our own use-cases a lot which may not be
particulary relevant outside the scope of Debian-internal development.

I believe it would be perfectly fine to ship verbatim upstream unpatched
GnuPG 2.4 and work out any Debian-specific quirks and requirements we
have and put quirks into tools that are external to GnuPG itself.

If there are requirements on how to use GnuPG for interacting with
Debian, please just document them rather than patching GnuPG to behave
the way you want. This is even more true considering that the people
who are patching GnuPG seems to be the same people who are working on
replacing GnuPG with Seqoia.

/Simon
Sune Vuorela
2025-01-13 13:30:01 UTC
Reply
Permalink
Post by Simon Josefsson
the way you want. This is even more true considering that the people
who are patching GnuPG seems to be the same people who are working on
replacing GnuPG with Seqoia.
Not only that, but some of these people were also in the standardization
workgroup knowingly forcing the schism by wanting, what GnuPG upstream
describes as, 'useless complexity' (my wording, not theirs).

/Sune
Daniel Kahn Gillmor
2025-01-13 19:20:01 UTC
Reply
Permalink
Post by Sune Vuorela
Not only that, but some of these people were also in the
standardization workgroup knowingly forcing the schism by wanting,
what GnuPG upstream describes as, 'useless complexity' (my wording,
not theirs).
Hi there! In addition to having helped maintain GnuPG in Debian for
over a decade now, i'm also interested in there being a healthy OpenPGP
ecosystem. I've also been partially responsible for packaging or
nudging other people to package several other OpenPGP implementations
being available in Debian (e.g. librnp, sequoia, rpgp, gopenpgp, pgpy,
pgpainless). And, I'm also the co-chair of the IETF OpenPGP working
group, which i think is what you're referring to.

And i'm still helping to maintain GnuPG in Debian, despite this mess.

The idea that the other members of the working group were "forcing the
schism" doesn't line up with my experience. Werner decided to step away
from the process of standardizing something in an open and interoperable
way.

g10code (the builders of GnuPG) is, as far as i can tell, the driving
force behind the standards fork they've named "LibrePGP", whose motto
includes "Never Mind OpenPGP". Is this really the OpenPGP
implementation we want Debian to depend on?

Even when Werner was in control of the revision of the OpenPGP standard
(before he left the WG, he was the editor for the standard), his
proposals were in flux and people attempting to align with his published
code ran into problems aligning it with the published spec. Here's one
example from a few years ago, from an OpenPGP implementation that was
Post by Sune Vuorela
the AEAD encrypted packet varies between the current implementation in
GnuPG (in use) and the latest version of the OpenPGP standard (more
specifically the version field of the AEAD encrypted packet in the
standard is with value 2, and the standard proposes a fixed IV
(initialization vector) for the AEAD packet in contrast with the
algorithm-specific length at use by GnuPG at the moment and version 1
of the AEAD packet).
https://didisoft.com/2022/07/01/aead-cipher-support-in-openpgp/

When the WG was inactive (even farther in the past), GnuPG led the way
to using modern elliptic curve cryptography (e.g. with curve 25519), but
in doing so, it failed to specify what it was doing and how the objects
should be structured on the wire, which made it notably harder for other
implementations to interoperate. The new standard is complex in part
because it *has* to accomodate those arbitrary choices made by GnuPG in
the past, which were not made with community review or input.

GnuPG continues to make these kinds of changes, which fail to
interoperate correctly not only other OpenPGP implementations but in
many cases with older versions of GnuPG itself.

These are all good arguments for specifying things in public, and giving
room and time for discussion, and making sure that implementations can
consume things (or at least fail safely/gracefully) before we emit them.
We don't want to be stuck with a single reference implementation as "the
standard", because everyone makes some mistakes. I already linked in
this thread to concrete cryptographic concerns raised by non-GnuPG
participants in the WG that GnuPG has decided to ignore.

There are participants from a half-dozen OpenPGP implementations in the
working group, and most of them are interoperating with each other just
fine, even in cases where they don't get exactly what they would have
wanted from the standardization process. Yes, the process is messy, and
can be frustrating. And while there are parts of the
community-developed standard that are more complex than what Werner
wants most recently (e.g. more than one AEAD mode), there are also parts
that are significantly *simpler* than what Werner is advocating (e.g. no
attempt to sign the Literal Data Packet's metadata misfeatures, adoption
of simple key and signature wireformats, explicit bindings between
session key formats and encryption formats, simplified message packet
grammar).

But the schism is, as far as i can tell, a disaster for both OpenPGP and
for the GnuPG project. The best outcome would be for GnuPG to be able
to parse the updated OpenPGP standards (keys, certificates, signatures,
encryption), and to limit itself to emitting data that can also be read
by other implementations, including the new simplified formats. I know
that the GnuPG project has the cryptographic and software development
expertise to do it, but the project doesn't seem to have interest in
broad interoperability or demonstrating leadership within a pool of
peers, and is instead imposing this schism on the larger ecosystem.

Finally, engineering choices made by GnuPG have made it significantly
harder to upgrade even GnuPG itself, and slowed progress on other free
software work. To cite just two examples in the last year:

https://bugs.launchpad.net/launchpad/+bug/1827369
https://lists.debian.org/debian-devel/2025/01/msg00162.html

You can see other examples reflected in the patch history for GnuPG in
debian, where some engineering choices that make the tooling work better
are simply ignored by upstream despite pretty clear evidence that these
changes are valid for important use cases and don't break anything else.

These engineering choices make me wary of further cementing our
dependence on GnuPG in debian, and make me appreciate the process of
collaborating with other downstreams of GnuPG to address broader
concerns.

In short, I'm a long-time supporter of the kinds of cryptographic work
that GnuPG has done. I want to see functional, interoperable
object-based cryptographic security tools in the hands of as many people
as possible, without vendor lock-in. Our users, the free software
ecosystem, and the cryptographic standards base is not well served by
GnuPG being the only OpenPGP game in town, or by distributing unpatched
upstream GnuPG.

--dkg, more than a little depressed by this situation
Sune Vuorela
2025-01-14 07:50:01 UTC
Reply
Permalink
Post by Daniel Kahn Gillmor
The idea that the other members of the working group were "forcing the
schism" doesn't line up with my experience. Werner decided to step away
from the process of standardizing something in an open and interoperable
way.
At some point, one might need to step away if others insist on sillyness
(my wording)

One of the 'big points' as I understood it was doing aead in 3 different
ways, two optional.

To quote the upstream documentation of another Openpgp project:

| openpgp.enums.aead.gcm; // Default, native in WebCrypto and Node.js
| openpgp.enums.aead.ocb; // Non-native, but supported across RFC 9580 implementations
| openpgp.enums.aead.eax; // Native in Node.js

Defaulting to a mode that is optional in the spec and thus not all
implementations support it.

Having 3 ways of doing things the same thing is to me just silly from an
engineering perspective. And having some of it optional when it really
isn't (and defaulting to one of the optionals) in the spec is just weird.

/Sune
Stephan Verbücheln
2025-01-14 08:30:02 UTC
Reply
Permalink
This appears silly from an engineering perspective, but there is a
specific motivation behind it: Proton (the mail company) wants this to
simplify the implementation of PGP with Browser APIs.

As you said, too many optional ciphers are bad for compatibility. Note
that the key preferences do not help with this mess. Users usually have
one identity, but want to use it with different PGP implementations,
e.g. on their phone and their PC.

However, GnuPG's reaction to start their own standard is not helping
either. Bodies like IETF have to find a true consensus, not only
majorities, because there is no way to ensure proportional
representation of developers, users or other stakeholders.

The free software community is used to the problem that companies
intentionally send new people into standardization bodies just to tip
over the majority vote. We have seen this happen many times. In my
opinion, the OpenPGP schism has this smell, too.

Regards
Stephan

PS: I also criticized some features of the new OpenPGP standard
personally, e.g. unnecessarily making signatures non-deterministic. But
those are academic details not related to the schism.

https://mailarchive.ietf.org/arch/msg/openpgp/uGHlHjeqo7VEZ55JO_7IcV-Q1Nk/
Sune Vuorela
2025-01-14 12:00:02 UTC
Reply
Permalink
Post by Stephan Verbücheln
This appears silly from an engineering perspective, but there is a
specific motivation behind it: Proton (the mail company) wants this to
simplify the implementation of PGP with Browser APIs.
But is this motivation more important than a coherent ecosystem?
Post by Stephan Verbücheln
However, GnuPG's reaction to start their own standard is not helping
either.
I agree that it is not helping on a coherent ecosystem, but I'm also
having a bit hard time finding any other solution from the GnuPG side
for a way forward if they think than 3 different ways of doing aead
is an absolute no-go.

At least publishing a spec/standard is much better than the same thing
without a spec.

A difference between GnuPG and many other implementers is that GnuPG
(in libgcrypt) does most crypto by themselves where many others use
third party libraries for most crypto and thus might have stronger
feelings against many ciphers.
Post by Stephan Verbücheln
Bodies like IETF have to find a true consensus, not only
majorities, because there is no way to ensure proportional
representation of developers, users or other stakeholders.
And it was quite clear a bit early on that the GnuPG people would be in
the very rough end of a rough consensus.
Post by Stephan Verbücheln
The free software community is used to the problem that companies
intentionally send new people into standardization bodies just to tip
over the majority vote. We have seen this happen many times. In my
opinion, the OpenPGP schism has this smell, too.
ack.

/Sune
Simon Josefsson
2025-01-14 08:30:01 UTC
Reply
Permalink
First a big thank you for all your efforts re OpenPGP! It is hard to
navigate when there are conflicting requirements around. We need more
boats attempting to navigate rather than less, increasing the chances to
reach fertile grounds.
Post by Daniel Kahn Gillmor
But the schism is, as far as i can tell, a disaster for both OpenPGP and
for the GnuPG project. The best outcome would be for GnuPG to be able
to parse the updated OpenPGP standards (keys, certificates, signatures,
encryption), and to limit itself to emitting data that can also be read
by other implementations, including the new simplified formats. I know
that the GnuPG project has the cryptographic and software development
expertise to do it, but the project doesn't seem to have interest in
broad interoperability or demonstrating leadership within a pool of
peers, and is instead imposing this schism on the larger ecosystem.
There is also the possibility for Seqoia and others to implement parsing
of what GnuPG and others are emitting. I am confident doing so is
within the expertise of the relevant people too.

Fundamentally, I believe that forking upstream projects in this way is
bad for users of distributions like Debian. Each project should own the
moral compass of its own destiny, and users can decide what to use if
they agree with that compass. That's why I personally no longer install
Debian for example, because I prefer a 100% free software OS. Right now
user decision is crippled because users cannot conveniently get to the
proper GnuPG package from Debian, and I believe that's bad for everyone;
users, Debian, and GnuPG.

/Simon
Steve McIntyre
2025-01-14 14:40:01 UTC
Reply
Permalink
Post by Simon Josefsson
Fundamentally, I believe that forking upstream projects in this way is
bad for users of distributions like Debian. Each project should own the
moral compass of its own destiny, and users can decide what to use if
they agree with that compass. That's why I personally no longer install
Debian for example, because I prefer a 100% free software OS. Right now
user decision is crippled because users cannot conveniently get to the
proper GnuPG package from Debian, and I believe that's bad for everyone;
users, Debian, and GnuPG.
There's a lot of loaded words in what you write there.

Debian has *always* added config, applied patches and adapted upstream
behaviour of upstream packages to make them fit our needs better. Why
should GnuPG be any different?
--
Steve McIntyre, Cambridge, UK. ***@einval.com
Can't keep my eyes from the circling sky,
Tongue-tied & twisted, Just an earth-bound misfit, I...
Andreas Metzler
2025-01-13 17:50:01 UTC
Reply
Permalink
[...]
Post by Simon Josefsson
Post by Jonathan McDowell
I agree, but in this instance given the reliance we have upon GnuPG
throughout the Debian ecosystem I believe it's important we ensure that
the default configuration of what we ship is compatible with OpenPGP.
Power users can feel free to play with OpenPGP v6 / LibrePGP
enhancements, but for the vast majority of folk sticking to RFC
compliant v4 is going to make the most sense.
I understand this concern, but I believe there is a strong bias for
Debian developers to care about our own use-cases a lot which may not be
particulary relevant outside the scope of Debian-internal development.
I believe it would be perfectly fine to ship verbatim upstream unpatched
GnuPG 2.4 and work out any Debian-specific quirks and requirements we
have and put quirks into tools that are external to GnuPG itself.
[...]

Hello,

I think the bit of information that is missing here is that Debian is
*not* the odd man out for shipping patched versions of gnupg. Take a
look at https://repology.org/project/gnupg/packages yourself. Everybody
is trying to protect their users by trying to patch out librepgp-specific
behavior by default.

cu Andreas
--
`What a good friend you are to him, Dr. Maturin. His other friends are
so grateful to you.'
`I sew his ears on from time to time, sure'
Jonathan McDowell
2025-01-14 09:00:01 UTC
Reply
Permalink
Post by Simon Josefsson
Post by Jonathan McDowell
Post by Simon Josefsson
Post by Daniel Kahn Gillmor
I welcome review and critique of the packaging for this tricky package,
which is pretty deeply embedded in Debian (though getting less so, as
apt no longer requires it and we have many other OpenPGP implementations
available today). I'd be even more delighted with offers of active
co-maintenance beyond the work that Andreas and i have been doing.
I've offered help, but my impression has been that it not giving up on
the schism thing has been more important than getting Debian to ship
upstream code to users and let people decide what they want to use.
Sometimes it is better to let other make decisions rather than to make
decisions for others.
I agree, but in this instance given the reliance we have upon GnuPG
throughout the Debian ecosystem I believe it's important we ensure that
the default configuration of what we ship is compatible with OpenPGP.
Power users can feel free to play with OpenPGP v6 / LibrePGP
enhancements, but for the vast majority of folk sticking to RFC
compliant v4 is going to make the most sense.
I understand this concern, but I believe there is a strong bias for
Debian developers to care about our own use-cases a lot which may not be
particulary relevant outside the scope of Debian-internal development.
I believe it would be perfectly fine to ship verbatim upstream unpatched
GnuPG 2.4 and work out any Debian-specific quirks and requirements we
have and put quirks into tools that are external to GnuPG itself.
I don't agree. For trixie I would like us to ship a GnuPG which _by
default_ does not emit LibrePGP packets. I'm fully in favour of that
ability being available to folk who chose to explicitly enable it, but I
don't think it's a responsible default for us to ship.

It's a simple fact that the OpenPGP ecosystem, including GnuPG, is
complicated for folk who are not devoting significant time to
understanding it all. We've seen that previously in terms of having to
write documentation about how to generate keys with secure settings, or
explain why we've made certain decisions that deviate from what an
out-of-the box config would give. We're not an outlier in patching GnuPG
to provide OpenPGP v4 defaults.

(This email written wearing no hats, but definitely informed by the fact
I'm part of keyring-maint.)

J.
--
"I'm a paranoid agnostic. I doubt the existence of God, but I'm sure
there is some force, somewhere, working against me." -- Marc Maron
Luca Boccassi
2025-01-13 13:50:01 UTC
Reply
Permalink
Post by Daniel Kahn Gillmor
Thanks for this discussion, all--
Post by Simon Josefsson
I believe this would be good, I frequently run into GnuPG bugs in the
2.2.x branch that was fixed years ago in 2.4
Can you identify some of those bugs? It would be good to be clear about
what 2.2 is lacking.
There's one issue that I have experience of, that is fixed with 2.4
and doesn't work with 2.2: using a Yubikey that has _both_ pgp keys
and x509 certs, and trying to use both. With 2.2 it's a constant fight
between scdaemon and opensc, and you have to constantly manually
restart, switch configs, etc.
With 2.4, I can instruct scdaemon to ignore the piv slots, and opensc
to ignore the gpg slots, and both to accept shared access, and things
_mostly_ work smoothly, only requiring an occasional restart of pcscd,
every few days or so. I found no way to make this setup work with 2.2.
Just my 2c.

For reference, scdaemon.conf:

pcsc-driver /usr/lib/x86_64-linux-gnu/libpcsclite.so
pcsc-shared
disable-ccid
disable-application piv

opensc.conf:

app default {
card_atr <your:series:of:numbers> {
atrmask = "FF:FF:FF:FF:FF:FF:FF:FF:FF:FF:FF:FF:FF:FF:FF:00:00";
name = "Yubikey Neo";
# Select the PKI applet to use ("PIV-II" or "openpgp")
driver = "PIV-II";
# Recover from other applications accessing a different applet
flags = "keep_alive";
}
}
Stephan Verbücheln
2025-01-13 14:20:01 UTC
Reply
Permalink
One of the prominently announced features of the 2.3/2.4 branches was
multi-smartcard support and support for TPM 2.0 key wrapping.

Regards
Andrew Gallagher
2025-01-14 10:50:02 UTC
Reply
Permalink
It seems there is push from the anti-GnuPG people to promote a fork called FreePG instead of real GnuPG, will you package that?
https://gitlab.com/freepg/gnupg
FreePG is not an anti-GnuPG project, if anything it’s trying to keep GnuPG on Linux alive as long as possible, so as not to force users into a disruptive sudden migration to other tools. It is also very deliberately not a fork, but rather a set of discrete patches that are already being applied by multiple downstreams, some dating back years.
Who is behind FreePG?
Me, mostly. I wrote the CI tooling that runs FreePG, and dkg has been helping to review and de-lint the patches against upstream, in consultation with other downstreams.
Or do we want to trust 'Hooty McOwlface' with no earlier publicly recorded community contributions?
Some clarity about Hooty is overdue. It is a machine account controlled by a Docker container that currently runs on my laptop, primarily because there are some automation tasks (such as mangling branch histories) that are not currently easy to do in the GitLab CI. I have commented on tickets using Hooty’s name in the past, but I’m trying to avoid it these days to avoid giving the impression that Hooty has an opinion.

At some point I may decide to walk away from the project, in which case I can hand Hooty over to someone else as a functioning unit.
This is even more true considering that the people who are patching GnuPG seems to be the same people who are working on replacing GnuPG with Seqoia.
If you mean dkg, he’s been doing thankless work for years now trying to keep the OpenPGP ecosystem together, including by wrangling downstream packaging for *multiple* projects. The Sequoia project has never been involved in FreePG, and they most likely found out about it the same way everyone else here did. FreePG is an orthogonal project and is not intended to either help or impede adoption of Sequoia - the target userbase is people who can not, or do not wish to, migrate away from GnuPG (yet?), but also don’t wish to become incompatible with mainstream OpenPGP.

A
Simon Josefsson
2025-01-14 13:40:01 UTC
Reply
Permalink
Thank you for clarifying a bit about who is behind FreePG!
Post by Andrew Gallagher
Post by Simon Josefsson
It seems there is push from the anti-GnuPG people to promote a fork
called FreePG instead of real GnuPG, will you package that?
https://gitlab.com/freepg/gnupg
FreePG is not an anti-GnuPG project, if anything it’s trying to keep
GnuPG on Linux alive as long as possible, so as not to force users
into a disruptive sudden migration to other tools. It is also very
deliberately not a fork, but rather a set of discrete patches that are
already being applied by multiple downstreams, some dating back years.
So the FreePG set of patches results in a GnuPG fork by all meanings
except, apparently, by name.

If you take a piece of freely licensed software and make modifications
that goes beyond simple build fixes, I would call that a fork.

https://en.wikipedia.org/wiki/Fork_(software_development)

If the justification for those modifications are disagreement with
upstream about how GnuPG should behave with regard to the wire protocol,
it becomes even more clear to me that we are talking about a fork.

We've seen this before, like LibreSSL or OpenSSL, or EGCS vs GCC or
Iceweasel vs Firefox. Each example is somewhat different, but they are
useful for comparison.

It is fine to disagree with a project, and chose to use or work on
something else.

I don't think it is a good idea to use the powers that comes by being a
package maintainer or distribution to force changes of how some piece of
software is supposed to work by patching it without changing its name.

Doing so mis-represent the upstream project, and confuses users.

What is GnuPG? Upstreams GnuPG or Debian's GnuPG or Fedora's GnuPG or
Hooty's GnuPG? This situation is bad both for Debian and GnuPG, and to
the wider PGP eco-system.

If there is commitment to provide long-term support for FreePG, how
about uploading that as a separate package in Debian?

And also please upload verbatim upstream GnuPG separately. This allows
user choice.

Right now there are claims that we shouldn't use GnuPG 2.4.x because it
is EOL before trixie EOL and the two alternatives that are proposed
instead is to continue use GnuPG 2.2.x or the FreePG fork that also lack
long-term commitment EOL date for support.

/Simon
Marco d'Itri
2025-01-14 15:40:01 UTC
Reply
Permalink
Post by Simon Josefsson
I don't think it is a good idea to use the powers that comes by being a
package maintainer or distribution to force changes of how some piece of
software is supposed to work by patching it without changing its name.
We have been doing this since Debian exists, so I think that you will
have to express a much more articulate argument than "I don't think it
is a good idea".
Post by Simon Josefsson
And also please upload verbatim upstream GnuPG separately. This allows
user choice.
Why don't YOU do it, if you really care so much?
As a project we have no moral or technical obligations to provide
choices that we do not personally care about.
--
ciao,
Marco
Simon Josefsson
2025-01-14 17:20:01 UTC
Reply
Permalink
Post by Marco d'Itri
Post by Simon Josefsson
I don't think it is a good idea to use the powers that comes by being a
package maintainer or distribution to force changes of how some piece of
software is supposed to work by patching it without changing its name.
We have been doing this since Debian exists, so I think that you will
have to express a much more articulate argument than "I don't think it
is a good idea".
Do you have earlier examples of Debian modifying upstream's desired wire
crypto-sensitive protocol in the way like what is being done for GnuPG?
Maybe there are some older OpenSSH or OpenSSL patches like that.
Post by Marco d'Itri
Post by Simon Josefsson
And also please upload verbatim upstream GnuPG separately. This allows
user choice.
Why don't YOU do it, if you really care so much?
As a project we have no moral or technical obligations to provide
choices that we do not personally care about.
I am hoping that the 'gnupg2' package could be altered towards that
goal, and that some sort of compromise with the GnuPG Debian maintainers
can be reached that providing a LibrePGP-compliant GnuPG in Debian is
acceptable. I still have hope that this could happen. But you are
right, it helps to do homework first.

I've filed an ITP for a 'gnupg24' source package, to allow more
substantiated discussion to proceed.

https://bugs.debian.org/1093026

I've set up the following repository, forking gnupg2's current Salsa git
debian/experimental repository, with the intent of minimizing it into
shipping a LibrePGP-compatible set of 'gpg' tools.

https://salsa.debian.org/debian/gnupg-24

I would prefer if this was team-maintained with the existing GnuPG
maintainers since they are the experts on GnuPG in Debian.

/Simon
Marco d'Itri
2025-01-14 17:30:01 UTC
Reply
Permalink
Post by Simon Josefsson
Do you have earlier examples of Debian modifying upstream's desired wire
crypto-sensitive protocol in the way like what is being done for GnuPG?
Maybe there are some older OpenSSH or OpenSSL patches like that.
Like the Kerberos patch for OpenSSH?
--
ciao,
Marco
Simon Josefsson
2025-01-14 17:40:01 UTC
Reply
Permalink
Post by Marco d'Itri
Post by Simon Josefsson
Do you have earlier examples of Debian modifying upstream's desired wire
crypto-sensitive protocol in the way like what is being done for GnuPG?
Maybe there are some older OpenSSH or OpenSSL patches like that.
Like the Kerberos patch for OpenSSH?
Yes, that may be a good example of why doing distribution-specific
custom patching of crypto code is a bad idea.

/Simon
Andrew Gallagher
2025-01-14 20:50:01 UTC
Reply
Permalink
Post by Simon Josefsson
Do you have earlier examples of Debian modifying upstream's desired wire
crypto-sensitive protocol in the way like what is being done for GnuPG?
Maybe there are some older OpenSSH or OpenSSL patches like that.
To reiterate, FreePG does not modify the cryptographic core of GnuPG, or its wire protocols, merely the preferences and defaults.
Post by Simon Josefsson
I am hoping that the 'gnupg2' package could be altered towards that
goal, and that some sort of compromise with the GnuPG Debian maintainers
can be reached that providing a LibrePGP-compliant GnuPG in Debian is
acceptable.
What is the criterion for LibrePGP compliance in your view? Is the ability to read and write LibrePGP wire formats not sufficient?

I would encourage readers to check the patch list at [1] and the discussion at [2].
--
Andrew Gallagher http://andrewg.com/ ***@andrewg.com

[1] https://gitlab.com/freepg/gnupg/-/tree/main/STABLE-BRANCH-2-4-freepg
[2] https://gitlab.com/freepg/gnupg/-/issues/1
andrewg
2025-01-14 16:50:02 UTC
Reply
Permalink
Post by Simon Josefsson
If the justification for those modifications are disagreement with
upstream about how GnuPG should behave with regard to the wire
protocol, it becomes even more clear to me that we are talking about a
fork.
The disagreements are not so much about which wire formats should be
supported, just which ones should be generated by default. Patching over
upstream defaults is common practice for most Linux distros.
Post by Simon Josefsson
What is GnuPG? Upstreams GnuPG or Debian's GnuPG or Fedora's GnuPG or
Hooty's GnuPG? This situation is bad both for Debian and GnuPG, and to
the wider PGP eco-system.
I’m sympathetic in principle, however the current status in practice is
that we already have “Debian’s GnuPG, “Fedora’s GnuPG” etc, and the
immediate goal of FreePG is to reduce this number, so that users who
install one distribution’s GnuPG can be reasonably confident that it
will behave the same as another distribution’s. If it was practical to
ship unmodified, or barely modified, upstream then distributions would
already be doing it, and FreePG would not exist.

I do realise that this sounds like a “now we have 14 competing
standards” scenario, but there are enough distros seriously considering
alignment with FreePG that I believe the effort is useful on balance.
Post by Simon Josefsson
If there is commitment to provide long-term support for FreePG, how
about uploading that as a separate package in Debian?
To be clear, FreePG requires no more support than the various distros
are already providing for their existing patch sets, and FreePG has no
support staff other than those downstream packagers who are already
providing that support on a voluntary basis. However, we hope that
having a single set of patches will allow distro packagers to share that
support burden.
Post by Simon Josefsson
And also please upload verbatim upstream GnuPG separately. This allows
user choice.
I agree that users should be empowered, however providing multiple
install packages may not be the most sustainable way of doing so. It may
be that the same outcome can be achieved through configuration options
rather than separate binaries.

—-
Andrew Gallagher
Loading...