pkgsrc-Changes-HG archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

[pkgsrc/trunk]: pkgsrc/security/polkit polkit: Fix build on SunOS.



details:   https://anonhg.NetBSD.org/pkgsrc/rev/b6bbc2386746
branches:  trunk
changeset: 380250:b6bbc2386746
user:      jperkin <jperkin%pkgsrc.org@localhost>
date:      Mon May 14 09:30:35 2018 +0000

description:
polkit: Fix build on SunOS.

diffstat:

 security/polkit/distinfo                                                     |   4 +-
 security/polkit/patches/patch-src_polkit_polkitunixprocess.c                 |  18 +++
 security/polkit/patches/patch-src_polkitbackend_polkitbackendjsauthority.cpp |  54 ++++++++++
 3 files changed, 75 insertions(+), 1 deletions(-)

diffs (97 lines):

diff -r 3343b7d012ff -r b6bbc2386746 security/polkit/distinfo
--- a/security/polkit/distinfo  Mon May 14 09:13:26 2018 +0000
+++ b/security/polkit/distinfo  Mon May 14 09:30:35 2018 +0000
@@ -1,10 +1,12 @@
-$NetBSD: distinfo,v 1.5 2018/04/29 05:14:36 wiz Exp $
+$NetBSD: distinfo,v 1.6 2018/05/14 09:30:35 jperkin Exp $
 
 SHA1 (polkit-0.114.tar.gz) = f29deef0076e76588f209a028a3e33ef70c2d9cd
 RMD160 (polkit-0.114.tar.gz) = 000749a5f902b9be347f462d486bed20f8bbe8d5
 SHA512 (polkit-0.114.tar.gz) = 49cdf9dd3663714b1c6569ad8740cb413d9c5bd5c11e4bdbba3ce82b744f36638b652547edff9203caab9287834bc68a1d6a4895ec7a188fa1524dc1e9c9b4ea
 Size (polkit-0.114.tar.gz) = 1557340 bytes
+SHA1 (patch-src_polkit_polkitunixprocess.c) = 8a709f90dca2143765e4a3388dc736bc72292add
 SHA1 (patch-src_polkitbackend_polkitbackendinteractiveauthority.c) = dd91b4e74e6c39f24e0f5a9b3150fdac12899cb5
+SHA1 (patch-src_polkitbackend_polkitbackendjsauthority.cpp) = 43e8ec118601e978435d66ba805c35bc3db24b17
 SHA1 (patch-src_polkitbackend_polkitd.c) = b8e11b40e2b171d4f030eb4c4cbc6fdc7a96b2c2
 SHA1 (patch-src_programs_pkexec.c) = bfc0414c7a943c8e8b8412566a2519198eab8abd
 SHA1 (patch-src_programs_pkttyagent.c) = 4dbffd02c7e66910d4104a75d6f5f437bd51acc9
diff -r 3343b7d012ff -r b6bbc2386746 security/polkit/patches/patch-src_polkit_polkitunixprocess.c
--- /dev/null   Thu Jan 01 00:00:00 1970 +0000
+++ b/security/polkit/patches/patch-src_polkit_polkitunixprocess.c      Mon May 14 09:30:35 2018 +0000
@@ -0,0 +1,18 @@
+$NetBSD: patch-src_polkit_polkitunixprocess.c,v 1.4 2018/05/14 09:30:35 jperkin Exp $
+
+Fix SunOS includes.
+
+--- src/polkit/polkitunixprocess.c.orig        2018-03-23 15:09:30.000000000 +0000
++++ src/polkit/polkitunixprocess.c
+@@ -24,6 +24,11 @@
+ #endif
+ 
+ #include <sys/types.h>
++#ifdef HAVE_SOLARIS
++#include <sys/stat.h>
++#include <fcntl.h>
++#include <procfs.h>
++#endif
+ #ifdef HAVE_FREEBSD
+ #include <sys/param.h>
+ #include <sys/sysctl.h>
diff -r 3343b7d012ff -r b6bbc2386746 security/polkit/patches/patch-src_polkitbackend_polkitbackendjsauthority.cpp
--- /dev/null   Thu Jan 01 00:00:00 1970 +0000
+++ b/security/polkit/patches/patch-src_polkitbackend_polkitbackendjsauthority.cpp      Mon May 14 09:30:35 2018 +0000
@@ -0,0 +1,54 @@
+$NetBSD: patch-src_polkitbackend_polkitbackendjsauthority.cpp,v 1.1 2018/05/14 09:30:35 jperkin Exp $
+
+Provide getgrouplist for SunOS.  This is available in newer Solaris,
+so if that becomes a problem we'll need to add a configure test.
+
+--- src/polkitbackend/polkitbackendjsauthority.cpp.orig        2018-04-03 18:16:49.000000000 +0000
++++ src/polkitbackend/polkitbackendjsauthority.cpp
+@@ -55,6 +55,46 @@
+ #error "This code is not safe in SpiderMonkey exact stack rooting configurations"
+ #endif
+ 
++#ifdef __sun
++int
++getgrouplist(const char *uname, gid_t agroup, gid_t *groups, int *grpcnt)
++{
++      const struct group *grp;
++      int i, maxgroups, ngroups, ret;
++
++      ret = 0;
++      ngroups = 0;
++      maxgroups = *grpcnt;
++      groups ? groups[ngroups++] = agroup : ngroups++;
++      if (maxgroups > 1)
++              groups ? groups[ngroups++] = agroup : ngroups++;
++      setgrent();
++      while ((grp = getgrent()) != NULL) {
++              if (groups) {
++                      for (i = 0; i < ngroups; i++) {
++                              if (grp->gr_gid == groups[i])
++                                      goto skip;
++                      }
++              }
++              for (i = 0; grp->gr_mem[i]; i++) {
++                      if (!strcmp(grp->gr_mem[i], uname)) {
++                              if (ngroups >= maxgroups) {
++                                      ret = -1;
++                                      break;
++                              }
++                              groups ? groups[ngroups++] = grp->gr_gid : ngroups++;
++                              break;
++                      }
++              }
++skip:
++              ;
++      }
++      endgrent();
++      *grpcnt = ngroups;
++      return (ret);
++}
++#endif
++
+ /**
+  * SECTION:polkitbackendjsauthority
+  * @title: PolkitBackendJsAuthority



Home | Main Index | Thread Index | Old Index