summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMike Frysinger <vapier@gentoo.org>2007-03-25 07:25:44 +0000
committerMike Frysinger <vapier@gentoo.org>2007-03-25 07:25:44 +0000
commit6c81a593597a3d1a47f95540309b10f95899639c (patch)
tree500a0432a92c2ed6c492c34e19c4885b4a559bf9 /net-libs/libnfsidmap
parentadd patch from Paul Bredbury to add language support (bug #171336) (diff)
downloadgentoo-2-6c81a593597a3d1a47f95540309b10f95899639c.tar.gz
gentoo-2-6c81a593597a3d1a47f95540309b10f95899639c.tar.bz2
gentoo-2-6c81a593597a3d1a47f95540309b10f95899639c.zip
Provide getgrouplist() when need be #169909 by Natanael Copa.
(Portage version: 2.1.2.2)
Diffstat (limited to 'net-libs/libnfsidmap')
-rw-r--r--net-libs/libnfsidmap/ChangeLog6
-rw-r--r--net-libs/libnfsidmap/files/libnfsidmap-0.19-getgrouplist.patch112
-rw-r--r--net-libs/libnfsidmap/libnfsidmap-0.19.ebuild11
3 files changed, 127 insertions, 2 deletions
diff --git a/net-libs/libnfsidmap/ChangeLog b/net-libs/libnfsidmap/ChangeLog
index 52b22f61ee58..6a06561dd124 100644
--- a/net-libs/libnfsidmap/ChangeLog
+++ b/net-libs/libnfsidmap/ChangeLog
@@ -1,6 +1,10 @@
# ChangeLog for net-libs/libnfsidmap
# Copyright 1999-2007 Gentoo Foundation; Distributed under the GPL v2
-# $Header: /var/cvsroot/gentoo-x86/net-libs/libnfsidmap/ChangeLog,v 1.11 2007/01/31 20:46:49 dertobi123 Exp $
+# $Header: /var/cvsroot/gentoo-x86/net-libs/libnfsidmap/ChangeLog,v 1.12 2007/03/25 07:25:44 vapier Exp $
+
+ 25 Mar 2007; Mike Frysinger <vapier@gentoo.org>
+ +files/libnfsidmap-0.19-getgrouplist.patch, libnfsidmap-0.19.ebuild:
+ Provide getgrouplist() when need be #169909 by Natanael Copa.
31 Jan 2007; Tobias Scherbaum <dertobi123@gentoo.org>
libnfsidmap-0.17.ebuild:
diff --git a/net-libs/libnfsidmap/files/libnfsidmap-0.19-getgrouplist.patch b/net-libs/libnfsidmap/files/libnfsidmap-0.19-getgrouplist.patch
new file mode 100644
index 000000000000..c8cfeb9fd14b
--- /dev/null
+++ b/net-libs/libnfsidmap/files/libnfsidmap-0.19-getgrouplist.patch
@@ -0,0 +1,112 @@
+http://bugs.gentoo.org/169909
+
+--- libnfsidmap-0.19/configure.in
++++ libnfsidmap-0.19/configure.in
+@@ -38,7 +38,7 @@
+
+ # Checks for library functions.
+ AC_FUNC_MALLOC
+-AC_CHECK_FUNCS([strchr strdup])
++AC_CHECK_FUNCS([strchr strdup getgrouplist])
+
+ AC_CONFIG_FILES([Makefile])
+ AC_OUTPUT(libnfsidmap.pc)
+--- libnfsidmap-0.19/nss.c
++++ libnfsidmap-0.19/nss.c
+@@ -49,6 +49,8 @@
+ #include "cfg.h"
+ #include <syslog.h>
+
++#include "getgrouplist.c"
++
+ /*
+ * NSS Translation Methods
+ *
+--- libnfsidmap-0.19/getgrouplist.c
++++ libnfsidmap-0.19/getgrouplist.c
+@@ -0,0 +1,85 @@
++/*
++ * getgrouplist.c
++ *
++ * if system does not provide the non-standard getgrouplist, we will emulate
++ * it via POSIX standard functions
++ *
++ * Copyright (c) 1991, 1993
++ * The Regents of the University of California. All rights reserved.
++ *
++ * Redistribution and use in source and binary forms, with or without
++ * modification, are permitted provided that the following conditions
++ * are met:
++ * 1. Redistributions of source code must retain the above copyright
++ * notice, this list of conditions and the following disclaimer.
++ * 2. Redistributions in binary form must reproduce the above copyright
++ * notice, this list of conditions and the following disclaimer in the
++ * documentation and/or other materials provided with the distribution.
++ * 4. Neither the name of the University nor the names of its contributors
++ * may be used to endorse or promote products derived from this software
++ * without specific prior written permission.
++ *
++ * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
++ * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
++ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
++ * ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
++ * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
++ * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
++ * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
++ * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
++ * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
++ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
++ * SUCH DAMAGE.
++ */
++
++#include <sys/types.h>
++#include <grp.h>
++#include <string.h>
++#include <unistd.h>
++
++#ifndef HAVE_GETGROUPLIST
++static
++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;
++ /*
++ * When installing primary group, duplicate it;
++ * the first element of groups is the effective gid
++ * and will be overwritten when a setgid file is executed.
++ */
++ groups[ngroups++] = agroup;
++ if (maxgroups > 1)
++ groups[ngroups++] = agroup;
++ /*
++ * Scan the group file to find additional groups.
++ */
++ setgrent();
++ while ((grp = getgrent()) != NULL) {
++ 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[ngroups++] = grp->gr_gid;
++ break;
++ }
++ }
++skip:
++ ;
++ }
++ endgrent();
++ *grpcnt = ngroups;
++ return (ret);
++}
++#endif
diff --git a/net-libs/libnfsidmap/libnfsidmap-0.19.ebuild b/net-libs/libnfsidmap/libnfsidmap-0.19.ebuild
index 9b405e26b542..7933890eaceb 100644
--- a/net-libs/libnfsidmap/libnfsidmap-0.19.ebuild
+++ b/net-libs/libnfsidmap/libnfsidmap-0.19.ebuild
@@ -1,6 +1,8 @@
# Copyright 1999-2007 Gentoo Foundation
# Distributed under the terms of the GNU General Public License v2
-# $Header: /var/cvsroot/gentoo-x86/net-libs/libnfsidmap/libnfsidmap-0.19.ebuild,v 1.1 2007/01/21 00:13:40 vapier Exp $
+# $Header: /var/cvsroot/gentoo-x86/net-libs/libnfsidmap/libnfsidmap-0.19.ebuild,v 1.2 2007/03/25 07:25:44 vapier Exp $
+
+inherit autotools
DESCRIPTION="NFSv4 ID <-> name mapping library"
HOMEPAGE="http://www.citi.umich.edu/projects/nfsv4/linux/"
@@ -15,6 +17,13 @@ DEPEND="ldap? ( net-nds/openldap )"
RDEPEND="${DEPEND}
!net-fs/idmapd"
+src_unpack() {
+ unpack ${A}
+ cd "${S}"
+ epatch "${FILESDIR}"/${P}-getgrouplist.patch #169909
+ eautoreconf
+}
+
src_compile() {
econf $(use_enable ldap) || die
emake || die