Discussion:
Moving apt (and hence bootstraps) from GnuPG to Sequioa (via gpgv-sq)
Add Reply
Julian Andres Klode
2024-11-21 20:20:01 UTC
Reply
Permalink
I've just finished more or less, adjusting the APT test suite
to test gpgv-sq. I plan to upload APT that tests gpgv-sq
tomorrow. This ensures full compatibility between apt and
gpgv-sq going forward.

After that migrates to testing next week, I want to make
the switch: APT by default should use gpgv-sq. Previous
discussions with the security team did not reveal any
blockers for that, despite the strenuous nature of
security updates for Rust packages.

My plan here is to use

Depends: gpgv-from-sq | gpgv-sq | gpgv
Recommends: gpgv-sq

To do 2 things:

1) The Depends will install gpgv-from-sq on new systems. The
gpgv-from-sq package diverts /usr/bin/gpgv to gpgv-g10code
and Provides gpgv, installing a symlink to gpgv-sq.

This ensures that while switching to gpgv-sq, the default
bootstrap does not change in exposed functionality: There
is a /usr/bin/gpgv available.

This does not affect existing systems, as the dependency
is already satisfied by the gpgv alternative.

An optimal mechanism would instea

2) The Recommends ensures that the signature verification
as used by APT is changed, as APT also will prefer gpgv-sq
over gpgv if installed.

This means existing systems will have two gpgv implementations:

- /usr/bin/gpgv from GnuPG
- /usr/bin/gpgv-sq from Sequioa

This is not necessarily the best outcome. We could change
it to gpgv-from-sq as well, such that systems remain with
a single /usr/bin/gpgv. I don't particularly like the idea
of forcing a software change on users, but in the sense of
two systems behaving the same way that of course would be
preferable.

As for ports without gpgv-sq, this does not affect them,
they can be served by the gpgv alternative. Once a gpgv-sq
is available, it's important to note that no migration happens
for them: APT does not install Recommends that were previously
unsatisfied.
--
debian developer - deb.li/jak | jak-linux.org - free software dev
ubuntu core developer i speak de, en
Gioele Barabucci
2024-11-21 21:00:01 UTC
Reply
Permalink
Post by Julian Andres Klode
1) The Depends will install gpgv-from-sq on new systems. The
gpgv-from-sq package diverts /usr/bin/gpgv to gpgv-g10code
and Provides gpgv, installing a symlink to gpgv-sq.
Unrelated to the apt proposal, how come dpkg-divert is being used here
by gpgv-from-sq instead of using the what-is-python/python-is-pythonX
approach of just shipping a symlink?

The python-is-pythonX approach is much simpler, fully declarative (as
in: the future state of the system is statically described by the
content of the package, not at runtime), and removes the need for the
maintscripts to know about the other implementations.

Regards,
--
Gioele Barabucci
Simon Richter
2024-11-21 21:50:01 UTC
Reply
Permalink
Hi,
Post by Gioele Barabucci
Unrelated to the apt proposal, how come dpkg-divert is being used here
by gpgv-from-sq instead of using the what-is-python/python-is-pythonX
approach of just shipping a symlink?
Because there is no coordination between gpgv and gpgv-sq packages, and
dependent packages should have no reason to care. gpgv-sq unilaterally
claims compatibility, and if something breaks as a result, that is a bug
in gpgv-sq, because the interface of gpgv is defined by the g10code
implementation.
Post by Gioele Barabucci
The python-is-pythonX approach is much simpler, fully declarative (as
in: the future state of the system is statically described by the
content of the package, not at runtime), and removes the need for the
maintscripts to know about the other implementations.
The python-is-pythonX approach is for *incompatible* changes, where
depending packages have a need to specify which version they expect to
use, and introducing indirect conflicts is acceptable because it cannot
be avoided.

Simon
Holger Levsen
2024-11-22 00:40:01 UTC
Reply
Permalink
Post by Simon Richter
Because there is no coordination between gpgv and gpgv-sq packages,
that's not entirely true.
Post by Simon Richter
and
dependent packages should have no reason to care. gpgv-sq unilaterally
claims compatibility, and if something breaks as a result, that is a bug in
gpgv-sq, because the interface of gpgv is defined by the g10code
implementation.
this is true.
--
cheers,
Holger

⢀⣎⠟⠻⢶⣊⠀
⣟⠁⢠⠒⠀⣿⡁ holger@(debian|reproducible-builds|layer-acht).org
⢿⡄⠘⠷⠚⠋⠀ OpenPGP: B8BF54137B09D35CF026FE9D 091AB856069AAA1C
⠈⠳⣄

It's not climate change nor climate crisis, it's climate disaster.
Iustin Pop
2024-11-21 22:30:01 UTC
Reply
Permalink
Post by Julian Andres Klode
I've just finished more or less, adjusting the APT test suite
to test gpgv-sq. I plan to upload APT that tests gpgv-sq
tomorrow. This ensures full compatibility between apt and
gpgv-sq going forward.
Excuse my ignorance, but what is gpgv-sq/Sequoia? I just saw very
recently the package name (like, two days ago), and while the
description says "it is an alternative implementation", that doesn't say
what's the context here.

I'm not happy with the heavyness that one gets via gpg just for
verifying signatures, so I'd be all for a lighter-weight solution.

I found https://lwn.net/Articles/830902/ which explains what Sequoia is,
but in Debian, is there a bigger plan for GnuPG -> Sequoia, or just
piecemeal adoption?

thanks!
iustin
Antonio Russo
2024-11-22 01:50:01 UTC
Reply
Permalink
Post by Iustin Pop
I'm not happy with the heavyness that one gets via gpg just for
verifying signatures, so I'd be all for a lighter-weight solution.
gpgv is lighter weight than gpgv-sq. Surprisingly, it's not just
the rustc-static-links-everything problem, since gpgv-static is
also smaller than gpgv-sq.

Antonio
Marco d'Itri
2024-11-21 23:00:02 UTC
Reply
Permalink
Post by Julian Andres Klode
I've just finished more or less, adjusting the APT test suite
to test gpgv-sq. I plan to upload APT that tests gpgv-sq
tomorrow. This ensures full compatibility between apt and
gpgv-sq going forward.
OK, but why?

Did you make an analysis of how much the size of a minimal system would
change?
--
ciao,
Marco
Andreas Metzler
2024-11-22 11:20:02 UTC
Reply
Permalink
On 2024-11-21 Julian Andres Klode <***@debian.org> wrote:
[...]
Post by Julian Andres Klode
An optimal mechanism would instea
[...]

Something seems to be missing here.

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'
Loading...