net-libs/libnfsidmap: Bump to version 0.27

Package-Manager: Portage-2.3.24, Repoman-2.3.6
This commit is contained in:
Lars Wendler
2018-03-21 09:15:28 +01:00
parent dedfc58e59
commit 43f2e7c459
3 changed files with 173 additions and 0 deletions

View File

@@ -1,2 +1,3 @@
DIST libnfsidmap-0.24.tar.gz 328720 BLAKE2B 4b33a589b9d4b47530d2044a0912481dfda770de86f7aa90e80771f2df4b555857535a7f162a485b68c9b1d48be563d246e128fa3ca1e3c79d9bf0af69b8401d SHA512 1283a4af1bcf3c6f941ab294acc0b2b4bd9ca947f2d3c2e866717478ba2e7a2190a5467b71d7e9136c5c83de564c4892f9e3304323ae17e3988af2e40c43982b
DIST libnfsidmap-0.25.tar.gz 346587 BLAKE2B dbf31779371ba29737ed7a5901cf46f17e4a1b2ac444c2959d3ae76f41815e9a15a2ee892e417c5b7f97cf5f8396024071430fed028a8cd583aeed1a95e350df SHA512 8acf30790cdd19341c75cb8a4f7ee4dbc9f688c8514258046e55c8f4245df213709ccb7d5327a11b146b0e3b7266d3d4da018699c6be47fbedcc4cd384b54557
DIST libnfsidmap-0.27.tar.bz2 303900 BLAKE2B c6cb8d81042426552fd3cde9dfd26f805d3c92281a65c3ca2d12671477eb697f3cd51a6d8313a658eb70232136e5615e0cb9ad090a92e747e245f49e60cfcf8a SHA512 0698079abb4bb9ebeaccbcabca725b022c1daaa3d287944d9c4c2a2134489b649b44fcbcd9916e91dd6d91cdc67d267adf5741c5404150c66cc8243b9f15970d

View File

@@ -0,0 +1,115 @@
http://bugs.gentoo.org/169909
--- libnfsidmap-0.27/configure.ac
+++ libnfsidmap-0.27/configure.ac
@@ -63,7 +63,7 @@
# Checks for library functions.
AC_FUNC_MALLOC
-AC_CHECK_FUNCS([strchr strdup])
+AC_CHECK_FUNCS([strchr strdup getgrouplist])
AC_CONFIG_FILES([Makefile])
AC_CONFIG_FILES([libnfsidmap.pc])
--- libnfsidmap-0.27/getgrouplist.c
+++ libnfsidmap-0.27/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
--- libnfsidmap-0.27/nss.c
+++ libnfsidmap-0.27/nss.c
@@ -51,6 +51,8 @@
#include "cfg.h"
#include <syslog.h>
+#include "getgrouplist.c"
+
/*
* NSS Translation Methods
*

View File

@@ -0,0 +1,57 @@
# Copyright 1999-2018 Gentoo Foundation
# Distributed under the terms of the GNU General Public License v2
EAPI=6
inherit autotools multilib
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"
SRC_URI="https://fedorapeople.org/~steved/${PN}/${PV}/${P}.tar.bz2"
LICENSE="BSD"
SLOT="0"
KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~m68k ~mips ~ppc ~ppc64 ~s390 ~sh ~sparc ~x86"
IUSE="ldap static-libs"
DEPEND="ldap? ( net-nds/openldap )"
RDEPEND="
${DEPEND}
!<net-fs/nfs-utils-1.2.2
!net-fs/idmapd
"
PATCHES=(
"${FILESDIR}"/${PN}-0.27-getgrouplist.patch #169909
"${FILESDIR}"/${PN}-0.21-headers.patch
)
src_prepare() {
default
# Ideally the build would use -DLIBDIR=$(libdir) at build time.
sed -i \
-e "/PATH_PLUGINS/s:/usr/lib/libnfsidmap:${EPREFIX}/usr/$(get_libdir)/libnfsidmap:" \
libnfsidmap.c || die #504666
eautoreconf
}
src_configure() {
local myeconfargs=(
--disable-dependency-tracking
$(use_enable static-libs static)
$(use_enable ldap)
)
econf "${myeconfargs[@]}"
}
src_install() {
default
insinto /etc
doins idmapd.conf
# remove useless files
rm -f "${ED%/}"/usr/$(get_libdir)/libnfsidmap/*.{a,la}
use static-libs || find "${ED%/}"/usr -name '*.la' -delete || die
}