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%)


Reply via email to