libs/nixio: allow building without shadow password support
authorJo-Philipp Wich <jow@openwrt.org>
Thu, 11 Aug 2011 23:21:06 +0000 (23:21 +0000)
committerJo-Philipp Wich <jow@openwrt.org>
Thu, 11 Aug 2011 23:21:06 +0000 (23:21 +0000)
libs/nixio/Makefile
libs/nixio/src/user.c

index 2a7552d..fb91388 100644 (file)
@@ -10,6 +10,7 @@ AXTLS_VERSION = 1.2.1
 AXTLS_DIR     = axTLS
 AXTLS_FILE    = $(AXTLS_DIR)-$(AXTLS_VERSION).tar.gz
 NIXIO_TLS    ?= openssl
+NIXIO_SHADOW ?= $(shell echo 'int main(void){ return !getspnam("root"); }' | $(CC) -include shadow.h -xc -o/dev/null - 2>/dev/null && echo yes)
 NIXIO_SO      = nixio.so
 NIXIO_LDFLAGS =
 
@@ -45,6 +46,10 @@ ifeq ($(NIXIO_TLS),)
        NIXIO_CFLAGS += -DNO_TLS
 endif
 
+ifneq ($(NIXIO_SHADOW),yes)
+       NIXIO_CFLAGS += -DNO_SHADOW
+endif
+
 
 ifeq ($(OS),SunOS)
        NIXIO_LDFLAGS += -lsocket -lnsl -lsendfile
index bc2184f..b701bac 100644 (file)
@@ -28,7 +28,9 @@
 #include <pwd.h>
 
 #ifndef BSD
+#ifndef NO_SHADOW
 #include <shadow.h>
+#endif
 #include <crypt.h>
 #endif
 
@@ -162,6 +164,7 @@ static int nixio_getpw(lua_State *L) {
 }
 
 #ifndef BSD
+#ifndef NO_SHADOW
 static int nixio__push_spwd(lua_State *L, struct spwd *sp) {
        lua_createtable(L, 0, 9);
        lua_pushstring(L, sp->sp_namp);
@@ -216,6 +219,7 @@ static int nixio_getsp(lua_State *L) {
                return nixio__push_spwd(L, sp);
        }
 }
+#endif /* !NO_SHADOW */
 #endif /* !BSD */
 
 static int nixio_crypt(lua_State *L) {
@@ -239,8 +243,10 @@ static const luaL_reg R[] = {
        {"getgr",               nixio_getgr},
        {"getpw",               nixio_getpw},
 #ifndef BSD
+#ifndef NO_SHADOW
        {"getsp",               nixio_getsp},
 #endif
+#endif
        {NULL,                  NULL}
 };