Thanks, I'm a bit surprised by these changes - did you test that it is
possible to still build things without linking to OpenSSL?  That is one
of the main reasons for the gc* modules, to have a "generic crypto" API
that is not tied to any particular underlying library.  So if anything
there should be a lib/gc-openssl.c that contain the gc->openssl mappings
needed.  It should be possible to use all gc* modules with either
OpenSSL, libgcrypt or native gnulib implementations (although there
could be minor deviations from this general policy if some algorithm is
not implemented in one "backend").

/Simon

Bruno Haible via Gnulib discussion list <[email protected]> writes:

> Collin Funk wrote:
>> I pushed this patch to fix the link error and add a 'Link:' directive to
>> the gc module so gnulib tool emits the hint on importing.
>
> Thanks.
>
> When the 'crypto/gc' module has a new dependency, it also needs to be
> added to all the dependents, i.e.
>   `./gnulib-tool --extract-recursive-dependents crypto/gc | grep -v tests`
>
> Done through this patch:
>
>
> 2025-09-23  Bruno Haible  <[email protected]>
>
>       Clarify link dependency towards libgcrypt or OpenSSL's libcrypto.
>       * modules/crypto/gc-arcfour (Link): New section.
>       * modules/crypto/gc-arctwo (Link): Likewise.
>       * modules/crypto/gc-camellia (Link): Likewise.
>       * modules/crypto/gc-des (Link): Likewise.
>       * modules/crypto/gc-hmac-md5 (Link): Likewise.
>       * modules/crypto/gc-hmac-sha1 (Link): Likewise.
>       * modules/crypto/gc-hmac-sha256 (Link): Likewise.
>       * modules/crypto/gc-hmac-sha512 (Link): Likewise.
>       * modules/crypto/gc-md2 (Link): Likewise.
>       * modules/crypto/gc-md4 (Link): Likewise.
>       * modules/crypto/gc-md5 (Link): Likewise.
>       * modules/crypto/gc-pbkdf2 (Link): Likewise.
>       * modules/crypto/gc-pbkdf2-sha1 (Link): Likewise.
>       * modules/crypto/gc-rijndael (Link): Likewise.
>       * modules/crypto/gc-sha1 (Link): Likewise.
>       * modules/crypto/gc-sha256 (Link): Likewise.
>       * modules/crypto/gc-sha512 (Link): Likewise.
>       * modules/crypto/gc-sm3 (Link): Likewise.
>       * modules/crypto/gc-random (Link): Add $(LIB_CRYPTO).
>
> diff --git a/modules/crypto/gc-arcfour b/modules/crypto/gc-arcfour
> index 7df6b954ed..bc5652d92a 100644
> --- a/modules/crypto/gc-arcfour
> +++ b/modules/crypto/gc-arcfour
> @@ -17,6 +17,9 @@ Makefile.am:
>  Include:
>  "gc.h"
>  
> +Link:
> +$(LIB_CRYPTO)
> +
>  License:
>  LGPLv2+
>  
> diff --git a/modules/crypto/gc-arctwo b/modules/crypto/gc-arctwo
> index bbd9ba910c..12868b168c 100644
> --- a/modules/crypto/gc-arctwo
> +++ b/modules/crypto/gc-arctwo
> @@ -17,6 +17,9 @@ Makefile.am:
>  Include:
>  "gc.h"
>  
> +Link:
> +$(LIB_CRYPTO)
> +
>  License:
>  LGPLv2+
>  
> diff --git a/modules/crypto/gc-camellia b/modules/crypto/gc-camellia
> index 413bba9654..3a36aacfdf 100644
> --- a/modules/crypto/gc-camellia
> +++ b/modules/crypto/gc-camellia
> @@ -15,6 +15,9 @@ Makefile.am:
>  Include:
>  "gc.h"
>  
> +Link:
> +$(LIB_CRYPTO)
> +
>  License:
>  LGPLv2+
>  
> diff --git a/modules/crypto/gc-des b/modules/crypto/gc-des
> index 685899dc94..70e860b907 100644
> --- a/modules/crypto/gc-des
> +++ b/modules/crypto/gc-des
> @@ -17,6 +17,9 @@ Makefile.am:
>  Include:
>  "gc.h"
>  
> +Link:
> +$(LIB_CRYPTO)
> +
>  License:
>  LGPLv2+
>  
> diff --git a/modules/crypto/gc-hmac-md5 b/modules/crypto/gc-hmac-md5
> index 109ec5e0f7..7417825596 100644
> --- a/modules/crypto/gc-hmac-md5
> +++ b/modules/crypto/gc-hmac-md5
> @@ -17,6 +17,9 @@ Makefile.am:
>  Include:
>  "gc.h"
>  
> +Link:
> +$(LIB_CRYPTO)
> +
>  License:
>  LGPLv2+
>  
> diff --git a/modules/crypto/gc-hmac-sha1 b/modules/crypto/gc-hmac-sha1
> index 6235125bbd..35277b4598 100644
> --- a/modules/crypto/gc-hmac-sha1
> +++ b/modules/crypto/gc-hmac-sha1
> @@ -17,6 +17,9 @@ Makefile.am:
>  Include:
>  "gc.h"
>  
> +Link:
> +$(LIB_CRYPTO)
> +
>  License:
>  LGPLv2+
>  
> diff --git a/modules/crypto/gc-hmac-sha256 b/modules/crypto/gc-hmac-sha256
> index bbf5591720..9ec12b38c2 100644
> --- a/modules/crypto/gc-hmac-sha256
> +++ b/modules/crypto/gc-hmac-sha256
> @@ -17,6 +17,9 @@ Makefile.am:
>  Include:
>  "gc.h"
>  
> +Link:
> +$(LIB_CRYPTO)
> +
>  License:
>  LGPLv2+
>  
> diff --git a/modules/crypto/gc-hmac-sha512 b/modules/crypto/gc-hmac-sha512
> index 3d9e618134..4c38c4ea53 100644
> --- a/modules/crypto/gc-hmac-sha512
> +++ b/modules/crypto/gc-hmac-sha512
> @@ -17,6 +17,9 @@ Makefile.am:
>  Include:
>  "gc.h"
>  
> +Link:
> +$(LIB_CRYPTO)
> +
>  License:
>  LGPLv2+
>  
> diff --git a/modules/crypto/gc-md2 b/modules/crypto/gc-md2
> index 5e5beaad18..de59960013 100644
> --- a/modules/crypto/gc-md2
> +++ b/modules/crypto/gc-md2
> @@ -17,6 +17,9 @@ Makefile.am:
>  Include:
>  "gc.h"
>  
> +Link:
> +$(LIB_CRYPTO)
> +
>  License:
>  LGPLv2+
>  
> diff --git a/modules/crypto/gc-md4 b/modules/crypto/gc-md4
> index e46589b091..a671c07c32 100644
> --- a/modules/crypto/gc-md4
> +++ b/modules/crypto/gc-md4
> @@ -17,6 +17,9 @@ Makefile.am:
>  Include:
>  "gc.h"
>  
> +Link:
> +$(LIB_CRYPTO)
> +
>  License:
>  LGPLv2+
>  
> diff --git a/modules/crypto/gc-md5 b/modules/crypto/gc-md5
> index 0d6b272d2e..b4a19ac2f7 100644
> --- a/modules/crypto/gc-md5
> +++ b/modules/crypto/gc-md5
> @@ -18,6 +18,9 @@ lib_SOURCES += md5.h
>  Include:
>  "gc.h"
>  
> +Link:
> +$(LIB_CRYPTO)
> +
>  License:
>  LGPLv2+
>  
> diff --git a/modules/crypto/gc-pbkdf2 b/modules/crypto/gc-pbkdf2
> index 47b61015e0..f3a895f3ef 100644
> --- a/modules/crypto/gc-pbkdf2
> +++ b/modules/crypto/gc-pbkdf2
> @@ -15,6 +15,9 @@ lib_SOURCES += gc-pbkdf2.c
>  Include:
>  "gc.h"
>  
> +Link:
> +$(LIB_CRYPTO)
> +
>  License:
>  LGPLv2+
>  
> diff --git a/modules/crypto/gc-pbkdf2-sha1 b/modules/crypto/gc-pbkdf2-sha1
> index 576078de66..134c11bcd8 100644
> --- a/modules/crypto/gc-pbkdf2-sha1
> +++ b/modules/crypto/gc-pbkdf2-sha1
> @@ -22,6 +22,9 @@ lib_SOURCES += gc-pbkdf2-sha1.c
>  Include:
>  "gc.h"
>  
> +Link:
> +$(LIB_CRYPTO)
> +
>  License:
>  LGPLv2+
>  
> diff --git a/modules/crypto/gc-random b/modules/crypto/gc-random
> index 8d635fcae4..76d604cf8e 100644
> --- a/modules/crypto/gc-random
> +++ b/modules/crypto/gc-random
> @@ -16,6 +16,7 @@ Include:
>  "gc.h"
>  
>  Link:
> +$(LIB_CRYPTO)
>  $(GETRANDOM_LIB)
>  
>  License:
> diff --git a/modules/crypto/gc-rijndael b/modules/crypto/gc-rijndael
> index 249f47d0b4..01468499a7 100644
> --- a/modules/crypto/gc-rijndael
> +++ b/modules/crypto/gc-rijndael
> @@ -17,6 +17,9 @@ Makefile.am:
>  Include:
>  "gc.h"
>  
> +Link:
> +$(LIB_CRYPTO)
> +
>  License:
>  LGPLv2+
>  
> diff --git a/modules/crypto/gc-sha1 b/modules/crypto/gc-sha1
> index f959005583..40a935fa03 100644
> --- a/modules/crypto/gc-sha1
> +++ b/modules/crypto/gc-sha1
> @@ -17,6 +17,9 @@ Makefile.am:
>  Include:
>  "gc.h"
>  
> +Link:
> +$(LIB_CRYPTO)
> +
>  License:
>  LGPLv2+
>  
> diff --git a/modules/crypto/gc-sha256 b/modules/crypto/gc-sha256
> index ee3156fe3b..0f45cf1efa 100644
> --- a/modules/crypto/gc-sha256
> +++ b/modules/crypto/gc-sha256
> @@ -17,6 +17,9 @@ Makefile.am:
>  Include:
>  "gc.h"
>  
> +Link:
> +$(LIB_CRYPTO)
> +
>  License:
>  LGPLv2+
>  
> diff --git a/modules/crypto/gc-sha512 b/modules/crypto/gc-sha512
> index 7372fec243..4b0cfcdcb6 100644
> --- a/modules/crypto/gc-sha512
> +++ b/modules/crypto/gc-sha512
> @@ -17,6 +17,9 @@ Makefile.am:
>  Include:
>  "gc.h"
>  
> +Link:
> +$(LIB_CRYPTO)
> +
>  License:
>  LGPLv2+
>  
> diff --git a/modules/crypto/gc-sm3 b/modules/crypto/gc-sm3
> index de52e04547..ac734a02e4 100644
> --- a/modules/crypto/gc-sm3
> +++ b/modules/crypto/gc-sm3
> @@ -17,6 +17,9 @@ Makefile.am:
>  Include:
>  "gc.h"
>  
> +Link:
> +$(LIB_CRYPTO)
> +
>  License:
>  LGPLv2+
>  
>
>
>
>
>

Attachment: signature.asc
Description: PGP signature

Reply via email to