ldap: Pull nss-pam-ldapd into the openbmc image

Bringing the LDAP authentication module support in openbmc stack
requires to pull the nss-pam-ldapd which allows the LDAP
server to provide the user, passwd, group info that we normally get
from the /etc flat files.

nss-pam-ldapd provides libnss-ldap and pam_ldap module which
delegate the work to the nslcd(daemon) that queries the LDAP server.
pam_ldap uses the openldap client API to interact with the LDAP server.

nss-pam-ldapd files are pulled from
http://git.yoctoproject.org/cgit/cgit.cgi/meta-cloud-services/
tree/recipes-support/nss-pam-ldapd

meta-cloud-services sha: 38cc19fb3a813673051de314aafabda0545d8466

Tested: Adding the "ldap" distro feature brings the nss-pam-ldapd
and its dependencies into the image and removing the "ldap" from the
distro feature doesn't bring the nss-pam-ldapd and its dependencies.

Change-Id: I0b013b3810a24f335dc7f72326baf9285d802b05
Signed-off-by: Ratan Gupta <ratagupt@in.ibm.com>
diff --git a/recipes-support/nss-pam-ldapd/files/nslcd.init b/recipes-support/nss-pam-ldapd/files/nslcd.init
new file mode 100644
index 0000000..a27b6e0
--- /dev/null
+++ b/recipes-support/nss-pam-ldapd/files/nslcd.init
@@ -0,0 +1,84 @@
+#!/bin/sh
+
+set -x
+
+NAME="nslcd"
+CONFIG="/etc/nslcd.conf"
+DAEMON="/usr/sbin/nslcd"
+DESC="LDAP connection daemon"
+STATEDIR="/var/run/$NAME"
+PIDFILE="$STATEDIR/$NAME.pid"
+
+start() 
+{
+    if [ -e $PIDFILE ]; then
+        PIDDIR=/proc/$(cat $PIDFILE)
+        if [ -d ${PIDDIR} ]; then
+            echo "$DESC already running."
+            exit 1
+        else
+            echo "Removing stale PID file $PIDFILE"
+            rm -f $PIDFILE
+        fi
+    fi
+
+    echo -n "Starting $DESC..."
+
+    start-stop-daemon --start --oknodo \
+        --pidfile $PIDFILE --startas $DAEMON
+
+    if [ $? -eq 0 ]; then
+        echo "done."
+    else
+        echo "failed."
+    fi
+}
+
+stop() 
+{
+    echo -n "Stopping $DESC..."
+    start-stop-daemon --stop --quiet --pidfile $PIDFILE \
+      --name $NAME
+    if [ $? -eq 0 ]; then
+        echo "done."
+    else
+        echo "failed."
+    fi
+    rm -f $PIDFILE
+}
+
+status()
+{
+    if [ -f $PIDFILE ]; then
+        if $DAEMON --check
+        then
+            echo "$DESC is running (pid `cat $PIDFILE`"
+        else
+            echo "$DESC stopped"
+        fi
+    else
+        echo "$DESC stopped"
+    fi
+}
+
+case "$1" in
+    start)
+        start
+        ;;
+    stop)
+        stop
+        ;;
+    restart|force-reload|reload)
+        stop
+        start
+        ;;
+    status)
+	status
+        ;;
+    *)
+        echo "Usage: $0 {start|stop|force-reload|restart|reload|status}"
+        exit 1
+        ;;
+esac
+
+exit 0
diff --git a/recipes-support/nss-pam-ldapd/files/nslcd.service b/recipes-support/nss-pam-ldapd/files/nslcd.service
new file mode 100644
index 0000000..bc67242
--- /dev/null
+++ b/recipes-support/nss-pam-ldapd/files/nslcd.service
@@ -0,0 +1,10 @@
+[Unit]
+Description=LDAP daemon
+After=syslog.target network.target
+
+[Service]
+Type=forking
+ExecStart=/usr/sbin/nslcd
+
+[Install]
+WantedBy=multi-user.target