* [PATCH][meta-networking] ypbind-mt: get parameters from dhcp
@ 2015-07-07 2:28 rongqing.li
2015-07-16 14:44 ` Joe MacDonald
0 siblings, 1 reply; 3+ messages in thread
From: rongqing.li @ 2015-07-07 2:28 UTC (permalink / raw)
To: openembedded-devel
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
+#
+# 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}
+
+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
+ 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})
+
+ nis_replace_conf "$conf"
+ rm -f ${SAVECONF}
+ 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 @@
+#
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
^ permalink raw reply related [flat|nested] 3+ messages in thread
* Re: [PATCH][meta-networking] ypbind-mt: get parameters from dhcp
2015-07-07 2:28 [PATCH][meta-networking] ypbind-mt: get parameters from dhcp rongqing.li
@ 2015-07-16 14:44 ` Joe MacDonald
2015-07-17 1:31 ` Rongqing Li
0 siblings, 1 reply; 3+ messages in thread
From: Joe MacDonald @ 2015-07-16 14:44 UTC (permalink / raw)
To: rongqing.li; +Cc: openembedded-devel
[-- 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 --]
^ permalink raw reply [flat|nested] 3+ messages in thread
* Re: [PATCH][meta-networking] ypbind-mt: get parameters from dhcp
2015-07-16 14:44 ` Joe MacDonald
@ 2015-07-17 1:31 ` Rongqing Li
0 siblings, 0 replies; 3+ messages in thread
From: Rongqing Li @ 2015-07-17 1:31 UTC (permalink / raw)
To: Joe MacDonald; +Cc: openembedded-devel
On 2015年07月16日 22:44, Joe MacDonald wrote:
> [[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.
thanks, I will adopt it
-Roy
>
>> 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
>>
--
Best Reagrds,
Roy | RongQing Li
^ permalink raw reply [flat|nested] 3+ messages in thread
end of thread, other threads:[~2015-07-17 1:31 UTC | newest]
Thread overview: 3+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2015-07-07 2:28 [PATCH][meta-networking] ypbind-mt: get parameters from dhcp rongqing.li
2015-07-16 14:44 ` Joe MacDonald
2015-07-17 1:31 ` Rongqing Li
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.