summaryrefslogtreecommitdiffstats
path: root/meta-networking/recipes-protocols/mdns
diff options
context:
space:
mode:
Diffstat (limited to 'meta-networking/recipes-protocols/mdns')
-rw-r--r--meta-networking/recipes-protocols/mdns/mdns/0001-mDNSPosix-Rework-mbedtls-for-compatibility-with-mbed.patch57
-rw-r--r--meta-networking/recipes-protocols/mdns/mdns_2881.100.56.0.1.bb69
2 files changed, 99 insertions, 27 deletions
diff --git a/meta-networking/recipes-protocols/mdns/mdns/0001-mDNSPosix-Rework-mbedtls-for-compatibility-with-mbed.patch b/meta-networking/recipes-protocols/mdns/mdns/0001-mDNSPosix-Rework-mbedtls-for-compatibility-with-mbed.patch
new file mode 100644
index 0000000000..a561fd232f
--- /dev/null
+++ b/meta-networking/recipes-protocols/mdns/mdns/0001-mDNSPosix-Rework-mbedtls-for-compatibility-with-mbed.patch
@@ -0,0 +1,57 @@
1From f4f5039eb90918b5248bd6266afdad0b33b2d010 Mon Sep 17 00:00:00 2001
2From: Alex Kiernan <alex.kiernan@gmail.com>
3Date: Thu, 30 Apr 2026 08:21:19 +0100
4Subject: [PATCH] mDNSPosix: Rework mbedtls for compatibility with mbedtls4
5
6Upstream-Status: Inactive-Upstream [Upstream does not take patches]
7Signed-off-by: Alex Kiernan <alex.kiernan@gmail.com>
8---
9 mDNSPosix/mbedtls.c | 21 +++++----------------
10 1 file changed, 5 insertions(+), 16 deletions(-)
11
12diff --git a/mDNSPosix/mbedtls.c b/mDNSPosix/mbedtls.c
13index 6726ef9b9145..c4b7fd4edfff 100644
14--- a/mDNSPosix/mbedtls.c
15+++ b/mDNSPosix/mbedtls.c
16@@ -29,14 +29,10 @@
17 #include <errno.h>
18 #include <unistd.h>
19
20+#include <psa/crypto.h>
21+
22 #include <mbedtls/error.h>
23-#include <mbedtls/pk.h>
24-#include <mbedtls/ecp.h>
25-#include <mbedtls/ecdsa.h>
26-#include <mbedtls/entropy.h>
27-#include <mbedtls/ctr_drbg.h>
28-#include <mbedtls/sha256.h>
29-#include <mbedtls/base64.h>
30+#include <mbedtls/psa_util.h>
31
32 #include <mbedtls/x509.h>
33 #include <mbedtls/ssl.h>
34@@ -53,21 +49,14 @@ struct TLSServerContext_struct {
35 mbedtls_ssl_config config;
36 };
37
38-// Context that is shared amongs all TLS connections, regardless of which server cert/key is in use.
39-static mbedtls_entropy_context entropy;
40-static mbedtls_ctr_drbg_context ctr_drbg;
41-
42 mDNSBool
43 mDNSPosixTLSInit(void)
44 {
45 int status;
46
47- mbedtls_entropy_init(&entropy);
48- mbedtls_ctr_drbg_init(&ctr_drbg);
49-
50- status = mbedtls_ctr_drbg_seed(&ctr_drbg, mbedtls_entropy_func, &entropy, NULL, 0);
51+ status = psa_crypto_init();
52 if (status != 0) {
53- LogRedact(MDNS_LOG_CATEGORY_DEFAULT, MDNS_LOG_ERROR, "Unable to seed RNG: %x", -status);
54+ LogRedact(MDNS_LOG_CATEGORY_DEFAULT, MDNS_LOG_ERROR, "PSA crypto init failed: %x", -status);
55 return mDNSfalse;
56 }
57 return mDNStrue;
diff --git a/meta-networking/recipes-protocols/mdns/mdns_2881.100.56.0.1.bb b/meta-networking/recipes-protocols/mdns/mdns_2881.100.56.0.1.bb
index 10560d795a..4bbf012b83 100644
--- a/meta-networking/recipes-protocols/mdns/mdns_2881.100.56.0.1.bb
+++ b/meta-networking/recipes-protocols/mdns/mdns_2881.100.56.0.1.bb
@@ -15,6 +15,7 @@ SRC_URI = "git://github.com/apple-oss-distributions/mDNSResponder;protocol=https
15 file://0001-Fix-build-with-gcc-15.patch \ 15 file://0001-Fix-build-with-gcc-15.patch \
16 file://mdns.service \ 16 file://mdns.service \
17 file://0007-mDNSShared-Make-Apple-Wireless-Direct-Link-depend-on.patch \ 17 file://0007-mDNSShared-Make-Apple-Wireless-Direct-Link-depend-on.patch \
18 file://0001-mDNSPosix-Rework-mbedtls-for-compatibility-with-mbed.patch \
18 " 19 "
19BRANCH = "rel/mDNSResponder-2881" 20BRANCH = "rel/mDNSResponder-2881"
20SRCREV = "ea3902cfeff86a04b4c684753c80e425edbd1a21" 21SRCREV = "ea3902cfeff86a04b4c684753c80e425edbd1a21"
@@ -26,7 +27,10 @@ PACKAGECONFIG ?= "tls \
26PACKAGECONFIG[debug] = "DEBUG=1,DEBUG=0" 27PACKAGECONFIG[debug] = "DEBUG=1,DEBUG=0"
27PACKAGECONFIG[ipv6] = "HAVE_IPV6=1,HAVE_IPV6=0" 28PACKAGECONFIG[ipv6] = "HAVE_IPV6=1,HAVE_IPV6=0"
28PACKAGECONFIG[manpages] = "" 29PACKAGECONFIG[manpages] = ""
30PACKAGECONFIG[idlesleepcontrol] = ""
31PACKAGECONFIG[spc] = ""
29PACKAGECONFIG[tls] = ",tls=no,mbedtls" 32PACKAGECONFIG[tls] = ",tls=no,mbedtls"
33PACKAGECONFIG[unicast] = ""
30 34
31CVE_PRODUCT = "apple:mdnsresponder" 35CVE_PRODUCT = "apple:mdnsresponder"
32 36
@@ -47,49 +51,55 @@ EXTRA_OEMAKE = "os=linux 'CC=${CCLD}' 'LD=${CCLD}' 'LINKOPTS=${LDFLAGS}' STRIP=:
47 51
48# MDNS_VERSIONSTR_NODTS disables __DATE__ and __TIME__ in the version string, 52# MDNS_VERSIONSTR_NODTS disables __DATE__ and __TIME__ in the version string,
49# which are fixed anyway for build reproducibility. 53# which are fixed anyway for build reproducibility.
50TARGET_CPPFLAGS += "-DMDNS_VERSIONSTR_NODTS" 54#
55# IDLESLEEPCONTROL_DISABLED - disables sleep control for Bonjour Sleep Proxy clients
56# UNICAST_DISABLED - disables unicast DNS functionality, including Wide Area Bonjour
57# SPC_DISABLED - disables Bonjour Sleep Proxy client
58TARGET_CPPFLAGS += "-DmDNSResponderVersion=${PV} \
59 -DMDNS_VERSIONSTR_NODTS \
60 ${@bb.utils.contains('PACKAGECONFIG','idlesleepcontrol','','-DIDLESLEEPCONTROL_DISABLED', d)} \
61 ${@bb.utils.contains('PACKAGECONFIG','unicast','','-DUNICAST_DISABLED', d)} \
62 ${@bb.utils.contains('PACKAGECONFIG','spc','','-DSPC_DISABLED', d)}"
51 63
52TARGET_CC_ARCH += "${LDFLAGS}" 64TARGET_CC_ARCH += "${LDFLAGS}"
53 65
54MDNS_BUILDDIR = "build/${@bb.utils.contains('PACKAGECONFIG','debug','debug','prod', d)}" 66MDNS_BUILDDIR = "build/${@bb.utils.contains('PACKAGECONFIG','debug','debug','prod', d)}"
55 67
56do_install () { 68do_install () {
57 cd mDNSPosix 69 install -d ${D}${bindir}
58 70 install -d ${D}${includedir}
71 install -d ${D}${libdir}
72 install -d ${D}${mandir}/man5
73 install -d ${D}${mandir}/man8
59 install -d ${D}${sbindir} 74 install -d ${D}${sbindir}
60 install ${MDNS_BUILDDIR}/mdnsd ${D}${sbindir} 75 install -d ${D}${sysconfdir}
76 install -d ${D}${systemd_system_unitdir}
77 install -d ${D}${INIT_D_DIR}
61 78
62 install -d ${D}${libdir} 79 install ${B}/mDNSPosix/${MDNS_BUILDDIR}/mdnsd ${D}${sbindir}
63 install -m 0644 ${MDNS_BUILDDIR}/libdns_sd.so ${D}${libdir}/libdns_sd.so.1 80 install ${B}/mDNSPosix/${MDNS_BUILDDIR}/mDNSClientPosix ${D}${bindir}
64 ln -s libdns_sd.so.1 ${D}${libdir}/libdns_sd.so 81 install ${B}/mDNSPosix/${MDNS_BUILDDIR}/mDNSNetMonitor ${D}${bindir}
82 install ${B}/mDNSPosix/${MDNS_BUILDDIR}/mDNSProxyResponderPosix ${D}${bindir}
83 install ${B}/mDNSPosix/${MDNS_BUILDDIR}/mDNSResponderPosix ${D}${bindir}
65 84
66 install -d ${D}${includedir} 85 install -m 0644 ${B}/mDNSPosix/${MDNS_BUILDDIR}/libdns_sd.so ${D}${libdir}/libdns_sd.so.1
67 install -m 0644 ../mDNSShared/dns_sd.h ${D}${includedir} 86 ln -s libdns_sd.so.1 ${D}${libdir}/libdns_sd.so
68 87
69 install -d ${D}${mandir}/man8 88 install -m 0644 ${B}/mDNSShared/dns_sd.h ${D}${includedir}
70 install -m 0644 ../mDNSShared/mDNSResponder.8 ${D}${mandir}/man8/mdnsd.8 89 install -m 0644 ${B}/mDNSShared/mDNSResponder.8 ${D}${mandir}/man8/mdnsd.8
71 90
72 install -d ${D}${bindir} 91 install -m 0755 ${B}/Clients/build/dns-sd ${D}${bindir}
73 install -m 0755 ../Clients/build/dns-sd ${D}${bindir}
74 92
75 install -d ${D}${libdir} 93 oe_libinstall -C ${B}/mDNSPosix/${MDNS_BUILDDIR} -so libnss_mdns-0.2 ${D}${libdir}
76 oe_libinstall -C ${MDNS_BUILDDIR} -so libnss_mdns-0.2 ${D}${libdir}
77 ln -s libnss_mdns-0.2.so ${D}${libdir}/libnss_mdns.so.2 94 ln -s libnss_mdns-0.2.so ${D}${libdir}/libnss_mdns.so.2
78 95
79 install -d ${D}${sysconfdir} 96 install -m 0644 ${B}/mDNSPosix/nss_mdns.conf ${D}${sysconfdir}
80 install -m 0644 nss_mdns.conf ${D}${sysconfdir} 97 install -m 0644 ${B}/mDNSPosix/nss_mdns.conf.5 ${D}${mandir}/man5
81 98 install -m 0644 ${B}/mDNSPosix/libnss_mdns.8 ${D}${mandir}/man8
82 install -d ${D}${mandir}/man5
83 install -m 0644 nss_mdns.conf.5 ${D}${mandir}/man5
84
85 install -d ${D}${mandir}/man8
86 install -m 0644 libnss_mdns.8 ${D}${mandir}/man8
87 99
88 install -d ${D}${systemd_system_unitdir}
89 install -m 0644 ${UNPACKDIR}/mdns.service ${D}${systemd_system_unitdir} 100 install -m 0644 ${UNPACKDIR}/mdns.service ${D}${systemd_system_unitdir}
90 101
91 install -d ${D}${INIT_D_DIR} 102 install ${B}/mDNSPosix/mdnsd.sh ${D}${INIT_D_DIR}/mdns
92 install mdnsd.sh ${D}${INIT_D_DIR}/mdns
93} 103}
94 104
95pkg_postinst:${PN}-libnss-mdns () { 105pkg_postinst:${PN}-libnss-mdns () {
@@ -111,7 +121,7 @@ pkg_prerm:${PN}-libnss-mdns () {
111SYSTEMD_SERVICE:${PN} = "mdns.service" 121SYSTEMD_SERVICE:${PN} = "mdns.service"
112INITSCRIPT_NAME = "mdns" 122INITSCRIPT_NAME = "mdns"
113 123
114PACKAGE_BEFORE_PN = "${PN}-libnss-mdns" 124PACKAGE_BEFORE_PN = "${PN}-libnss-mdns ${PN}-clients"
115 125
116RRECOMMENDS:${PN}:append:libc-glibc = " ${PN}-libnss-mdns" 126RRECOMMENDS:${PN}:append:libc-glibc = " ${PN}-libnss-mdns"
117 127
@@ -119,4 +129,9 @@ FILES_SOLIBSDEV = "${libdir}/libdns_sd.so"
119FILES:${PN}-libnss-mdns = "${sysconfdir}/nss_mdns.conf ${libdir}/libnss_mdns*.so*" 129FILES:${PN}-libnss-mdns = "${sysconfdir}/nss_mdns.conf ${libdir}/libnss_mdns*.so*"
120RPROVIDES:${PN}-libnss-mdns = "libnss-mdns" 130RPROVIDES:${PN}-libnss-mdns = "libnss-mdns"
121 131
132FILES:${PN}-clients = "${bindir}/mDNSClientPosix \
133 ${bindir}/mDNSNetMonitor \
134 ${bindir}/mDNSProxyResponderPosix \
135 ${bindir}/mDNSResponderPosix"
136
122RPROVIDES:${PN} += "libdns-sd" 137RPROVIDES:${PN} += "libdns-sd"