From 65ae6543e8adb24f064affaa257c139422e825ea Mon Sep 17 00:00:00 2001 From: Alan Coopersmith Date: Tue, 3 Mar 2026 13:12:12 -0800 Subject: [PATCH] os: fix sha1 build error with Nettle 4.0 Nettle 2.6 (released in 2013) split the sha.h header into sha1.h & sha2.h, but left the sha.h header for compatibility until the recent Nettle 4.0 release finally removed it. Nettle 4.0 also dropped the length argument from the sha1_digest function. Closes: #1871 Signed-off-by: Alan Coopersmith (cherry picked from commit f8355b8821ef944ce4f6ce5bee9cb87adf7d3f60) Part-of: --- meson.build | 2 +- os/xsha1.c | 7 ++++++- 2 files changed, 7 insertions(+), 2 deletions(-) diff --git a/meson.build b/meson.build index d48733938..2e66bfeeb 100644 --- a/meson.build +++ b/meson.build @@ -273,7 +273,7 @@ foreach t : test_sha1 sha1_dep = libsha1_dep endif elif t == 'libnettle' - nettle_dep = dependency('nettle', required: false) + nettle_dep = dependency('nettle', version: '>= 2.6', required: false) if nettle_dep.found() sha1_found = true sha1_dep = nettle_dep diff --git a/os/xsha1.c b/os/xsha1.c index cb3b547e6..6d00de16b 100644 --- a/os/xsha1.c +++ b/os/xsha1.c @@ -155,7 +155,8 @@ x_sha1_final(void *ctx, unsigned char result[20]) #elif defined(HAVE_SHA1_IN_LIBNETTLE) /* Use libnettle for SHA1 */ -#include +#include +#include void * x_sha1_init(void) @@ -178,7 +179,11 @@ x_sha1_update(void *ctx, void *data, int size) int x_sha1_final(void *ctx, unsigned char result[20]) { +#if NETTLE_VERSION_MAJOR < 4 sha1_digest(ctx, 20, result); +#else + sha1_digest(ctx, result); +#endif free(ctx); return 1; }