diff options
author | Mike Frysinger <vapier@gentoo.org> | 2007-03-25 07:25:44 +0000 |
---|---|---|
committer | Mike Frysinger <vapier@gentoo.org> | 2007-03-25 07:25:44 +0000 |
commit | 6c81a593597a3d1a47f95540309b10f95899639c (patch) | |
tree | 500a0432a92c2ed6c492c34e19c4885b4a559bf9 /net-libs/libnfsidmap | |
parent | add patch from Paul Bredbury to add language support (bug #171336) (diff) | |
download | gentoo-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/ChangeLog | 6 | ||||
-rw-r--r-- | net-libs/libnfsidmap/files/libnfsidmap-0.19-getgrouplist.patch | 112 | ||||
-rw-r--r-- | net-libs/libnfsidmap/libnfsidmap-0.19.ebuild | 11 |
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 |