polkit: Fix build with musl

Make features like netgroup optional, these are not supported by posix
secondly they are poked at during configure so nothing changes for glibc
based systems but it helps compiling with musl

Signed-off-by: Khem Raj <raj.khem@gmail.com>
Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com>
This commit is contained in:
Khem Raj
2016-01-20 05:03:10 +00:00
committed by Martin Jansa
parent 484fbf6979
commit 8404784b35
2 changed files with 108 additions and 0 deletions

View File

@@ -0,0 +1,107 @@
From 7d5e205aa58a10e7b1ccc2fa75b443508a5c3e18 Mon Sep 17 00:00:00 2001
From: Khem Raj <raj.khem@gmail.com>
Date: Wed, 20 Jan 2016 04:31:59 +0000
Subject: [PATCH] make netgroup support configurable
Disable using innetgr and *netigrent function if not available
These functions are not available on all libc implementations e.g. musl
doesnt have them.
Signed-off-by: Khem Raj <raj.khem@gmail.com>
---
Upstream-Status: Pending
configure.ac | 2 +-
src/polkitbackend/polkitbackendinteractiveauthority.c | 6 +++++-
src/polkitbackend/polkitbackendjsauthority.c | 5 ++---
3 files changed, 8 insertions(+), 5 deletions(-)
diff --git a/configure.ac b/configure.ac
index 07982d1..21590b2 100644
--- a/configure.ac
+++ b/configure.ac
@@ -158,7 +158,7 @@ AC_CHECK_LIB(expat,XML_ParserCreate,[EXPAT_LIBS="-lexpat"],
[AC_MSG_ERROR([Can't find expat library. Please install expat.])])
AC_SUBST(EXPAT_LIBS)
-AC_CHECK_FUNCS(clearenv fdatasync)
+AC_CHECK_FUNCS(clearenv fdatasync getnetgrent innetgr)
if test "x$GCC" = "xyes"; then
LDFLAGS="-Wl,--as-needed $LDFLAGS"
diff --git a/src/polkitbackend/polkitbackendinteractiveauthority.c b/src/polkitbackend/polkitbackendinteractiveauthority.c
index 7019356..cf39d77 100644
--- a/src/polkitbackend/polkitbackendinteractiveauthority.c
+++ b/src/polkitbackend/polkitbackendinteractiveauthority.c
@@ -2213,7 +2213,7 @@ get_users_in_group (PolkitIdentity *group,
out:
return ret;
}
-
+#if defined HAVE_GETNETGRENT
static GList *
get_users_in_net_group (PolkitIdentity *group,
gboolean include_root)
@@ -2270,6 +2270,8 @@ get_users_in_net_group (PolkitIdentity *group,
return ret;
}
+#endif
+
/* ---------------------------------------------------------------------------------------------------- */
static void
@@ -2355,10 +2357,12 @@ authentication_agent_initiate_challenge (AuthenticationAgent *agent,
{
user_identities = g_list_concat (user_identities, get_users_in_group (identity, FALSE));
}
+#if defined HAVE_GETNETGRENT
else if (POLKIT_IS_UNIX_NETGROUP (identity))
{
user_identities = g_list_concat (user_identities, get_users_in_net_group (identity, FALSE));
}
+#endif
else
{
g_warning ("Unsupported identity");
diff --git a/src/polkitbackend/polkitbackendjsauthority.c b/src/polkitbackend/polkitbackendjsauthority.c
index 097dcc5..e59b3f7 100644
--- a/src/polkitbackend/polkitbackendjsauthority.c
+++ b/src/polkitbackend/polkitbackendjsauthority.c
@@ -1498,7 +1498,6 @@ js_polkit_spawn (JSContext *cx,
/* ---------------------------------------------------------------------------------------------------- */
-
static JSBool
js_polkit_user_is_in_netgroup (JSContext *cx,
unsigned argc,
@@ -1518,6 +1517,7 @@ js_polkit_user_is_in_netgroup (JSContext *cx,
user = JS_EncodeString (cx, user_str);
netgroup = JS_EncodeString (cx, netgroup_str);
+#if defined HAVE_INNETGR
if (innetgr (netgroup,
NULL, /* host */
user,
@@ -1525,6 +1525,7 @@ js_polkit_user_is_in_netgroup (JSContext *cx,
{
is_in_netgroup = JS_TRUE;
}
+#endif
JS_free (cx, netgroup);
JS_free (cx, user);
@@ -1536,8 +1537,6 @@ js_polkit_user_is_in_netgroup (JSContext *cx,
return ret;
}
-
-
/* ---------------------------------------------------------------------------------------------------- */
typedef struct
--
2.7.0

View File

@@ -19,6 +19,7 @@ PACKAGECONFIG[consolekit] = ",,,consolekit"
PAM_SRC_URI = "file://polkit-1_pam.patch"
SRC_URI = "http://www.freedesktop.org/software/polkit/releases/polkit-${PV}.tar.gz \
file://0001-make-netgroup-support-configurable.patch \
${@base_contains('DISTRO_FEATURES', 'pam', '${PAM_SRC_URI}', '', d)} \
"
SRC_URI[md5sum] = "4b77776c9e4f897dcfe03b2c34198edf"