libnss-mdns: Check for nss.h before using

nss.h is not available on all libcs
so check for it and if its not there provide
the needed data types.

Fixed buil with musl
../../nss-mdns-0.10/src/nss.c:32:17: fatal error: nss.h: No such file or
directory
compilation terminated.
make[2]: *** [libnss_mdns4_la-nss.lo] Error 1

(From OE-Core rev: 94f780e889f194b67a48587ac68b3200288bee10)

Signed-off-by: Khem Raj <raj.khem@gmail.com>
Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
This commit is contained in:
Khem Raj 2016-02-01 05:08:22 +00:00 committed by Richard Purdie
parent 1b34f55a35
commit 07a91a6e31
2 changed files with 59 additions and 1 deletions

View File

@ -0,0 +1,56 @@
From bdf01a581d58eb5340e9238d143dbcac9db5b11c Mon Sep 17 00:00:00 2001
From: Khem Raj <raj.khem@gmail.com>
Date: Sat, 30 Jan 2016 19:29:45 +0000
Subject: [PATCH] check for nss.h
nss.h may not available on all libc implementations, e.g. musl does not
have this header, this patch detects nss.h presence and defines the data
types that are required if nss.h is missing on platform
Signed-off-by: Khem Raj <raj.khem@gmail.com>
---
Upstream-Status: Pending
configure.ac | 2 +-
src/nss.c | 11 +++++++++++
2 files changed, 12 insertions(+), 1 deletion(-)
diff --git a/configure.ac b/configure.ac
index aa66bc6..ce19b07 100644
--- a/configure.ac
+++ b/configure.ac
@@ -71,7 +71,7 @@ AC_PROG_LIBTOOL
# Checks for header files.
AC_HEADER_STDC
-AC_CHECK_HEADERS([arpa/inet.h fcntl.h inttypes.h netdb.h netinet/in.h stdlib.h string.h sys/socket.h sys/time.h unistd.h nss.h sys/ioctl.h])
+AC_CHECK_HEADERS([arpa/inet.h fcntl.h inttypes.h netdb.h netinet/in.h stdlib.h string.h sys/socket.h sys/time.h unistd.h nss.h sys/ioctl.h nss.h])
# Checks for typedefs, structures, and compiler characteristics.
AC_C_CONST
diff --git a/src/nss.c b/src/nss.c
index e48e315..406733b 100644
--- a/src/nss.c
+++ b/src/nss.c
@@ -29,7 +29,18 @@
#include <assert.h>
#include <netdb.h>
#include <sys/socket.h>
+#ifdef HAVE_NSS_H
#include <nss.h>
+#else
+enum nss_status {
+ NSS_STATUS_TRYAGAIN = -2,
+ NSS_STATUS_UNAVAIL,
+ NSS_STATUS_NOTFOUND,
+ NSS_STATUS_SUCCESS,
+ NSS_STATUS_RETURN
+};
+#endif
+
#include <stdio.h>
#include <stdlib.h>
--
2.7.0

View File

@ -8,7 +8,9 @@ LIC_FILES_CHKSUM = "file://LICENSE;md5=2d5025d4aa3495befef8f17206a5b0a1"
DEPENDS = "avahi"
PR = "r7"
SRC_URI = "http://0pointer.de/lennart/projects/nss-mdns/nss-mdns-${PV}.tar.gz"
SRC_URI = "http://0pointer.de/lennart/projects/nss-mdns/nss-mdns-${PV}.tar.gz \
file://0001-check-for-nss.h.patch \
"
SRC_URI[md5sum] = "03938f17646efbb50aa70ba5f99f51d7"
SRC_URI[sha256sum] = "1e683c2e7c3921814706d62fbbd3e9cbf493a75fa00255e0e715508d8134fa6d"