Hello,
Sending primarily for the record and porting notes.
1. Add a app-crypt/freepg for FreePG fork of GnuPG. It's mostly
a drop-in replacement (read: uses the same filenames), but it has
some default and behavior changes, so I think it makes most sense
to add it as a separate package with weak blocker on app-crypt/gnupg.
2. Add a dependency on FreePG/GnuPG to app-crypt/sequoia-chameleon-gnupg.
It needs gpg-agent for private key operations.
3. Introduce an app-alternatives/gpg package to control "gpg" and "gpgv"
executables, allowing switching between FreePG, GnuPG and Sequoia
chameleon.
Key design points:
- app-alternatives/gpg provides "gpg" and `gpgv` symlinks.
Packages that need them switch to depending on this package, possibly
restricting valid USE flags sets. Packages that need *only* other
FreePG/GnuPG executables (e.g. "gpgconf", "gpgsplit", etc.) can depend
on "|| ( app-crypt/freepg app-crypt/gnupg )". Packages that need both
and expect "gpg" executables to point at the matching implementation,
will need to retrict app-alternatives/gpg.
- app-crypt/gnupg gets a IUSE=alternatives to control renaming
for app-alternatives/gpg. I've done this specifically to make
it possible to cleanly handle dependencies between them, given that
we maintain three "branches" simultaneously. The idea is that
the flag will be always enabled (i.e. forced via dependencies)
throughout the transition period.
- app-alternatives/gpg-0 supports only app-crypt/gnupg and gets stable
keywords to match it, so we can start updating dependencies
immediately. Version 1 gets support for all three providers,
and remains ~arch while we test and keyword stuff.
I've fixed >=app-portage/gemato-20.7 to be compatible with all three
providers, except that signing may not work under Sequoia chameleon.
Michał Górny (8):
app-alternatives/gpg: New package, v0
app-crypt/gnupg: Rename for app-alternatives/gpg
app-crypt/freepg: New package, v2.5.12_p1
app-crypt/sequoia-chameleon-gnupg: Add gnupg/freepg dep
app-alternatives/gpg: Add v1 with freepg & sequoia
verify-sig.eclass: Use app-alternatives/gpg
app-alternatives/gpg: Add a passthrough ssl flag
app-portage/gemato: Use app-alternatives/gpg
app-alternatives/gpg/gpg-0.ebuild | 28 +++
app-alternatives/gpg/gpg-1.ebuild | 36 ++++
app-alternatives/gpg/metadata.xml | 23 ++
app-crypt/freepg/Manifest | 1 +
...er-socket-path-lengts-to-improve-tes.patch | 33 +++
app-crypt/freepg/freepg-2.5.12_p1.ebuild | 196 ++++++++++++++++++
app-crypt/freepg/metadata.xml | 36 ++++
app-crypt/gnupg/gnupg-2.4.8.ebuild | 16 +-
app-crypt/gnupg/gnupg-2.5.13.ebuild | 16 +-
app-crypt/gnupg/metadata.xml | 3 +
... sequoia-chameleon-gnupg-0.13.1-r1.ebuild} | 10 +-
...to-20.10.ebuild => gemato-20.10-r1.ebuild} | 2 +-
app-portage/gemato/gemato-9999.ebuild | 2 +-
eclass/verify-sig.eclass | 4 +-
14 files changed, 395 insertions(+), 11 deletions(-)
create mode 100644 app-alternatives/gpg/gpg-0.ebuild
create mode 100644 app-alternatives/gpg/gpg-1.ebuild
create mode 100644 app-alternatives/gpg/metadata.xml
create mode 100644 app-crypt/freepg/Manifest
create mode 100644
app-crypt/freepg/files/gnupg-2.1.20-gpgscm-Use-shorter-socket-path-lengts-to-improve-tes.patch
create mode 100644 app-crypt/freepg/freepg-2.5.12_p1.ebuild
create mode 100644 app-crypt/freepg/metadata.xml
rename
app-crypt/sequoia-chameleon-gnupg/{sequoia-chameleon-gnupg-0.13.1.ebuild =>
sequoia-chameleon-gnupg-0.13.1-r1.ebuild} (91%)
rename app-portage/gemato/{gemato-20.10.ebuild => gemato-20.10-r1.ebuild} (96%)