diff options
-rw-r--r-- | sys-auth/libnss-nis/Manifest | 1 | ||||
-rw-r--r-- | sys-auth/libnss-nis/files/map_v4v6_address.patch | 112 | ||||
-rw-r--r-- | sys-auth/libnss-nis/libnss-nis-1.3.ebuild | 49 | ||||
-rw-r--r-- | sys-auth/libnss-nis/metadata.xml | 7 |
4 files changed, 169 insertions, 0 deletions
diff --git a/sys-auth/libnss-nis/Manifest b/sys-auth/libnss-nis/Manifest new file mode 100644 index 000000000000..49a505490266 --- /dev/null +++ b/sys-auth/libnss-nis/Manifest @@ -0,0 +1 @@ +DIST libnss-nis-1.3.tar.gz 208580 SHA256 ddf49c60b2eb944929d5b7ffe74d6c95f9df0843e68d450cf5ba0f35b59c906d SHA512 d5af3223da2202f2f3168f127980bb6b3f3c5939e2efe4d68fe3d13b6068898be7a64494f2c80a31afa77fb411c8d360519e5d26709d6aebca2bfb2d0c09cd26 WHIRLPOOL a181277f93183fa33abb07c838a03b3e1373d8471577f85083d0e07cb7a9865c383a073df9d5f9700d56d483c1409cb5b4dfaa2194a8d0db3f7fc78620b348ea diff --git a/sys-auth/libnss-nis/files/map_v4v6_address.patch b/sys-auth/libnss-nis/files/map_v4v6_address.patch new file mode 100644 index 000000000000..85a69d71c5bc --- /dev/null +++ b/sys-auth/libnss-nis/files/map_v4v6_address.patch @@ -0,0 +1,112 @@ +From df903b621d4010c94129455a3f8d91d66f0fcd1f Mon Sep 17 00:00:00 2001 +From: Mike Gilbert <floppym@gentoo.org> +Date: Fri, 17 Nov 2017 13:44:10 -0500 +Subject: [PATCH] Copy the map_v4v6_address function from glibc + +Fixes: https://github.com/thkukuk/libnss_nis/issues/1 +--- + src/Makefile.am | 3 ++- + src/map_v4v6_address.h | 68 ++++++++++++++++++++++++++++++++++++++++++++++++++ + src/nis-hosts.c | 3 +-- + 3 files changed, 71 insertions(+), 3 deletions(-) + create mode 100644 src/map_v4v6_address.h + +diff --git a/src/Makefile.am b/src/Makefile.am +index 9eb3d35..56108aa 100644 +--- a/src/Makefile.am ++++ b/src/Makefile.am +@@ -27,4 +27,5 @@ libnss_nis_la_LIBADD = @LIBNSL_LIBS@ + libnss_nis_la_SOURCES = nis-alias.c nis-ethers.c nis-grp.c nis-hosts.c \ + nis-initgroups.c nis-netgrp.c nis-network.c \ + nis-proto.c nis-publickey.c nis-pwd.c nis-rpc.c \ +- nis-service.c nis-spwd.c nss-nis.c nss-default.c ++ nis-service.c nis-spwd.c nss-nis.c nss-default.c \ ++ map_v4v6_address.h +diff --git a/src/map_v4v6_address.h b/src/map_v4v6_address.h +new file mode 100644 +index 0000000..d9a46c9 +--- /dev/null ++++ b/src/map_v4v6_address.h +@@ -0,0 +1,68 @@ ++/* ++ * ++Copyright++ 1985, 1988, 1993 ++ * - ++ * Copyright (c) 1985, 1988, 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. ++ * - ++ * Portions Copyright (c) 1993 by Digital Equipment Corporation. ++ * ++ * Permission to use, copy, modify, and distribute this software for any ++ * purpose with or without fee is hereby granted, provided that the above ++ * copyright notice and this permission notice appear in all copies, and that ++ * the name of Digital Equipment Corporation not be used in advertising or ++ * publicity pertaining to distribution of the document or software without ++ * specific, written prior permission. ++ * ++ * THE SOFTWARE IS PROVIDED "AS IS" AND DIGITAL EQUIPMENT CORP. DISCLAIMS ALL ++ * WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING ALL IMPLIED WARRANTIES ++ * OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL DIGITAL EQUIPMENT ++ * CORPORATION BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL ++ * DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR ++ * PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ++ * ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS ++ * SOFTWARE. ++ * - ++ * --Copyright-- ++ */ ++ ++static void ++map_v4v6_address (const char *src, char *dst) ++{ ++ u_char *p = (u_char *)dst; ++ char tmp[INADDRSZ]; ++ int i; ++ ++ /* Stash a temporary copy so our caller can update in place. */ ++ memcpy(tmp, src, INADDRSZ); ++ /* Mark this ipv6 addr as a mapped ipv4. */ ++ for (i = 0; i < 10; i++) ++ *p++ = 0x00; ++ *p++ = 0xff; ++ *p++ = 0xff; ++ /* Retrieve the saved copy and we're done. */ ++ memcpy((void*)p, tmp, INADDRSZ); ++} +diff --git a/src/nis-hosts.c b/src/nis-hosts.c +index ef6bb47..53ab965 100644 +--- a/src/nis-hosts.c ++++ b/src/nis-hosts.c +@@ -35,8 +35,7 @@ + #include "libc-lock.h" + #include "nss-nis.h" + +-/* Get implementation for some internal functions. */ +-#include <resolv/mapv4v6addr.h> ++#include "map_v4v6_address.h" + + #define ENTNAME hostent + #define DATABASE "hosts" diff --git a/sys-auth/libnss-nis/libnss-nis-1.3.ebuild b/sys-auth/libnss-nis/libnss-nis-1.3.ebuild new file mode 100644 index 000000000000..77a404b8bca1 --- /dev/null +++ b/sys-auth/libnss-nis/libnss-nis-1.3.ebuild @@ -0,0 +1,49 @@ +# Copyright 1999-2017 Gentoo Foundation +# Distributed under the terms of the GNU General Public License v2 + +EAPI=6 + +inherit autotools multilib-minimal + +DESCRIPTION="NSS module to provide NIS support" +HOMEPAGE="https://github.com/thkukuk/libnss_nis" +SRC_URI="https://github.com/thkukuk/libnss_nis/archive/libnss_nis-${PV}.tar.gz -> ${P}.tar.gz" + +LICENSE="LGPL-2.1+ BSD ISC" +SLOT="0" +KEYWORDS="~amd64" +IUSE="" + +RDEPEND=" + net-libs/libnsl:0=[${MULTILIB_USEDEP}] + net-libs/libtirpc:0=[${MULTILIB_USEDEP}] + !<sys-libs/glibc-2.26 +" +DEPEND="${RDEPEND} + virtual/pkgconfig +" + +S=${WORKDIR}/libnss_nis-libnss_nis-${PV} + +PATCHES=( + "${FILESDIR}/map_v4v6_address.patch" +) + +src_prepare() { + default + eautoreconf +} + +multilib_src_configure() { + local myconf=( + --enable-shared + --disable-static + ) + ECONF_SOURCE=${S} econf "${myconf[@]}" +} + +multilib_src_install_all() { + einstalldocs + find "${ED}" -name '*.la' -delete || die +} + diff --git a/sys-auth/libnss-nis/metadata.xml b/sys-auth/libnss-nis/metadata.xml new file mode 100644 index 000000000000..fa331094dd33 --- /dev/null +++ b/sys-auth/libnss-nis/metadata.xml @@ -0,0 +1,7 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd"> +<pkgmetadata> + <maintainer type="project"> + <email>toolchain@gentoo.org</email> + </maintainer> +</pkgmetadata> |