diff mbox series

[1/1] package/{gnupg, gnupg2}: use gnupg2 by default

Message ID 20220302210150.33658-1-ju.o@free.fr
State Accepted
Headers show
Series [1/1] package/{gnupg, gnupg2}: use gnupg2 by default | expand

Commit Message

Julien Olivain March 2, 2022, 9:01 p.m. UTC
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.

Signed-off-by: Julien Olivain <ju.o@free.fr>
---
Tested with:

    support/testing/run-tests \
        -d dl -o output_folder \
        -k tests.package.test_python_gnupg.TestPythonPy3GnuPG

Note: this change was quickly discussed in:
https://lists.buildroot.org/pipermail/buildroot/2022-January/634021.html
---
 package/gnupg/Config.in        | 1 -
 package/gnupg2/Config.in       | 1 +
 package/libgpgme/Config.in     | 2 +-
 package/python-gnupg/Config.in | 2 +-
 4 files changed, 3 insertions(+), 3 deletions(-)

Comments

Arnout Vandecappelle March 15, 2022, 9:19 p.m. UTC | #1
On 02/03/2022 22:01, Julien Olivain wrote:
> 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.
> 
> Signed-off-by: Julien Olivain <ju.o@free.fr>
> ---
> Tested with:
> 
>      support/testing/run-tests \
>          -d dl -o output_folder \
>          -k tests.package.test_python_gnupg.TestPythonPy3GnuPG

  You should also test such changes in Config.in dependency handling with:
while true; do make randconfig; done

There are still a few errors that come out of that, but you can check that you 
don't introduce new ones. Which you did :-)

> 
> Note: this change was quickly discussed in:
> https://lists.buildroot.org/pipermail/buildroot/2022-January/634021.html
> ---
>   package/gnupg/Config.in        | 1 -
>   package/gnupg2/Config.in       | 1 +
>   package/libgpgme/Config.in     | 2 +-
>   package/python-gnupg/Config.in | 2 +-
>   4 files changed, 3 insertions(+), 3 deletions(-)
> 
> diff --git a/package/gnupg/Config.in b/package/gnupg/Config.in
> index 2db46318f1..e92fca709d 100644
> --- a/package/gnupg/Config.in
> +++ b/package/gnupg/Config.in
> @@ -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
> diff --git a/package/gnupg2/Config.in b/package/gnupg2/Config.in
> index ef1817ef02..9438cf69f6 100644
> --- a/package/gnupg2/Config.in
> +++ b/package/gnupg2/Config.in
> @@ -8,6 +8,7 @@ config BR2_PACKAGE_GNUPG2
>   	depends on BR2_TOOLCHAIN_HAS_THREADS # libnpth
>   	depends on BR2_USE_MMU # libassuan, libnpth
>   	depends on !BR2_STATIC_LIBS

  I could fix those by moving all the dependencies to a new blind symbol 
BR2_PACKAGE_GNUPG2_DEPENDS...

> +	depends on !BR2_PACKAGE_GNUPG
>   	select BR2_PACKAGE_ZLIB
>   	select BR2_PACKAGE_LIBGPG_ERROR
>   	select BR2_PACKAGE_LIBGCRYPT
> diff --git a/package/libgpgme/Config.in b/package/libgpgme/Config.in
> index 4aabd06367..20f491b664 100644
> --- a/package/libgpgme/Config.in
> +++ b/package/libgpgme/Config.in
> @@ -3,7 +3,7 @@ config BR2_PACKAGE_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_GNUPG

  And changing this into
  	select BR2_PACKAGE_GNUPG2 if BR2_PACKAGE_GNUPG2_DEPENDS && !BR2_PACKAGE_GNUPG 
# runtime
  	select BR2_PACKAGE_GNUPG if !BR2_PACKAGE_GNUPG2_DEPENDS # runtime

  See what got committed for the full context.

  Also, there's package/gcr that had some missing dependencies, so I fixed that 
in a separate commit as well.

  Applied to master, thanks.

  Regards,
  Arnout


>   	select BR2_PACKAGE_LIBGPG_ERROR
>   	select BR2_PACKAGE_LIBASSUAN
>   	help
> diff --git a/package/python-gnupg/Config.in b/package/python-gnupg/Config.in
> index 038a940778..54f8fb6a29 100644
> --- a/package/python-gnupg/Config.in
> +++ b/package/python-gnupg/Config.in
> @@ -1,6 +1,6 @@
>   config BR2_PACKAGE_PYTHON_GNUPG
>   	bool "python-gnupg"
> -	select BR2_PACKAGE_GNUPG if !BR2_PACKAGE_GNUPG2 # runtime
> +	select BR2_PACKAGE_GNUPG2 if !BR2_PACKAGE_GNUPG # runtime
>   	help
>   	  A wrapper for the Gnu Privacy Guard (GPG or GnuPG).
>
diff mbox series

Patch

diff --git a/package/gnupg/Config.in b/package/gnupg/Config.in
index 2db46318f1..e92fca709d 100644
--- a/package/gnupg/Config.in
+++ b/package/gnupg/Config.in
@@ -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
diff --git a/package/gnupg2/Config.in b/package/gnupg2/Config.in
index ef1817ef02..9438cf69f6 100644
--- a/package/gnupg2/Config.in
+++ b/package/gnupg2/Config.in
@@ -8,6 +8,7 @@  config BR2_PACKAGE_GNUPG2
 	depends on BR2_TOOLCHAIN_HAS_THREADS # libnpth
 	depends on BR2_USE_MMU # libassuan, libnpth
 	depends on !BR2_STATIC_LIBS
+	depends on !BR2_PACKAGE_GNUPG
 	select BR2_PACKAGE_ZLIB
 	select BR2_PACKAGE_LIBGPG_ERROR
 	select BR2_PACKAGE_LIBGCRYPT
diff --git a/package/libgpgme/Config.in b/package/libgpgme/Config.in
index 4aabd06367..20f491b664 100644
--- a/package/libgpgme/Config.in
+++ b/package/libgpgme/Config.in
@@ -3,7 +3,7 @@  config BR2_PACKAGE_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_GNUPG
 	select BR2_PACKAGE_LIBGPG_ERROR
 	select BR2_PACKAGE_LIBASSUAN
 	help
diff --git a/package/python-gnupg/Config.in b/package/python-gnupg/Config.in
index 038a940778..54f8fb6a29 100644
--- a/package/python-gnupg/Config.in
+++ b/package/python-gnupg/Config.in
@@ -1,6 +1,6 @@ 
 config BR2_PACKAGE_PYTHON_GNUPG
 	bool "python-gnupg"
-	select BR2_PACKAGE_GNUPG if !BR2_PACKAGE_GNUPG2 # runtime
+	select BR2_PACKAGE_GNUPG2 if !BR2_PACKAGE_GNUPG # runtime
 	help
 	  A wrapper for the Gnu Privacy Guard (GPG or GnuPG).