commit:     7ca67b391cdbbcb243af5c0b046bedeef40cbdca
Author:     Jory A. Pratt <anarchy <AT> gentoo <DOT> org>
AuthorDate: Sun Jan  3 16:47:41 2016 +0000
Commit:     Jory Pratt <anarchy <AT> gentoo <DOT> org>
CommitDate: Sun Jan  3 16:47:41 2016 +0000
URL:        https://gitweb.gentoo.org/proj/musl.git/commit/?id=7ca67b39

sys-auth/polkit - update netgroup support patch for ~arch

 ...lkit-0.113-make-netgroup-support-optional.patch | 130 +++++++++++++++++++++
 sys-auth/polkit/polkit-0.113.ebuild                | 117 +++++++++++++++++++
 2 files changed, 247 insertions(+)

diff --git 
a/sys-auth/polkit/files/polkit-0.113-make-netgroup-support-optional.patch 
b/sys-auth/polkit/files/polkit-0.113-make-netgroup-support-optional.patch
new file mode 100644
index 0000000..232cc31
--- /dev/null
+++ b/sys-auth/polkit/files/polkit-0.113-make-netgroup-support-optional.patch
@@ -0,0 +1,130 @@
+--- polkit-0.113/configure.ac
++++ polkit-0.113-optional-netgroup/configure.ac
+@@ -158,7 +158,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 getnetgrent)
+ 
+ if test "x$GCC" = "xyes"; then
+   LDFLAGS="-Wl,--as-needed $LDFLAGS"
+--- polkit-0.113/src/polkitbackend/init.js
++++ polkit-0.113-optional-netgroup/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() {
+--- polkit-0.113/src/polkitbackend/polkitbackendinteractiveauthority.c
++++ 
polkit-0.113-optional-netgroup/src/polkitbackend/polkitbackendinteractiveauthority.c
+@@ -2214,6 +2214,7 @@ get_users_in_group (PolkitIdentity
+   return ret;
+ }
+ 
++#ifdef HAVE_GETNETGRENT
+ static GList *
+ get_users_in_net_group (PolkitIdentity                    *group,
+                         gboolean                           include_root)
+@@ -2269,6 +2270,7 @@ get_users_in_net_group (PolkitIdentity
+   endnetgrent ();
+   return ret;
+ }
++#endif
+ 
+ /* 
----------------------------------------------------------------------------------------------------
 */
+ 
+@@ -2355,10 +2357,12 @@ authentication_agent_initiate_challenge
+         {
+           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");
+--- polkit-0.113/src/polkitbackend/polkitbackendjsauthority.c
++++ polkit-0.113-optional-netgroup/src/polkitbackend/polkitbackendjsauthority.c
+@@ -189,13 +189,16 @@ static JSClass js_polkit_class = {
+ 
+ static JSBool js_polkit_log (JSContext *cx, unsigned argc, jsval *vp);
+ static JSBool js_polkit_spawn (JSContext *cx, unsigned argc, jsval *vp);
++#ifdef HAVE_GETNETGRENT
+ static JSBool js_polkit_user_is_in_netgroup (JSContext *cx, unsigned argc, 
jsval *vp);
+-
++#endif
+ static JSFunctionSpec js_polkit_functions[] =
+ {
+   JS_FS("log",            js_polkit_log,            0, 0),
+   JS_FS("spawn",          js_polkit_spawn,          0, 0),
++#ifdef HAVE_GETNETGRENT
+   JS_FS("_userIsInNetGroup", js_polkit_user_is_in_netgroup,          0, 0),
++#endif
+   JS_FS_END
+ };
+ 
+@@ -1498,7 +1501,7 @@ js_polkit_spawn (JSContext  *cx,
+ 
+ /* 
----------------------------------------------------------------------------------------------------
 */
+ 
+-
++#ifdef HAVE_GETNETGRENT
+ static JSBool
+ js_polkit_user_is_in_netgroup (JSContext  *cx,
+                                unsigned    argc,
+@@ -1535,7 +1538,7 @@ js_polkit_user_is_in_netgroup (JSContext
+  out:
+   return ret;
+ }
+-
++#endif
+ 
+ 
+ /* 
----------------------------------------------------------------------------------------------------
 */
+--- polkit-0.113/test/polkitbackend/test-polkitbackendjsauthority.c
++++ 
polkit-0.113-optional-netgroup/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;
+ 
+@@ -258,7 +260,7 @@ static const RulesTestCase rules_test_ca
+     NULL,
+     POLKIT_IMPLICIT_AUTHORIZATION_NOT_AUTHORIZED,
+   },
+-
++#if HAVE_GETNETGRENT
+   /* check netgroup membership */
+   {
+     /* john is a member of netgroup 'foo', see test/etc/netgroup */
+@@ -276,7 +278,7 @@ static const RulesTestCase rules_test_ca
+     NULL,
+     POLKIT_IMPLICIT_AUTHORIZATION_NOT_AUTHORIZED,
+   },
+-
++#endif
+   /* spawning */
+   {
+     "spawning_non_existing_helper",
+

diff --git a/sys-auth/polkit/polkit-0.113.ebuild 
b/sys-auth/polkit/polkit-0.113.ebuild
new file mode 100644
index 0000000..f43fe61
--- /dev/null
+++ b/sys-auth/polkit/polkit-0.113.ebuild
@@ -0,0 +1,117 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+inherit eutils multilib pam pax-utils systemd user
+
+DESCRIPTION="Policy framework for controlling privileges for system-wide 
services"
+HOMEPAGE="http://www.freedesktop.org/wiki/Software/polkit";
+SRC_URI="http://www.freedesktop.org/software/${PN}/releases/${P}.tar.gz";
+
+LICENSE="LGPL-2"
+SLOT="0"
+KEYWORDS="alpha amd64 arm hppa ia64 ~mips ppc ppc64 ~s390 ~sh sparc x86"
+IUSE="examples gtk +introspection jit kde nls pam selinux systemd test"
+
+CDEPEND="
+       dev-lang/spidermonkey:0/mozjs185[-debug]
+       >=dev-libs/glib-2.32:2
+       >=dev-libs/expat-2:=
+       introspection? ( >=dev-libs/gobject-introspection-1:= )
+       pam? (
+               sys-auth/pambase
+               virtual/pam
+               )
+       systemd? ( sys-apps/systemd:0= )
+"
+DEPEND="${CDEPEND}
+       app-text/docbook-xml-dtd:4.1.2
+       app-text/docbook-xsl-stylesheets
+       dev-libs/libxslt
+       dev-util/gtk-doc-am
+       dev-util/intltool
+       virtual/pkgconfig
+"
+RDEPEND="${CDEPEND}
+       selinux? ( sec-policy/selinux-policykit )
+"
+PDEPEND="
+       gtk? ( || (
+               >=gnome-extra/polkit-gnome-0.105
+               lxde-base/lxpolkit
+               ) )
+       kde? ( || (
+               kde-plasma/polkit-kde-agent
+               sys-auth/polkit-kde-agent
+               ) )
+       !systemd? ( sys-auth/consolekit[policykit] )
+"
+
+QA_MULTILIB_PATHS="
+       usr/lib/polkit-1/polkit-agent-helper-1
+       usr/lib/polkit-1/polkitd"
+
+pkg_setup() {
+       local u=polkitd
+       local g=polkitd
+       local h=/var/lib/polkit-1
+
+       enewgroup ${g}
+       enewuser ${u} -1 -1 ${h} ${g}
+       esethome ${u} ${h}
+}
+
+src_prepare() {
+       epatch "${FILESDIR}"/${PN}-0.113-make-netgroup-support-optional.patch
+
+       sed -i -e 's|unix-group:wheel|unix-user:0|' 
src/polkitbackend/*-default.rules || die #401513
+}
+
+src_configure() {
+       econf \
+               --localstatedir="${EPREFIX}"/var \
+               --disable-static \
+               --enable-man-pages \
+               --disable-gtk-doc \
+               $(use_enable systemd libsystemd-login) \
+               $(use_enable introspection) \
+               --disable-examples \
+               $(use_enable nls) \
+               --with-mozjs=mozjs185 \
+               "$(systemd_with_unitdir)" \
+               --with-authfw=$(usex pam pam shadow) \
+               $(use pam && echo --with-pam-module-dir="$(getpam_mod_dir)") \
+               $(use_enable test) \
+               --with-os-type=gentoo
+}
+
+src_compile() {
+       default
+
+       # Required for polkitd on hardened/PaX due to spidermonkey's JIT
+       pax-mark mr src/polkitbackend/.libs/polkitd 
test/polkitbackend/.libs/polkitbackendjsauthoritytest
+}
+
+src_install() {
+       emake DESTDIR="${D}" install
+
+       dodoc docs/TODO HACKING NEWS README
+
+       fowners -R polkitd:root /{etc,usr/share}/polkit-1/rules.d
+
+       diropts -m0700 -o polkitd -g polkitd
+       keepdir /var/lib/polkit-1
+
+       if use examples; then
+               insinto /usr/share/doc/${PF}/examples
+               doins src/examples/{*.c,*.policy*}
+       fi
+
+       prune_libtool_files
+}
+
+pkg_postinst() {
+       chown -R polkitd:root "${EROOT}"/{etc,usr/share}/polkit-1/rules.d
+       chown -R polkitd:polkitd "${EROOT}"/var/lib/polkit-1
+}

Reply via email to