package/polkit: bump to version 0.116

Other changes:
  - Add spidermonkey as a dependency.
  - Add 0001-make-netgroup-support-optional.patch to allow building on musl.
  - Add a runtime dependency on dbus.
  - Add --disable-libelongind.
  - Add --disable-libsystemd-login.
  - Update dependencies for systemd pam support.
  - Update dependencies for udisks.

Signed-off-by: Adam Duskett <Aduskett@gmail.com>
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@bootlin.com>
This commit is contained in:
Adam Duskett 2019-12-06 15:46:44 -08:00 committed by Thomas Petazzoni
parent e0e54afd0c
commit ce2a5eff78
7 changed files with 293 additions and 19 deletions

View File

@ -53,6 +53,7 @@ F: package/openjdk/
F: package/openjdk-bin/
F: package/php/
F: package/policycoreutils/
F: package/polkit/
F: package/python3/
F: package/python-aioredis/
F: package/python-asgiref/

View File

@ -0,0 +1,232 @@
From 21aa2747e8f0048759aab184b07dd6389666d5e6 Mon Sep 17 00:00:00 2001
From: Khem Raj <raj.khem@gmail.com>
Date: Wed, 22 May 2019 13:18:55 -0700
Subject: [PATCH] make netgroup support optional
On at least Linux/musl and Linux/uclibc, netgroup
support is not available. PolKit fails to compile on these systems
for that reason.
This change makes netgroup support conditional on the presence of the
setnetgrent(3) function which is required for the support to work. If
that function is not available on the system, an error will be returned
to the administrator if unix-netgroup: is specified in configuration.
Fixes bug 50145.
Signed-off-by: A. Wilcox <AWilcox@Wilcox-Tech.com>
Signed-off-by: Khem Raj <raj.khem@gmail.com>
Signed-off-by: Adam Duskett <aduskett@gmail.com>
---
configure.ac | 2 +-
src/polkit/polkitidentity.c | 16 ++++++++++++++++
src/polkit/polkitunixnetgroup.c | 3 +++
.../polkitbackendinteractiveauthority.c | 14 ++++++++------
src/polkitbackend/polkitbackendjsauthority.cpp | 2 ++
test/polkit/polkitidentitytest.c | 9 ++++++++-
test/polkit/polkitunixnetgrouptest.c | 3 +++
.../test-polkitbackendjsauthority.c | 2 ++
8 files changed, 43 insertions(+), 8 deletions(-)
--- a/configure.ac
+++ b/configure.ac
@@ -99,7 +99,7 @@ AC_CHECK_LIB(expat,XML_ParserCreate,[EXP
[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 setnetgrent)
if test "x$GCC" = "xyes"; then
LDFLAGS="-Wl,--as-needed $LDFLAGS"
--- a/src/polkit/polkitidentity.c
+++ b/src/polkit/polkitidentity.c
@@ -182,7 +182,15 @@ polkit_identity_from_string (const gcha
}
else if (g_str_has_prefix (str, "unix-netgroup:"))
{
+#ifndef HAVE_SETNETGRENT
+ g_set_error (error,
+ POLKIT_ERROR,
+ POLKIT_ERROR_FAILED,
+ "Netgroups are not available on this machine ('%s')",
+ str);
+#else
identity = polkit_unix_netgroup_new (str + sizeof "unix-netgroup:" - 1);
+#endif
}
if (identity == NULL && (error != NULL && *error == NULL))
@@ -344,6 +352,13 @@ polkit_identity_new_for_gvariant (GVaria
GVariant *v;
const char *name;
+#ifndef HAVE_SETNETGRENT
+ g_set_error (error,
+ POLKIT_ERROR,
+ POLKIT_ERROR_FAILED,
+ "Netgroups are not available on this machine");
+ goto out;
+#else
v = lookup_asv (details_gvariant, "name", G_VARIANT_TYPE_STRING, error);
if (v == NULL)
{
@@ -353,6 +368,7 @@ polkit_identity_new_for_gvariant (GVaria
name = g_variant_get_string (v, NULL);
ret = polkit_unix_netgroup_new (name);
g_variant_unref (v);
+#endif
}
else
{
--- a/src/polkit/polkitunixnetgroup.c
+++ b/src/polkit/polkitunixnetgroup.c
@@ -194,6 +194,9 @@ polkit_unix_netgroup_set_name (PolkitUni
PolkitIdentity *
polkit_unix_netgroup_new (const gchar *name)
{
+#ifndef HAVE_SETNETGRENT
+ g_assert_not_reached();
+#endif
g_return_val_if_fail (name != NULL, NULL);
return POLKIT_IDENTITY (g_object_new (POLKIT_TYPE_UNIX_NETGROUP,
"name", name,
--- a/src/polkitbackend/polkitbackendinteractiveauthority.c
+++ b/src/polkitbackend/polkitbackendinteractiveauthority.c
@@ -2233,25 +2233,26 @@ get_users_in_net_group (PolkitIdentity
GList *ret;
ret = NULL;
+#ifdef HAVE_SETNETGRENT
name = polkit_unix_netgroup_get_name (POLKIT_UNIX_NETGROUP (group));
-#ifdef HAVE_SETNETGRENT_RETURN
+# ifdef HAVE_SETNETGRENT_RETURN
if (setnetgrent (name) == 0)
{
g_warning ("Error looking up net group with name %s: %s", name, g_strerror (errno));
goto out;
}
-#else
+# else
setnetgrent (name);
-#endif
+# endif /* HAVE_SETNETGRENT_RETURN */
for (;;)
{
-#if defined(HAVE_NETBSD) || defined(HAVE_OPENBSD)
+# if defined(HAVE_NETBSD) || defined(HAVE_OPENBSD)
const char *hostname, *username, *domainname;
-#else
+# else
char *hostname, *username, *domainname;
-#endif
+# endif /* defined(HAVE_NETBSD) || defined(HAVE_OPENBSD) */
PolkitIdentity *user;
GError *error = NULL;
@@ -2282,6 +2283,7 @@ get_users_in_net_group (PolkitIdentity
out:
endnetgrent ();
+#endif /* HAVE_SETNETGRENT */
return ret;
}
--- a/src/polkitbackend/polkitbackendjsauthority.cpp
+++ b/src/polkitbackend/polkitbackendjsauthority.cpp
@@ -1502,6 +1502,7 @@ js_polkit_user_is_in_netgroup (JSContext
JS::CallArgs args = JS::CallArgsFromVp (argc, vp);
+#ifdef HAVE_SETNETGRENT
JS::RootedString usrstr (authority->priv->cx);
usrstr = args[0].toString();
user = JS_EncodeStringToUTF8 (cx, usrstr);
@@ -1519,6 +1520,7 @@ js_polkit_user_is_in_netgroup (JSContext
JS_free (cx, netgroup);
JS_free (cx, user);
+#endif
ret = true;
--- a/test/polkit/polkitidentitytest.c
+++ b/test/polkit/polkitidentitytest.c
@@ -19,6 +19,7 @@
* Author: Nikki VonHollen <vonhollen@google.com>
*/
+#include "config.h"
#include "glib.h"
#include <polkit/polkit.h>
#include <polkit/polkitprivate.h>
@@ -145,11 +146,15 @@ struct ComparisonTestData comparison_tes
{"unix-group:root", "unix-group:jane", FALSE},
{"unix-group:jane", "unix-group:jane", TRUE},
+#ifdef HAVE_SETNETGRENT
{"unix-netgroup:foo", "unix-netgroup:foo", TRUE},
{"unix-netgroup:foo", "unix-netgroup:bar", FALSE},
+#endif
{"unix-user:root", "unix-group:root", FALSE},
+#ifdef HAVE_SETNETGRENT
{"unix-user:jane", "unix-netgroup:foo", FALSE},
+#endif
{NULL},
};
@@ -181,11 +186,13 @@ main (int argc, char *argv[])
g_test_add_data_func ("/PolkitIdentity/group_string_2", "unix-group:jane", test_string);
g_test_add_data_func ("/PolkitIdentity/group_string_3", "unix-group:users", test_string);
+#ifdef HAVE_SETNETGRENT
g_test_add_data_func ("/PolkitIdentity/netgroup_string", "unix-netgroup:foo", test_string);
+ g_test_add_data_func ("/PolkitIdentity/netgroup_gvariant", "unix-netgroup:foo", test_gvariant);
+#endif
g_test_add_data_func ("/PolkitIdentity/user_gvariant", "unix-user:root", test_gvariant);
g_test_add_data_func ("/PolkitIdentity/group_gvariant", "unix-group:root", test_gvariant);
- g_test_add_data_func ("/PolkitIdentity/netgroup_gvariant", "unix-netgroup:foo", test_gvariant);
add_comparison_tests ();
--- a/test/polkit/polkitunixnetgrouptest.c
+++ b/test/polkit/polkitunixnetgrouptest.c
@@ -19,6 +19,7 @@
* Author: Nikki VonHollen <vonhollen@google.com>
*/
+#include "config.h"
#include "glib.h"
#include <polkit/polkit.h>
#include <string.h>
@@ -69,7 +70,9 @@ int
main (int argc, char *argv[])
{
g_test_init (&argc, &argv, NULL);
+#ifdef HAVE_SETNETGRENT
g_test_add_func ("/PolkitUnixNetgroup/new", test_new);
g_test_add_func ("/PolkitUnixNetgroup/set_name", test_set_name);
+#endif
return g_test_run ();
}
--- a/test/polkitbackend/test-polkitbackendjsauthority.c
+++ b/test/polkitbackend/test-polkitbackendjsauthority.c
@@ -137,12 +137,14 @@ test_get_admin_identities (void)
"unix-group:users"
}
},
+#ifdef HAVE_SETNETGRENT
{
"net.company.action3",
{
"unix-netgroup:foo"
}
},
+#endif
};
guint n;

View File

@ -1,11 +1,18 @@
config BR2_PACKAGE_POLKIT
bool "polkit"
depends on BR2_USE_MMU # libglib2
depends on BR2_TOOLCHAIN_HAS_THREADS # libglib2
depends on BR2_TOOLCHAIN_USES_GLIBC
depends on BR2_HOST_GCC_AT_LEAST_4_9 # spidermonkey
depends on BR2_INSTALL_LIBSTDCPP # spidermonkey
depends on BR2_PACKAGE_SPIDERMONKEY_ARCH_SUPPORTS # spidermonkey
depends on BR2_TOOLCHAIN_GCC_AT_LEAST_4_9 # spidermonkey
depends on BR2_TOOLCHAIN_HAS_THREADS_NPTL # spidermonkey
depends on BR2_USE_MMU # libglib2, dbus
depends on BR2_USE_WCHAR # libglib2
select BR2_PACKAGE_LIBGLIB2
depends on !BR2_STATIC_LIBS # spidermonkey
depends on !BR2_TOOLCHAIN_USES_UCLIBC # spidermonkey
select BR2_PACKAGE_DBUS # runtime
select BR2_PACKAGE_EXPAT
select BR2_PACKAGE_LIBGLIB2
select BR2_PACKAGE_SPIDERMONKEY
help
PolicyKit is a toolkit for defining and handling
authorizations. It is used for allowing unprivileged
@ -13,6 +20,13 @@ config BR2_PACKAGE_POLKIT
http://www.freedesktop.org/wiki/Software/polkit
comment "polkit needs a toolchain w/ wchar, threads"
comment "polkit needs a glibc or musl toolchain with C++, wchar, dynamic library, NPTL, gcc >= 4.9"
depends on BR2_USE_MMU
depends on !BR2_USE_WCHAR || !BR2_TOOLCHAIN_HAS_THREADS
depends on BR2_PACKAGE_SPIDERMONKEY_ARCH_SUPPORTS
depends on BR2_TOOLCHAIN_USES_UCLIBC || \
!BR2_INSTALL_LIBSTDCPP || \
BR2_STATIC_LIBS || \
!BR2_TOOLCHAIN_HAS_THREADS_NPTL || \
!BR2_HOST_GCC_AT_LEAST_4_9 || \
!BR2_TOOLCHAIN_GCC_AT_LEAST_4_9 || \
!BR2_USE_WCHAR

View File

@ -1,5 +1,5 @@
# Locally calculated after checking pgp signature
sha256 8fdc7cc8ba4750fcce1a4db9daa759c12afebc7901237e1c993c38f08985e1df polkit-0.105.tar.gz
sha256 88170c9e711e8db305a12fdb8234fac5706c61969b94e084d0f117d8ec5d34b1 polkit-0.116.tar.gz
# Locally calculated
sha256 d2e2aa973e29c75e1b492e67ea7b7da9de2d501d49a934657971fd74f9a0b0a8 COPYING

View File

@ -4,20 +4,22 @@
#
################################################################################
POLKIT_VERSION = 0.105
POLKIT_VERSION = 0.116
POLKIT_SITE = http://www.freedesktop.org/software/polkit/releases
POLKIT_LICENSE = GPL-2.0
POLKIT_LICENSE_FILES = COPYING
POLKIT_INSTALL_STAGING = YES
POLKIT_DEPENDENCIES = libglib2 host-intltool expat
POLKIT_DEPENDENCIES = libglib2 host-intltool expat spidermonkey
# We could also support --with-authfw=pam
POLKIT_CONF_OPTS = \
--with-authfw=shadow \
--with-os-type=unknown \
--disable-man-pages \
--disable-examples
--disable-examples \
--disable-libelogind \
--disable-libsystemd-login
$(eval $(autotools-package))

View File

@ -275,7 +275,12 @@ config BR2_PACKAGE_SYSTEMD_NETWORKD
config BR2_PACKAGE_SYSTEMD_POLKIT
bool "enable polkit support"
depends on BR2_TOOLCHAIN_USES_GLIBC # polkit
depends on BR2_HOST_GCC_AT_LEAST_4_9 # polkit
depends on BR2_INSTALL_LIBSTDCPP # polkit
depends on BR2_PACKAGE_SPIDERMONKEY_ARCH_SUPPORTS # polkit
depends on BR2_TOOLCHAIN_GCC_AT_LEAST_4_9 # polkit
depends on BR2_TOOLCHAIN_HAS_THREADS_NPTL # polkit
depends on BR2_USE_WCHAR # libglib2
select BR2_PACKAGE_POLKIT
help
If enabled, systemd is built with polkit support and policy
@ -285,8 +290,13 @@ config BR2_PACKAGE_SYSTEMD_POLKIT
http://wiki.freedesktop.org/www/Software/polkit/
comment "polkit support needs a glibc toolchain"
depends on !BR2_TOOLCHAIN_USES_GLIBC
comment "polkit support needs a toolchain with C++, wchar, NPTL, gcc >= 4.9"
depends on BR2_PACKAGE_SPIDERMONKEY_ARCH_SUPPORTS
depends on !BR2_INSTALL_LIBSTDCPP || \
!BR2_TOOLCHAIN_HAS_THREADS_NPTL || \
!BR2_HOST_GCC_AT_LEAST_4_9 || \
!BR2_TOOLCHAIN_GCC_AT_LEAST_4_9 || \
!BR2_USE_WCHAR
config BR2_PACKAGE_SYSTEMD_QUOTACHECK
bool "enable quotacheck tools"

View File

@ -1,11 +1,15 @@
config BR2_PACKAGE_UDISKS
bool "udisks"
depends on BR2_HOST_GCC_AT_LEAST_4_9 # spidermonkey
depends on BR2_INSTALL_LIBSTDCPP # spidermonkey
depends on BR2_PACKAGE_HAS_UDEV
depends on BR2_TOOLCHAIN_HAS_THREADS # dbus-glib -> glib2
depends on BR2_TOOLCHAIN_USES_GLIBC # polkit, lvm2
depends on BR2_PACKAGE_SPIDERMONKEY_ARCH_SUPPORTS # spidermonkey
depends on BR2_TOOLCHAIN_GCC_AT_LEAST_4_9 # spidermonkey
depends on BR2_TOOLCHAIN_HAS_THREADS_NPTL # polkit
depends on BR2_USE_MMU # lvm2
depends on !BR2_STATIC_LIBS # lvm2
depends on BR2_USE_WCHAR # dbus-glib -> glib2
depends on !BR2_TOOLCHAIN_USES_UCLIBC # polkit, lvm2
depends on !BR2_STATIC_LIBS # lvm2, spidermonkey
select BR2_PACKAGE_DBUS
select BR2_PACKAGE_DBUS_GLIB
select BR2_PACKAGE_SG3_UTILS
@ -30,17 +34,28 @@ if BR2_PACKAGE_UDISKS
config BR2_PACKAGE_UDISKS_LVM2
bool "lvm2 support"
# The lvm app library can't compile against musl
depends on BR2_TOOLCHAIN_USES_GLIBC
select BR2_PACKAGE_LVM2_APP_LIBRARY
help
Enable LVM2 support
comment "lvm2 support needs a glibc toolchain"
depends on !BR2_TOOLCHAIN_USES_GLIBC
endif
comment "udisks needs udev /dev management"
depends on BR2_USE_MMU
depends on !BR2_PACKAGE_HAS_UDEV
comment "udisks needs a glibc toolchain w/ wchar, threads, dynamic library"
comment "udisks needs a glibc or musl toolchain with C++, wchar, dynamic library, NPTL, gcc >= 4.9"
depends on BR2_USE_MMU
depends on !BR2_USE_WCHAR || !BR2_TOOLCHAIN_HAS_THREADS || \
BR2_STATIC_LIBS || !BR2_TOOLCHAIN_USES_GLIBC
depends on BR2_PACKAGE_SPIDERMONKEY_ARCH_SUPPORTS
depends on BR2_TOOLCHAIN_USES_UCLIBC || \
!BR2_INSTALL_LIBSTDCPP || \
BR2_STATIC_LIBS || \
!BR2_TOOLCHAIN_HAS_THREADS_NPTL || \
!BR2_HOST_GCC_AT_LEAST_4_9 || \
!BR2_TOOLCHAIN_GCC_AT_LEAST_4_9 || \
!BR2_USE_WCHAR