From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from lists.gentoo.org (pigeon.gentoo.org [208.92.234.80]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by finch.gentoo.org (Postfix) with ESMTPS id EDC05138334 for ; Tue, 21 May 2019 01:34:11 +0000 (UTC) Received: from pigeon.gentoo.org (localhost [127.0.0.1]) by pigeon.gentoo.org (Postfix) with SMTP id B6A7BE086F; Tue, 21 May 2019 01:34:10 +0000 (UTC) Received: from smtp.gentoo.org (smtp.gentoo.org [140.211.166.183]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by pigeon.gentoo.org (Postfix) with ESMTPS id 6FC3AE086F for ; Tue, 21 May 2019 01:34:10 +0000 (UTC) Received: from oystercatcher.gentoo.org (unknown [IPv6:2a01:4f8:202:4333:225:90ff:fed9:fc84]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.gentoo.org (Postfix) with ESMTPS id 5BE96344CA7 for ; Tue, 21 May 2019 01:34:08 +0000 (UTC) Received: from localhost.localdomain (localhost [IPv6:::1]) by oystercatcher.gentoo.org (Postfix) with ESMTP id 4C3A45E0 for ; Tue, 21 May 2019 01:34:06 +0000 (UTC) From: "Jory Pratt" To: gentoo-commits@lists.gentoo.org Content-Transfer-Encoding: 8bit Content-type: text/plain; charset=UTF-8 Reply-To: gentoo-dev@lists.gentoo.org, "Jory Pratt" Message-ID: <1558402429.a5ed9500ce03494f963ef4b95aff3a0b2d583876.anarchy@gentoo> Subject: [gentoo-commits] proj/musl:master commit in: sys-auth/polkit/files/, sys-auth/polkit/ X-VCS-Repository: proj/musl X-VCS-Files: sys-auth/polkit/files/polkit-0.116-make-netgroup-support-optional-1.patch sys-auth/polkit/files/polkit-0.116-make-netgroup-support-optional.patch sys-auth/polkit/polkit-0.116-r1.ebuild sys-auth/polkit/polkit-0.116.ebuild X-VCS-Directories: sys-auth/polkit/ sys-auth/polkit/files/ X-VCS-Committer: anarchy X-VCS-Committer-Name: Jory Pratt X-VCS-Revision: a5ed9500ce03494f963ef4b95aff3a0b2d583876 X-VCS-Branch: master Date: Tue, 21 May 2019 01:34:06 +0000 (UTC) Precedence: bulk List-Post: List-Help: List-Unsubscribe: List-Subscribe: List-Id: Gentoo Linux mail X-BeenThere: gentoo-commits@lists.gentoo.org X-Auto-Response-Suppress: DR, RN, NRN, OOF, AutoReply X-Archives-Salt: 4cac5439-4dbc-4ea2-a449-699f29b270e3 X-Archives-Hash: c4dd76aed1d9c5e63a6c916a96e235fb commit: a5ed9500ce03494f963ef4b95aff3a0b2d583876 Author: Jory Pratt gentoo org> AuthorDate: Tue May 21 01:33:49 2019 +0000 Commit: Jory Pratt gentoo org> CommitDate: Tue May 21 01:33:49 2019 +0000 URL: https://gitweb.gentoo.org/proj/musl.git/commit/?id=a5ed9500 sys-auth/polkit: change netgroup support patch for 0.116 Package-Manager: Portage-2.3.66, Repoman-2.3.12 Signed-off-by: Jory Pratt gentoo.org> ...it-0.116-make-netgroup-support-optional-1.patch | 248 +++++++++++++++++++++ ...lkit-0.116-make-netgroup-support-optional.patch | 155 ------------- ...{polkit-0.116.ebuild => polkit-0.116-r1.ebuild} | 2 +- 3 files changed, 249 insertions(+), 156 deletions(-) diff --git a/sys-auth/polkit/files/polkit-0.116-make-netgroup-support-optional-1.patch b/sys-auth/polkit/files/polkit-0.116-make-netgroup-support-optional-1.patch new file mode 100644 index 0000000..84f07f9 --- /dev/null +++ b/sys-auth/polkit/files/polkit-0.116-make-netgroup-support-optional-1.patch @@ -0,0 +1,248 @@ +From 71e5409c931f8e69ef7e782d1c396c335a4c3f76 Mon Sep 17 00:00:00 2001 +From: A. Wilcox +Date: Mon, 20 May 2019 20:24:42 -0500 +Subject: [PATCH] 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. + +Closes polkit/polkit#14. +Signed-off-by: A. Wilcox +--- + 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(-) + +diff --git a/configure.ac b/configure.ac +index 5cedb4e..87aa0ad 100644 +--- a/configure.ac ++++ b/configure.ac +@@ -99,7 +99,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 setnetgrent) + + if test "x$GCC" = "xyes"; then + LDFLAGS="-Wl,--as-needed $LDFLAGS" +diff --git a/src/polkit/polkitidentity.c b/src/polkit/polkitidentity.c +index 3aa1f7f..10e9c17 100644 +--- a/src/polkit/polkitidentity.c ++++ b/src/polkit/polkitidentity.c +@@ -182,7 +182,15 @@ polkit_identity_from_string (const gchar *str, + } + 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 (GVariant *variant, + 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 (GVariant *variant, + name = g_variant_get_string (v, NULL); + ret = polkit_unix_netgroup_new (name); + g_variant_unref (v); ++#endif + } + else + { +diff --git a/src/polkit/polkitunixnetgroup.c b/src/polkit/polkitunixnetgroup.c +index 8a2b369..83f8d4a 100644 +--- a/src/polkit/polkitunixnetgroup.c ++++ b/src/polkit/polkitunixnetgroup.c +@@ -194,6 +194,9 @@ polkit_unix_netgroup_set_name (PolkitUnixNetgroup *group, + 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, +diff --git a/src/polkitbackend/polkitbackendinteractiveauthority.c b/src/polkitbackend/polkitbackendinteractiveauthority.c +index 056d9a8..36c2f3d 100644 +--- a/src/polkitbackend/polkitbackendinteractiveauthority.c ++++ b/src/polkitbackend/polkitbackendinteractiveauthority.c +@@ -2233,25 +2233,26 @@ get_users_in_net_group (PolkitIdentity *group, + 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 *group, + + out: + endnetgrent (); ++#endif /* HAVE_SETNETGRENT */ + return ret; + } + +diff --git a/src/polkitbackend/polkitbackendjsauthority.cpp b/src/polkitbackend/polkitbackendjsauthority.cpp +index 9b752d1..09b2878 100644 +--- a/src/polkitbackend/polkitbackendjsauthority.cpp ++++ b/src/polkitbackend/polkitbackendjsauthority.cpp +@@ -1502,6 +1502,7 @@ js_polkit_user_is_in_netgroup (JSContext *cx, + + 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 *cx, + + JS_free (cx, netgroup); + JS_free (cx, user); ++#endif + + ret = true; + +diff --git a/test/polkit/polkitidentitytest.c b/test/polkit/polkitidentitytest.c +index e91967b..e829aaa 100644 +--- a/test/polkit/polkitidentitytest.c ++++ b/test/polkit/polkitidentitytest.c +@@ -19,6 +19,7 @@ + * Author: Nikki VonHollen + */ + ++#include "config.h" + #include "glib.h" + #include + #include +@@ -145,11 +146,15 @@ struct ComparisonTestData comparison_test_data [] = { + {"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 (); + +diff --git a/test/polkit/polkitunixnetgrouptest.c b/test/polkit/polkitunixnetgrouptest.c +index 3701ba1..e3352eb 100644 +--- a/test/polkit/polkitunixnetgrouptest.c ++++ b/test/polkit/polkitunixnetgrouptest.c +@@ -19,6 +19,7 @@ + * Author: Nikki VonHollen + */ + ++#include "config.h" + #include "glib.h" + #include + #include +@@ -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 (); + } +diff --git a/test/polkitbackend/test-polkitbackendjsauthority.c b/test/polkitbackend/test-polkitbackendjsauthority.c +index 71aad23..fdd28f3 100644 +--- 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; + +-- +2.21.0 + diff --git a/sys-auth/polkit/files/polkit-0.116-make-netgroup-support-optional.patch b/sys-auth/polkit/files/polkit-0.116-make-netgroup-support-optional.patch deleted file mode 100644 index 0b4b698..0000000 --- a/sys-auth/polkit/files/polkit-0.116-make-netgroup-support-optional.patch +++ /dev/null @@ -1,155 +0,0 @@ -From 6a46ff1b969a7109c6f5f25ebabaa943bbd5bdaf Mon Sep 17 00:00:00 2001 -From: -Date: Sun, 28 Apr 2019 16:46:26 -0500 -Subject: [PATCH] make netgroup support optional - ---- - configure.ac | 2 +- - src/polkitbackend/init.js | 5 ++++- - src/polkitbackend/polkitbackendinteractiveauthority.c | 4 ++++ - src/polkitbackend/polkitbackendjsauthority.cpp | 8 ++++++-- - test/polkitbackend/test-polkitbackendjsauthority.c | 6 ++++-- - 5 files changed, 19 insertions(+), 6 deletions(-) - -diff --git a/configure.ac b/configure.ac -index 5cedb4e..88ce2a6 100644 ---- a/configure.ac -+++ b/configure.ac -@@ -99,7 +99,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) - - if test "x$GCC" = "xyes"; then - LDFLAGS="-Wl,--as-needed $LDFLAGS" -diff --git a/src/polkitbackend/init.js b/src/polkitbackend/init.js -index 79c80b6..2065cff 100644 ---- a/src/polkitbackend/init.js -+++ b/src/polkitbackend/init.js -@@ -29,7 +29,10 @@ function Subject() { - }; - - this.isInNetGroup = function(netGroup) { -- return polkit._userIsInNetGroup(this.user, netGroup); -+ if (polkit._userIsInNetGroup) -+ return polkit._userIsInNetGroup(this.user, netGroup); -+ else -+ return false; - }; - - this.toString = function() { -diff --git a/src/polkitbackend/polkitbackendinteractiveauthority.c b/src/polkitbackend/polkitbackendinteractiveauthority.c -index 056d9a8..559cd06 100644 ---- a/src/polkitbackend/polkitbackendinteractiveauthority.c -+++ b/src/polkitbackend/polkitbackendinteractiveauthority.c -@@ -2225,6 +2225,7 @@ get_users_in_group (PolkitIdentity *group, - return ret; - } - -+#ifdef HAVE_GETNETGRENT - static GList * - get_users_in_net_group (PolkitIdentity *group, - gboolean include_root) -@@ -2284,6 +2285,7 @@ get_users_in_net_group (PolkitIdentity *group, - endnetgrent (); - return ret; - } -+#endif - - /* ---------------------------------------------------------------------------------------------------- */ - -@@ -2369,10 +2371,12 @@ authentication_agent_initiate_challenge (AuthenticationAgent *agent, - { - user_identities = g_list_concat (user_identities, get_users_in_group (identity, FALSE)); - } -+#ifdef 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.cpp b/src/polkitbackend/polkitbackendjsauthority.cpp -index 9b752d1..dcff711 100644 ---- a/src/polkitbackend/polkitbackendjsauthority.cpp -+++ b/src/polkitbackend/polkitbackendjsauthority.cpp -@@ -192,13 +192,17 @@ static JSClass js_polkit_class = { - - static bool js_polkit_log (JSContext *cx, unsigned argc, JS::Value *vp); - static bool js_polkit_spawn (JSContext *cx, unsigned argc, JS::Value *vp); -+#ifdef HAVE_GETNETGRENT - static bool js_polkit_user_is_in_netgroup (JSContext *cx, unsigned argc, JS::Value *vp); -+#endif - - static JSFunctionSpec js_polkit_functions[] = - { - JS_FN("log", js_polkit_log, 0, 0), - JS_FN("spawn", js_polkit_spawn, 0, 0), -+#ifdef HAVE_GETNETGRENT - JS_FN("_userIsInNetGroup", js_polkit_user_is_in_netgroup, 0, 0), -+#endif - JS_FS_END - }; - -@@ -1488,7 +1492,7 @@ js_polkit_spawn (JSContext *cx, - - /* ---------------------------------------------------------------------------------------------------- */ - -- -+#ifdef HAVE_GETNETGRENT - static bool - js_polkit_user_is_in_netgroup (JSContext *cx, - unsigned argc, -@@ -1526,7 +1530,7 @@ js_polkit_user_is_in_netgroup (JSContext *cx, - - return ret; - } -- -+#endif - - - /* ---------------------------------------------------------------------------------------------------- */ -diff --git a/test/polkitbackend/test-polkitbackendjsauthority.c b/test/polkitbackend/test-polkitbackendjsauthority.c -index 71aad23..2b2a5d4 100644 ---- 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_GETNETGRENT - { - "net.company.action3", - { - "unix-netgroup:foo" - } - }, -+#endif - }; - guint n; - -@@ -266,7 +268,7 @@ static const RulesTestCase rules_test_cases[] = { - NULL, - POLKIT_IMPLICIT_AUTHORIZATION_NOT_AUTHORIZED, - }, -- -+#if HAVE_GETNETGRENT - /* check netgroup membership */ - { - /* john is a member of netgroup 'foo', see test/etc/netgroup */ -@@ -284,7 +286,7 @@ static const RulesTestCase rules_test_cases[] = { - NULL, - POLKIT_IMPLICIT_AUTHORIZATION_NOT_AUTHORIZED, - }, -- -+#endif - /* spawning */ - { - "spawning_non_existing_helper", --- -2.21.0 - diff --git a/sys-auth/polkit/polkit-0.116.ebuild b/sys-auth/polkit/polkit-0.116-r1.ebuild similarity index 98% rename from sys-auth/polkit/polkit-0.116.ebuild rename to sys-auth/polkit/polkit-0.116-r1.ebuild index df86906..4ccfa37 100644 --- a/sys-auth/polkit/polkit-0.116.ebuild +++ b/sys-auth/polkit/polkit-0.116-r1.ebuild @@ -57,7 +57,7 @@ PATCHES=( # bug 660880 "${FILESDIR}"/polkit-0.115-elogind.patch - "${FILESDIR}"/polkit-0.116-make-netgroup-support-optional.patch + "${FILESDIR}"/polkit-0.116-make-netgroup-support-optional-1.patch ) QA_MULTILIB_PATHS="