File 4070a748.patch of Package dnsmasq
From 4070a74862c3c956a676d2b931ff186e14f5d9f5 Mon Sep 17 00:00:00 2001
From: Simon Kelley <simon@thekelleys.org.uk>
Date: Sun, 1 Mar 2026 12:01:12 +0000
Subject: [PATCH] Fix FTBFS with nettle 4.0.
Thanks to Andreas Metzler for the heads-up.
---
src/crypto.c | 23 ++++++++++++++++++++++-
src/dnsmasq.h | 1 +
src/dnssec.c | 2 +-
3 files changed, 24 insertions(+), 2 deletions(-)
--- src/crypto.c.orig
+++ src/crypto.c
@@ -93,7 +93,15 @@ static void null_hash_update(void *ctxv,
memcpy(null_hash_buff + ctx->len, src, length);
ctx->len += length;
}
-
+
+/* The prototype changes in nettle 4.0 to omit the length argument */
+#if MIN_VERSION(4, 0)
+static void null_hash_digest(void *ctx, uint8_t *dst)
+{
+ ((struct null_hash_digest *)dst)->buff = null_hash_buff;
+ ((struct null_hash_digest *)dst)->len = ((struct null_hash_ctx *)ctx)->len;
+}
+#else
static void null_hash_digest(void *ctx, size_t length, uint8_t *dst)
{
(void)length;
@@ -101,6 +109,7 @@ static void null_hash_digest(void *ctx,
((struct null_hash_digest *)dst)->buff = null_hash_buff;
((struct null_hash_digest *)dst)->len = ((struct null_hash_ctx *)ctx)->len;
}
+#endif
static struct nettle_hash null_hash = {
"null_hash",
@@ -503,4 +512,16 @@ const struct nettle_hash *hash_find(char
#endif
}
+/* The prototype changes in nettle 4.0 to omit the length argument */
+void nettle_digest_wrapper(const struct nettle_hash *hash, void *ctx, size_t length, uint8_t *dst)
+{
+#if MIN_VERSION(4, 0)
+ (void)length;
+ hash->digest(ctx, dst);
+#else
+ hash->digest(ctx, length, dst);
+#endif
+}
+
+
#endif /* defined(HAVE_DNSSEC) */
--- src/dnsmasq.h.orig
+++ src/dnsmasq.h
@@ -1477,6 +1477,7 @@ int verify(struct blockdata *key_data, u
char *ds_digest_name(int digest);
char *algo_digest_name(int algo);
char *nsec3_digest_name(int digest);
+void nettle_digest_wrapper(const struct nettle_hash *hash, void *ctx, size_t length, uint8_t *dst);
/* util.c */
void rand_init(void);
--- src/dnssec.c.orig
+++ src/dnssec.c
@@ -657,7 +657,7 @@ static int validate_rrset(time_t now, st
}
}
- hash->digest(ctx, hash->digest_size, digest);
+ nettle_digest_wrapper(hash, ctx, hash->digest_size, digest);
/* namebuff used for workspace above, restore to leave unchanged on exit */
p = (unsigned char*)(rrset[0]);