From: Joe MacDonald <Joe_MacDonald@mentor.com>
To: <rongqing.li@windriver.com>
Cc: openembedded-devel@lists.openembedded.org
Subject: Re: [PATCH][meta-networking] ypbind-mt: get parameters from dhcp
Date: Thu, 16 Jul 2015 10:44:09 -0400 [thread overview]
Message-ID: <20150716144408.GB4432@mentor.com> (raw)
In-Reply-To: <1436236091-31779-1-git-send-email-rongqing.li@windriver.com>
[-- Attachment #1: Type: text/plain, Size: 5228 bytes --]
[[oe] [PATCH][meta-networking] ypbind-mt: get parameters from dhcp] On 15.07.07 (Tue 10:28) rongqing.li@windriver.com wrote:
> From: Li Wang <li.wang@windriver.com>
>
> the script nis.sh is called by dhcp client,
> it can get some parameters from dhcp.
>
> Signed-off-by: Li Wang <li.wang@windriver.com>
> ---
> .../recipes-support/nis/ypbind-mt/nis.sh | 41 ++++++++++++++++++++++
> .../recipes-support/nis/ypbind-mt/yp.conf | 1 +
> .../recipes-support/nis/ypbind-mt_1.38.bb | 6 ++++
> 3 files changed, 48 insertions(+)
> create mode 100755 meta-networking/recipes-support/nis/ypbind-mt/nis.sh
> create mode 100644 meta-networking/recipes-support/nis/ypbind-mt/yp.conf
>
> diff --git a/meta-networking/recipes-support/nis/ypbind-mt/nis.sh b/meta-networking/recipes-support/nis/ypbind-mt/nis.sh
> new file mode 100755
> index 0000000..a06a977
> --- /dev/null
> +++ b/meta-networking/recipes-support/nis/ypbind-mt/nis.sh
> @@ -0,0 +1,41 @@
> +#!/bin/bash
I wasn't able to find anything bash-specific in this script, can you
change this to /bin/sh, please?
> +#
> +# nis.sh: dhclient-script plugin for NIS settings,
> +# place in /etc/dhcp/dhclient.d and 'chmod +x nis.sh' to enable
> +#
> +
> +CONF=/etc/yp.conf
> +SAVECONF=${SAVEDIR}/${CONF##*/}.predhclient.${interface}
Where's SAVEDIR set again? It comes from the calling environment?
> +
> +nis_replace_conf() {
> + echo "$1" | diff -q ${CONF} - > /dev/null 2>&1
> + if [ $? -eq 1 ]; then
> + echo "$1" > ${CONF}
> +# restorecon ${CONF} >/dev/null 2>&1
I'm not sure what to make of this, maybe you want to make a parameter to
optionally run restorecon? Or maybe a separate patch for meta-selinux
with restorecon stuff in it? Either way, please don't leave this as
dead code.
> + service ypbind restart >/dev/null 2>&1
> + fi
> +}
> +
> +nis_config() {
> + if [ -n "${new_nis_domain}" ] && [ -n "${new_nis_servers}" ] &&
> + [ -e ${CONF} ] && [ -d ${SAVEDIR} ]; then
> + local conf=$(grep -v '^domain .* # added by /sbin/dhclient-script$' < ${CONF})
> +
> + conf=$(echo "$conf"
> + for s in ${new_nis_servers}; do
> + echo "domain ${new_nis_domain} server ${s} # added by /sbin/dhclient-script"
> + done)
> +
> + [ -f ${SAVECONF} ] || touch ${SAVECONF}
> + nis_replace_conf "$conf"
> + fi
> +}
> +
> +nis_restore() {
> + if [ -e ${CONF} ] && [ -f ${SAVECONF} ]; then
> + local conf=$(grep -v '^domain .* # added by /sbin/dhclient-script$' < ${CONF})
Would this really be necessary if you saved $CONF to $SAVECONF and
restored it later? (See below)
> +
> + nis_replace_conf "$conf"
> + rm -f ${SAVECONF}
Does anything get copied to $SAVECONF? All I see is the one touch
above, but wouldn't it be easier all around if you were making copies of
the CONF file to restore later?
> + fi
> +}
> diff --git a/meta-networking/recipes-support/nis/ypbind-mt/yp.conf b/meta-networking/recipes-support/nis/ypbind-mt/yp.conf
> new file mode 100644
> index 0000000..792d600
> --- /dev/null
> +++ b/meta-networking/recipes-support/nis/ypbind-mt/yp.conf
> @@ -0,0 +1 @@
> +#
Presumably this is necessary to support the 'nis.sh' script, but since
it's just an empty file, why not create it at do_install time (or better
still just have the script handle a missing one in some sensible way and
thus allow another layer to provide their own yp.conf if they need to)?
I'd encourage you to look at:
https://git.centos.org/raw/rpms!ypbind.git/5a592e88374f067679276488430ebdf51152c358/SOURCES!nis.sh;jsessionid=1xhm7099hzkgm1w0ke7bmqaut4
since they seem to share a common ancestry anyway and adopt that (or
something very like it) instead.
-J.
> diff --git a/meta-networking/recipes-support/nis/ypbind-mt_1.38.bb b/meta-networking/recipes-support/nis/ypbind-mt_1.38.bb
> index d25ef5c..f0c1cea 100644
> --- a/meta-networking/recipes-support/nis/ypbind-mt_1.38.bb
> +++ b/meta-networking/recipes-support/nis/ypbind-mt_1.38.bb
> @@ -28,6 +28,8 @@ PROVIDES += "ypbind"
> SRC_URI = "http://www.linux-nis.org/download/ypbind-mt/${BP}.tar.bz2 \
> file://ypbind-yocto.init \
> file://ypbind.service \
> + file://yp.conf \
> + file://nis.sh \
> "
> SRC_URI[md5sum] = "094088c0e282fa7f3b3dd6cc51d0a4e1"
> SRC_URI[sha256sum] = "1930ce19f6ccfe10400f3497b31867f71690d2bcd3f5b575199fa915559b7746"
> @@ -44,10 +46,14 @@ do_install_append () {
> install -d ${D}${sysconfdir}/init.d
> install -d ${D}${sysconfdir}/rcS.d
>
> + install -m 0744 ${WORKDIR}/yp.conf ${D}${sysconfdir}/
> install -m 0755 ${WORKDIR}/ypbind-yocto.init ${D}${sysconfdir}/init.d/ypbind
>
> install -d ${D}${systemd_unitdir}/system
> install -m 0644 ${WORKDIR}/ypbind.service ${D}${systemd_unitdir}/system
> +
> + install -d ${D}/${sysconfdir}/dhcp/dhclient.d
> + install -m 755 ${WORKDIR}/nis.sh ${D}/${sysconfdir}/dhcp/dhclient.d/
> }
>
>
> --
> 1.9.1
>
--
-Joe MacDonald.
:wq
[-- Attachment #2: Digital signature --]
[-- Type: application/pgp-signature, Size: 484 bytes --]
next prev parent reply other threads:[~2015-07-16 14:44 UTC|newest]
Thread overview: 3+ messages / expand[flat|nested] mbox.gz Atom feed top
2015-07-07 2:28 [PATCH][meta-networking] ypbind-mt: get parameters from dhcp rongqing.li
2015-07-16 14:44 ` Joe MacDonald [this message]
2015-07-17 1:31 ` Rongqing Li
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20150716144408.GB4432@mentor.com \
--to=joe_macdonald@mentor.com \
--cc=openembedded-devel@lists.openembedded.org \
--cc=rongqing.li@windriver.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.