commit:     ad858cef5d3bd1903ab5fe60a77bd11786ed8da7
Author:     Dagg <daggs <AT> gmx <DOT> com>
AuthorDate: Sat Jan 10 14:37:00 2015 +0000
Commit:     Anthony G. Basile <blueness <AT> gentoo <DOT> org>
CommitDate: Sat Jan 31 21:50:25 2015 +0000
URL:        
http://sources.gentoo.org/gitweb/?p=proj/hardened-dev.git;a=commit;h=ad858cef

net-libs/libnfsidmap: include <sys/types.h>

---
 .../files/0001-add_missing_header_musl.patch       |  12 +++
 .../files/libnfsidmap-0.19-getgrouplist.patch      | 115 +++++++++++++++++++++
 .../files/libnfsidmap-0.21-headers.patch           |  22 ++++
 net-libs/libnfsidmap/libnfsidmap-0.24-r99.ebuild   |  48 +++++++++
 net-libs/libnfsidmap/metadata.xml                  |   5 +
 5 files changed, 202 insertions(+)

diff --git a/net-libs/libnfsidmap/files/0001-add_missing_header_musl.patch 
b/net-libs/libnfsidmap/files/0001-add_missing_header_musl.patch
new file mode 100644
index 0000000..c94748e
--- /dev/null
+++ b/net-libs/libnfsidmap/files/0001-add_missing_header_musl.patch
@@ -0,0 +1,12 @@
+--- cfg.h      2015-01-10 14:25:50.384148769 +0000
++++ cfg.h      2015-01-10 14:28:23.062148769 +0000
+@@ -33,6 +33,9 @@
+ #ifndef _CONF_H_
+ #define _CONF_H_
+ 
++#if ! defined(__GLIBC__) || ! defined(__UCLIBC__)
++#include <sys/types.h>
++#endif
+ #include "queue.h"
+ 
+ struct conf_list_node {

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 0000000..0d5d367
--- /dev/null
+++ b/net-libs/libnfsidmap/files/libnfsidmap-0.19-getgrouplist.patch
@@ -0,0 +1,115 @@
+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,88 @@
++/*
++ *  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.
++ */
++
++#ifdef HAVE_CONFIG_H
++#include "config.h"
++#endif
++#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/files/libnfsidmap-0.21-headers.patch 
b/net-libs/libnfsidmap/files/libnfsidmap-0.21-headers.patch
new file mode 100644
index 0000000..6ef12d4
--- /dev/null
+++ b/net-libs/libnfsidmap/files/libnfsidmap-0.21-headers.patch
@@ -0,0 +1,22 @@
+for toupper and such
+
+--- a/nss.c
++++ b/nss.c
+@@ -34,6 +34,7 @@
+  *  SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+  */
+ 
++#include <ctype.h>
+ #include <sys/types.h>
+ #include <errno.h>
+ #include <unistd.h>
+--- a/libnfsidmap.c
++++ b/libnfsidmap.c
+@@ -37,6 +37,7 @@
+  *  SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+  */
+ 
++#include <ctype.h>
+ #include <sys/types.h>
+ #include <errno.h>
+ #include <unistd.h>

diff --git a/net-libs/libnfsidmap/libnfsidmap-0.24-r99.ebuild 
b/net-libs/libnfsidmap/libnfsidmap-0.24-r99.ebuild
new file mode 100644
index 0000000..4cab199
--- /dev/null
+++ b/net-libs/libnfsidmap/libnfsidmap-0.24-r99.ebuild
@@ -0,0 +1,48 @@
+# Copyright 1999-2014 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Header: 
/var/cvsroot/gentoo-x86/net-libs/libnfsidmap/libnfsidmap-0.24.ebuild,v 1.8 
2014/01/18 04:50:16 vapier Exp $
+
+EAPI="2"
+
+inherit autotools eutils
+
+DESCRIPTION="NFSv4 ID <-> name mapping library"
+HOMEPAGE="http://www.citi.umich.edu/projects/nfsv4/linux/";
+SRC_URI="http://www.citi.umich.edu/projects/nfsv4/linux/libnfsidmap/${P}.tar.gz";
+
+LICENSE="BSD"
+SLOT="0"
+KEYWORDS="~amd64 ~arm ~mips ~ppc ~x86"
+IUSE="ldap static-libs"
+
+DEPEND="ldap? ( net-nds/openldap )"
+RDEPEND="${DEPEND}
+       !<net-fs/nfs-utils-1.2.2
+       !net-fs/idmapd"
+
+src_prepare() {
+       epatch "${FILESDIR}"/${PN}-0.19-getgrouplist.patch #169909
+       epatch "${FILESDIR}"/${PN}-0.21-headers.patch
+       epatch "${FILESDIR}"/0001-add_missing_header_musl.patch
+       epatch_user
+       eautoreconf
+}
+
+src_configure() {
+       econf \
+               --disable-dependency-tracking \
+               $(use_enable static-libs static) \
+               $(use_enable ldap)
+}
+
+src_install() {
+       emake install DESTDIR="${D}" || die
+       dodoc AUTHORS ChangeLog NEWS README
+
+       insinto /etc
+       doins idmapd.conf || die
+
+       # remove useless files
+       rm -f "${D}"/usr/lib*/libnfsidmap/*.{a,la}
+       use static-libs || rm -f "${D}"/usr/lib*/*.la
+}

diff --git a/net-libs/libnfsidmap/metadata.xml 
b/net-libs/libnfsidmap/metadata.xml
new file mode 100644
index 0000000..ca66751
--- /dev/null
+++ b/net-libs/libnfsidmap/metadata.xml
@@ -0,0 +1,5 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd";>
+<pkgmetadata>
+<herd>net-fs</herd>
+</pkgmetadata>

Reply via email to