package/{gnupg, gnupg2}: use gnupg2 by default

This patch reverses the logic to select gnupg2 by default, while still
allowing to select gnupg (v1).

Quoting: https://gnupg.org/download/index.html
"""
GnuPG 1.4 is the old, single binary version which still support the
unsafe PGP-2 keys. This branch has no dependencies on the above listed
libraries or the Pinentry. However, it lacks many modern features and
will receive only important updates.
"""

gnupg 1.4 is kept in Buildroot for now, as the package is still
maintained upstream. It might still be useful is some specific cases:
- it has a smaller footprint (compared to v2),
- it has less dependencies (only zlib),
- it has less build dependencies (can build static, no need for
MMU/threads, ...)

Most Linux distributions are now shipping gnupg2 by default. gnupg v1
is now more for legacy/compatibility/specific cases.

There is currently only two packages selecting gnupg in Buildroot:
gpgme and python-gnupg
This commit also reverses the logic for those packages. However, this
means we also need to propagate the dependencies of gnupg2, and still
select gnupg if those dependencies are not met. To simplify this, add a
blind option BR2_PACKAGE_GNUPG2_DEPENDS. Note that due to the
intricacies of Kconfig dependencies, "depends on !BR2_PACKAGE_GNUPG"
must *not* be part of BR2_PACKAGE_GNUPG2_DEPENDS.

Signed-off-by: Julien Olivain <ju.o@free.fr>
[Arnout: rework dependency handling to make sure gnupg2 dependencies are
properly propagated]
Signed-off-by: Arnout Vandecappelle (Essensium/Mind) <arnout@mind.be>
This commit is contained in:
Julien Olivain 2022-03-02 22:01:50 +01:00 committed by Arnout Vandecappelle (Essensium/Mind)
parent 2bc66b940c
commit 56b49691ab
4 changed files with 16 additions and 6 deletions

View File

@ -1,6 +1,5 @@
config BR2_PACKAGE_GNUPG
bool "gnupg"
depends on !BR2_PACKAGE_GNUPG2
select BR2_PACKAGE_ZLIB
help
GnuPG is the GNU project's complete and free implementation

View File

@ -2,12 +2,22 @@ comment "gnupg2 needs a toolchain w/ threads and dynamic library support"
depends on BR2_USE_MMU
depends on BR2_STATIC_LIBS || !BR2_TOOLCHAIN_HAS_THREADS
config BR2_PACKAGE_GNUPG2
bool "gnupg2"
# helper to make it easier to select gnupg2 or gnupg; usage:
# select BR2_PACKAGE_GNUPG2 if BR2_PACKAGE_GNUPG2_DEPENDS && !BR2_PACKAGE_GNUPG
# select BR2_PACKAGE_GNUPG if !BR2_PACKAGE_GNUPG2_DEPENDS
config BR2_PACKAGE_GNUPG2_DEPENDS
bool
default y
depends on BR2_PACKAGE_LIBGPG_ERROR_ARCH_SUPPORTS # libgpg-error
depends on BR2_TOOLCHAIN_HAS_THREADS # libnpth
depends on BR2_USE_MMU # libassuan, libnpth
depends on !BR2_STATIC_LIBS
config BR2_PACKAGE_GNUPG2
bool "gnupg2"
depends on BR2_PACKAGE_GNUPG2_DEPENDS
depends on !BR2_PACKAGE_GNUPG
select BR2_PACKAGE_ZLIB
select BR2_PACKAGE_LIBGPG_ERROR
select BR2_PACKAGE_LIBGCRYPT

View File

@ -2,8 +2,8 @@ config BR2_PACKAGE_LIBGPGME
bool "libgpgme"
depends on BR2_PACKAGE_LIBGPG_ERROR_ARCH_SUPPORTS # libgpg-error
depends on BR2_USE_MMU # libassuan
#gnupg is not needed to build, but at runtime.
select BR2_PACKAGE_GNUPG if !BR2_PACKAGE_GNUPG2
select BR2_PACKAGE_GNUPG2 if BR2_PACKAGE_GNUPG2_DEPENDS && !BR2_PACKAGE_GNUPG # runtime
select BR2_PACKAGE_GNUPG if !BR2_PACKAGE_GNUPG2_DEPENDS # runtime
select BR2_PACKAGE_LIBGPG_ERROR
select BR2_PACKAGE_LIBASSUAN
help

View File

@ -1,6 +1,7 @@
config BR2_PACKAGE_PYTHON_GNUPG
bool "python-gnupg"
select BR2_PACKAGE_GNUPG if !BR2_PACKAGE_GNUPG2 # runtime
select BR2_PACKAGE_GNUPG2 if BR2_PACKAGE_GNUPG2_DEPENDS && !BR2_PACKAGE_GNUPG # runtime
select BR2_PACKAGE_GNUPG if !BR2_PACKAGE_GNUPG2_DEPENDS # runtime
help
A wrapper for the Gnu Privacy Guard (GPG or GnuPG).