diff options
| author | Joe MacDonald <joe_macdonald@mentor.com> | 2015-03-02 00:23:43 -0500 |
|---|---|---|
| committer | Joe MacDonald <joe_macdonald@mentor.com> | 2015-03-04 08:52:03 -0500 |
| commit | e00832bc4dbeacb5eb09864674b6ba7a04fc8622 (patch) | |
| tree | 97b20786b6ce441c044fbaa2e0d93d7355bf2ea9 | |
| parent | bcfbe19f4a62b1a97978843b20ec4a9356b9aeb2 (diff) | |
| download | meta-openembedded-e00832bc4dbeacb5eb09864674b6ba7a04fc8622.tar.gz | |
nis: integrate latest stable yp-tools and ypbind
Update to the latest stable NIS tools. The yp-tools libraries and headers
conflict with the RPC headers provided by glibc, so install them to a
different location. Systems that intend to build using the NIS-provided
versions will need to specify the alternate location, but that is covered
by pkg-config, so it should only be necessary to point pkg-config at the
alternate .pc file.
The older stable versions are suitable for IPv4-only setups, so keep them
around in case those are required for some systems.
Signed-off-by: Joe MacDonald <joe_macdonald@mentor.com>
Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com>
3 files changed, 207 insertions, 0 deletions
diff --git a/meta-networking/recipes-support/nis/yp-tools/yp-tools-ipv4-ipv6-Provide-an-in-place-version-of-mapv4v6addr.patch b/meta-networking/recipes-support/nis/yp-tools/yp-tools-ipv4-ipv6-Provide-an-in-place-version-of-mapv4v6addr.patch new file mode 100644 index 0000000000..9ef569f153 --- /dev/null +++ b/meta-networking/recipes-support/nis/yp-tools/yp-tools-ipv4-ipv6-Provide-an-in-place-version-of-mapv4v6addr.patch | |||
| @@ -0,0 +1,110 @@ | |||
| 1 | From a1ef10d63b0ea34c788d5432e94c72b00ae55e04 Mon Sep 17 00:00:00 2001 | ||
| 2 | From: Joe MacDonald <joe_macdonald@mentor.com> | ||
| 3 | Date: Fri, 27 Feb 2015 12:04:10 -0500 | ||
| 4 | Subject: [PATCH] ipv4/ipv6: Provide an in-place version of mapv4v6addr.h | ||
| 5 | |||
| 6 | mapv4v6addr.h isn't always available, depending on your build, but | ||
| 7 | nis-hosts.c only needs it for a single, inline function. So drop a copy | ||
| 8 | here rather than playing games with the include path that would | ||
| 9 | potentially lead to cross-compilation issues. | ||
| 10 | |||
| 11 | Upstream-status: Inappropriate [embedded specific] | ||
| 12 | |||
| 13 | Signed-off-by: Joe MacDonald <joe_macdonald@mentor.com> | ||
| 14 | --- | ||
| 15 | nss_nis6/mapv4v6addr.h | 69 ++++++++++++++++++++++++++++++++++++++++++++++++++ | ||
| 16 | nss_nis6/nis-hosts.c | 2 +- | ||
| 17 | 2 files changed, 70 insertions(+), 1 deletion(-) | ||
| 18 | create mode 100644 nss_nis6/mapv4v6addr.h | ||
| 19 | |||
| 20 | diff --git a/nss_nis6/mapv4v6addr.h b/nss_nis6/mapv4v6addr.h | ||
| 21 | new file mode 100644 | ||
| 22 | index 0000000..7f85f7d | ||
| 23 | --- /dev/null | ||
| 24 | +++ b/nss_nis6/mapv4v6addr.h | ||
| 25 | @@ -0,0 +1,69 @@ | ||
| 26 | +/* | ||
| 27 | + * ++Copyright++ 1985, 1988, 1993 | ||
| 28 | + * - | ||
| 29 | + * Copyright (c) 1985, 1988, 1993 | ||
| 30 | + * The Regents of the University of California. All rights reserved. | ||
| 31 | + * | ||
| 32 | + * Redistribution and use in source and binary forms, with or without | ||
| 33 | + * modification, are permitted provided that the following conditions | ||
| 34 | + * are met: | ||
| 35 | + * 1. Redistributions of source code must retain the above copyright | ||
| 36 | + * notice, this list of conditions and the following disclaimer. | ||
| 37 | + * 2. Redistributions in binary form must reproduce the above copyright | ||
| 38 | + * notice, this list of conditions and the following disclaimer in the | ||
| 39 | + * documentation and/or other materials provided with the distribution. | ||
| 40 | + * 4. Neither the name of the University nor the names of its contributors | ||
| 41 | + * may be used to endorse or promote products derived from this software | ||
| 42 | + * without specific prior written permission. | ||
| 43 | + * | ||
| 44 | + * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND | ||
| 45 | + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE | ||
| 46 | + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE | ||
| 47 | + * ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE | ||
| 48 | + * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL | ||
| 49 | + * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS | ||
| 50 | + * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) | ||
| 51 | + * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT | ||
| 52 | + * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY | ||
| 53 | + * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF | ||
| 54 | + * SUCH DAMAGE. | ||
| 55 | + * - | ||
| 56 | + * Portions Copyright (c) 1993 by Digital Equipment Corporation. | ||
| 57 | + * | ||
| 58 | + * Permission to use, copy, modify, and distribute this software for any | ||
| 59 | + * purpose with or without fee is hereby granted, provided that the above | ||
| 60 | + * copyright notice and this permission notice appear in all copies, and that | ||
| 61 | + * the name of Digital Equipment Corporation not be used in advertising or | ||
| 62 | + * publicity pertaining to distribution of the document or software without | ||
| 63 | + * specific, written prior permission. | ||
| 64 | + * | ||
| 65 | + * THE SOFTWARE IS PROVIDED "AS IS" AND DIGITAL EQUIPMENT CORP. DISCLAIMS ALL | ||
| 66 | + * WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING ALL IMPLIED WARRANTIES | ||
| 67 | + * OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL DIGITAL EQUIPMENT | ||
| 68 | + * CORPORATION BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL | ||
| 69 | + * DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR | ||
| 70 | + * PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS | ||
| 71 | + * ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS | ||
| 72 | + * SOFTWARE. | ||
| 73 | + * - | ||
| 74 | + * --Copyright-- | ||
| 75 | + */ | ||
| 76 | + | ||
| 77 | +#include <string.h> | ||
| 78 | +#include <arpa/nameser.h> | ||
| 79 | + | ||
| 80 | +static void | ||
| 81 | +map_v4v6_address (const char *src, char *dst) | ||
| 82 | +{ | ||
| 83 | + u_char *p = (u_char *) dst; | ||
| 84 | + int i; | ||
| 85 | + | ||
| 86 | + /* Move the IPv4 part to the right position. */ | ||
| 87 | + memcpy (dst + 12, src, INADDRSZ); | ||
| 88 | + | ||
| 89 | + /* Mark this ipv6 addr as a mapped ipv4. */ | ||
| 90 | + for (i = 0; i < 10; i++) | ||
| 91 | + *p++ = 0x00; | ||
| 92 | + *p++ = 0xff; | ||
| 93 | + *p = 0xff; | ||
| 94 | +} | ||
| 95 | diff --git a/nss_nis6/nis-hosts.c b/nss_nis6/nis-hosts.c | ||
| 96 | index af99c74..96d8fa1 100644 | ||
| 97 | --- a/nss_nis6/nis-hosts.c | ||
| 98 | +++ b/nss_nis6/nis-hosts.c | ||
| 99 | @@ -36,7 +36,7 @@ | ||
| 100 | #include "nss-nis6.h" | ||
| 101 | |||
| 102 | /* Get implementation for some internal functions. */ | ||
| 103 | -#include <resolv/mapv4v6addr.h> | ||
| 104 | +#include "mapv4v6addr.h" | ||
| 105 | |||
| 106 | #define ENTNAME hostent | ||
| 107 | #define DATABASE "hosts" | ||
| 108 | -- | ||
| 109 | 1.9.1 | ||
| 110 | |||
diff --git a/meta-networking/recipes-support/nis/yp-tools_3.3.bb b/meta-networking/recipes-support/nis/yp-tools_3.3.bb new file mode 100644 index 0000000000..75ad9894d2 --- /dev/null +++ b/meta-networking/recipes-support/nis/yp-tools_3.3.bb | |||
| @@ -0,0 +1,46 @@ | |||
| 1 | # This package builds tools to manage NIS | ||
| 2 | # The source package is utils/net/NIS/yp-tools | ||
| 3 | # | ||
| 4 | require nis.inc | ||
| 5 | |||
| 6 | SUMMARY = "NIS client programs" | ||
| 7 | DESCRIPTION = " \ | ||
| 8 | Network Information Service tools. \ | ||
| 9 | This package contains ypcat, ypmatch, ypset, \ | ||
| 10 | ypwhich, yppasswd, domainname, nisdomainname \ | ||
| 11 | and ypdomainname. \ | ||
| 12 | " | ||
| 13 | |||
| 14 | SRC_URI = "http://www.linux-nis.org/download/yp-tools/${BP}.tar.bz2 \ | ||
| 15 | file://domainname.service \ | ||
| 16 | file://yp-tools-ipv4-ipv6-Provide-an-in-place-version-of-mapv4v6addr.patch \ | ||
| 17 | " | ||
| 18 | SRC_URI[md5sum] = "acebeecc11a73fb8097503670344834c" | ||
| 19 | SRC_URI[sha256sum] = "812be817df3d4c25813552be336c6c6ad5aedaf65611b81af3ad9f98fb3c2e50" | ||
| 20 | |||
| 21 | DEPENDS = "libtirpc" | ||
| 22 | |||
| 23 | inherit autotools systemd | ||
| 24 | SYSTEMD_SERVICE_${PN} = "domainname.service" | ||
| 25 | |||
| 26 | RPROVIDES_${PN} += "${PN}-systemd" | ||
| 27 | RREPLACES_${PN} += "${PN}-systemd" | ||
| 28 | RCONFLICTS_${PN} += "${PN}-systemd" | ||
| 29 | |||
| 30 | CACHED_CONFIGUREVARS += "ac_cv_prog_STRIP=/bin/true" | ||
| 31 | |||
| 32 | EXTRA_OECONF = " \ | ||
| 33 | --disable-rpath \ | ||
| 34 | --libdir=${libdir}/yp-nis/ \ | ||
| 35 | --includedir=${includedir}/yp-nis/ \ | ||
| 36 | " | ||
| 37 | |||
| 38 | FILES_${PN} += " ${libdir}/yp-nis/*.so.*.* ${libdir}/yp-nis/pkgconfig/" | ||
| 39 | FILES_${PN}-dbg += " ${libdir}/yp-nis/.debug" | ||
| 40 | FILES_${PN}-dev += " ${libdir}/yp-nis/*.so ${libdir}/yp-nis/*.so.[12] ${libdir}/yp-nis/*.la" | ||
| 41 | FILES_${PN}-staticdev += " ${libdir}/yp-nis/*.a" | ||
| 42 | |||
| 43 | do_install_append() { | ||
| 44 | install -d ${D}${systemd_unitdir}/system | ||
| 45 | install -m 0644 ${WORKDIR}/domainname.service ${D}${systemd_unitdir}/system | ||
| 46 | } | ||
diff --git a/meta-networking/recipes-support/nis/ypbind-mt_2.2.bb b/meta-networking/recipes-support/nis/ypbind-mt_2.2.bb new file mode 100644 index 0000000000..b9607574a0 --- /dev/null +++ b/meta-networking/recipes-support/nis/ypbind-mt_2.2.bb | |||
| @@ -0,0 +1,51 @@ | |||
| 1 | # This package builds the NIS ypbind daemon | ||
| 2 | # The source package is utils/net/NIS/ypbind-mt | ||
| 3 | # | ||
| 4 | require nis.inc | ||
| 5 | |||
| 6 | DESCRIPTION = " \ | ||
| 7 | Multithreaded NIS bind service (ypbind-mt). \ | ||
| 8 | ypbind-mt is a complete new implementation of a NIS \ | ||
| 9 | binding daemon for Linux. It has the following \ | ||
| 10 | features. Supports ypbind protocol V1 and V2. \ | ||
| 11 | Uses threads for better response. Supports multiple \ | ||
| 12 | domain bindings. Supports /var/yp/binding/* file \ | ||
| 13 | for Linux libc 4/5 and glibc 2.x. Supports a list \ | ||
| 14 | of known secure NIS server (/etc/yp.conf) Binds to \ | ||
| 15 | the server which answered as first. \ | ||
| 16 | " | ||
| 17 | HOMEPAGE = "http://www.linux-nis.org/nis/ypbind-mt/index.html" | ||
| 18 | DEPENDS = "yp-tools" | ||
| 19 | PROVIDES += "ypbind" | ||
| 20 | |||
| 21 | SRC_URI = "http://www.linux-nis.org/download/ypbind-mt/${BP}.tar.bz2 \ | ||
| 22 | file://ypbind-yocto.init \ | ||
| 23 | file://ypbind.service \ | ||
| 24 | " | ||
| 25 | SRC_URI[md5sum] = "54e2040d8266ae7d302d081ca310c8a8" | ||
| 26 | SRC_URI[sha256sum] = "dc2f7d97c94dcab0acfdcd115cd8b464eb8c427e4bb0fe68404ae7465f517cd3" | ||
| 27 | |||
| 28 | inherit systemd update-rc.d | ||
| 29 | |||
| 30 | SYSTEMD_SERVICE_${PN} = "ypbind.service" | ||
| 31 | INITSCRIPT_NAME = "ypbind" | ||
| 32 | INITSCRIPT_PARAMS = "start 44 3 5 . stop 70 0 1 2 6 ." | ||
| 33 | |||
| 34 | CACHED_CONFIGUREVARS = "ac_cv_prog_STRIP=/bin/true" | ||
| 35 | |||
| 36 | EXTRA_OECONF = "PKG_CONFIG_PATH='${STAGING_LIBDIR}/yp-nis/pkgconfig/'" | ||
| 37 | |||
| 38 | do_install_append () { | ||
| 39 | install -d ${D}${sysconfdir}/init.d | ||
| 40 | install -d ${D}${sysconfdir}/rcS.d | ||
| 41 | |||
| 42 | install -m 0755 ${WORKDIR}/ypbind-yocto.init ${D}${sysconfdir}/init.d/ypbind | ||
| 43 | |||
| 44 | install -d ${D}${systemd_unitdir}/system | ||
| 45 | install -m 0644 ${WORKDIR}/ypbind.service ${D}${systemd_unitdir}/system | ||
| 46 | } | ||
| 47 | |||
| 48 | |||
| 49 | RPROVIDES_${PN} += "${PN}-systemd" | ||
| 50 | RREPLACES_${PN} += "${PN}-systemd" | ||
| 51 | RCONFLICTS_${PN} += "${PN}-systemd" | ||
