nis: Import recipes from OE classic

Update to latest versions while at it

Signed-off-by: Khem Raj <raj.khem@gmail.com>
This commit is contained in:
Khem Raj
2013-01-06 00:06:28 -08:00
parent 4c735f36f6
commit 5d56edf7a7
6 changed files with 214 additions and 0 deletions
@@ -0,0 +1,12 @@
--- pwdutils-2.6/configure.in.orig 2005-04-19 20:22:36.603052192 -0700
+++ pwdutils-2.6/configure.in 2005-04-19 21:09:45.308023672 -0700
@@ -178,6 +178,9 @@
AC_CHECK_LIB(ldap, main, LDAP_LIBS="-lldap $LDAP_LIBS" found_ldap_lib=yes,,$LDAP_LIBS)
fi
+ dnl this always needs dl
+ AC_CHECK_LIB(dl, dlopen, LDAP_LIBS="$LDAP_LIBS -ldl")
+
if test -z "$found_ldap_lib" -a \( $with_ldap_lib = auto -o $with_ldap_lib = netscape5 \); then
AC_CHECK_LIB(ldap50, main, LDAP_LIBS="-lldap50 -lssldap50 -lssl3 -lnss3 -lnspr4 -lprldap50 -lplc4 -lplds4" found_ldap_lib=yes need_pthread=true,, -lpthread)
fi
@@ -0,0 +1,16 @@
--- pwdutils-2.6/lib/copy_xattr.c.orig 2005-04-16 17:15:52.916660880 -0700
+++ pwdutils-2.6/lib/copy_xattr.c 2005-04-16 17:18:10.345768480 -0700
@@ -127,8 +127,11 @@
if (lsetxattr (to, name, value, size, 0) != 0)
{
- if (strcmp (name, "security.selinux") == 0 &&
- is_selinux_enabled() == 0)
+ if (strcmp (name, "security.selinux") == 0
+#if defined(WITH_SELINUX)
+ && is_selinux_enabled() == 0
+#endif
+ )
fprintf (stderr,
_("SELinux not enabled, ignore attribute %s for `%s'.\n"),
name, to);
@@ -0,0 +1,99 @@
#! /bin/sh
# Copyright (c) 2004 Author: Thorsten Kukuk <kukuk@suse.de>
#
# /etc/init.d/ypbind
#
# and symbolic its link
#
# /usr/sbin/rcypbind
#
# System startup script for the ypbind daemon
#
### BEGIN INIT INFO
# Provides: ypbind
# Required-Start: $remote_fs $portmap
# Should-Start: ypserv slpd
# Required-Stop: portmap
# Default-Start: 3 5
# Default-Stop: 0 1 2 6
# Short-Description: Start ypbind (necessary for a NIS client)
# Description: ypbind finds the server for NIS domains and maintains
# the NIS binding information.
### END INIT INFO
YPBIND_BIN=/usr/sbin/ypbind
pidfile=/var/run/ypbind.pid
[ -f /etc/default/ypbind ] && . /etc/default/ypbind
case "$1" in
start)
echo -n "Starting ypbind"
## If the domainname is not set, skip starting of ypbind
## and return with "program not configured"
/bin/ypdomainname &> /dev/null
if [ $? -ne 0 -o -z "`/bin/ypdomainname 2>/dev/null`" ]; then
if [ -f /etc/defaultdomain ]; then
XDOMAINNAME=`cat /etc/defaultdomain`
/bin/ypdomainname "$XDOMAINNAME"
fi
/bin/ypdomainname &> /dev/null
if [ $? -ne 0 -o -z "`/bin/ypdomainname 2>/dev/null`" ]; then
# Tell the user this has skipped
echo -n " . . . . . . . . . . No domainname set"
# service is not configured
exit 1
fi
fi
## If we don't have a /etc/yp.conf file, skip starting of
## ypbind and return with "program not configured"
## if you add the -broadcast Option later, comment this out.
if [ ! -f /etc/yp.conf -a "$YPBIND_BROADCAST" != "yes" ] ; then
# Tell the user this has skipped
echo -n " . . . . . . . . . . ${attn}/etc/yp.conf not found${norm}"
# service is not configured
exit 1
fi
# evaluate the OPTIONS for ypbind-mt
OPTIONS=""
test "$YPBIND_LOCAL_ONLY" = "yes" && OPTIONS="-local-only $OPTIONS"
test "$YPBIND_BROADCAST" = "yes" && OPTIONS="-broadcast $OPTIONS"
test "$YPBIND_BROKEN_SERVER" = "yes" && OPTIONS="-broken-server $OPTIONS"
start-stop-daemon --start --quiet --pidfile $pidfile --exec $YPBIND_BIN -- $YPBIND_OPTIONS $OPTIONS
if [ $? -eq 0 ]; then
notfound=1
for i in 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15; do
ypwhich &>/dev/null && { notfound=0 ; break; };
echo -n " ."
sleep 1;
done
if [ $notfound -eq 1 ]; then
echo -n " ${warn}No NIS server found${norm}";
fi
else
exit 1
fi
;;
stop)
echo -n "Shutting down ypbind"
start-stop-daemon --stop --quiet --pidfile $pidfile
# Remove static data, else glibc will continue to use NIS
rm -f /var/yp/binding/* /var/run/ypbind.pid
;;
restart)
$0 stop
sleep 1
$0 start
;;
reload | force-reload)
echo -n "Reload service ypbind"
start-stop-daemon --stop --quiet --signal 1 --pidfile $pidfile
;;
*)
echo "Usage: $0 {start|stop|status|try-restart|restart|force-reload|reload|probe}"
exit 1
;;
esac
@@ -0,0 +1,31 @@
# This include file contains global definitions for the
# various NIS packages.
#
# These packages will only function correctly with glibc -
# the rpcsvc functionality is not present in uclibc
DESCRIPTION = "NIS Server and Tools"
HOMEPAGE = "http://www.linux-nis.org/nis/"
SECTION = "console/network"
LICENSE = "GPL-2.0"
LIC_FILES_CHKSUM = "file://COPYING;md5=94d55d512a9ba36caa9b7df079bae19f"
inherit autotools gettext
# install is broken because src/Makefile heroically adds '-s'
# to the install flags - passing -s to the build /usr/bin/install!
# install-strip gets it right but installs ypbind -m <default>,
# not -m 555. In an OE build this is not, so far as I can see,
# a security problem (and this fix to the build problem is *much*
# easier and more maintainable.)
do_install() {
oe_runmake 'DESTDIR=${D}' install-strip
}
# An attempt to build on uclibc will fail, causing annoyance,
# so force the package to be skipped here (this will cause a
# 'nothing provides' error)
python () {
os = bb.data.getVar("TARGET_OS", d, 1)
if os == "linux-uclibc":
raise bb.parse.SkipPackage("NIS functionality requires rpcsvc/yp.h, uClibC does not provide this")
}
@@ -0,0 +1,17 @@
# This package builds tools to manage NIS
# The source package is utils/net/NIS/yp-tools
#
PR = "r0"
DESCRIPTION="\
Network Information Service tools. \
This package contains ypcat, ypmatch, ypset, \
ypwhich, yppasswd, domainname, nisdomainname \
and ypdomainname."
require nis.inc
SRC_URI = "http://www.linux-nis.org/download/yp-tools/${P}.tar.bz2"
SRC_URI[md5sum] = "ce1e06d86caa285fa8cd76fdf103f51e"
SRC_URI[sha256sum] = "6ae8321666eea7837da343eea90ea30273fb74943ad111d5a4befd2afb252063"
CACHED_CONFIGUREVARS += "ac_cv_prog_STRIP=/bin/true"
@@ -0,0 +1,39 @@
# This package builds the NIS ypbind daemon
# The source package is utils/net/NIS/ypbind-mt
#
PR = "r0"
DESCRIPTION="\
Multithreaded NIS bind service (ypbind-mt). \
ypbind-mt is a complete new implementation of a NIS \
binding daemon for Linux. It has the following \
features. Supports ypbind protocol V1 and V2. \
Uses threads for better response. Supports multiple \
domain bindings. Supports /var/yp/binding/* file \
for Linux libc 4/5 and glibc 2.x. Supports a list \
of known secure NIS server (/etc/yp.conf) Binds to \
the server which answered as first."
HOMEPAGE="http://www.linux-nis.org/nis/ypbind-mt/index.html"
require nis.inc
SRC_URI = "http://www.linux-nis.org/download/ypbind-mt/${P}.tar.bz2"
SRC_URI[md5sum] = "135834db97d78ff6d79fdee2810b4056"
LIC_FILES_CHKSUM = "file://COPYING;md5=082c9a0886c7c3db1bc862b5b62ffe08"
SRC_URI[sha256sum] = "0eff76c1849f4b38ea1a60280d8397c4240369c641fe5402ce57edf1a90958c7"
# ypbind-mt now provides all the functionality of ypbind
# and is used in place of it.
PROVIDES += "ypbind"
CACHED_CONFIGUREVARS = "ac_cv_prog_STRIP=/bin/true"
SRC_URI += "file://ypbind-yocto.init"
do_install_append () {
install -d ${D}${sysconfdir}/init.d
install -d ${D}${sysconfdir}/rcS.d
install -m 0755 ${WORKDIR}/ypbind-yocto.init ${D}${sysconfdir}/init.d/ypbind
ln -s ../init.d/ypbind ${D}${sysconfdir}/rcS.d/S44ypbind
}