Re: [OE-core] [PATCH 1/2] dhclient-script: let resolv.conf and resolv.conf.dhclient on the same direcotry
On 12/10/2013 12:41 PM, Saul Wold wrote: On 12/03/2013 05:46 AM, Hongxu Jia wrote: Even though '/etc' is on the readonly partition, it's possible that /etc/resolv.conf is on a separate writable partition. In this situation, we should make sure the temp file resolv.conf.dhclient on the same direcotry. [YOCTO #5624] Signed-off-by: Hongxu Jia hongxu@windriver.com --- meta/recipes-connectivity/dhcp/dhcp.inc| 1 + ...ript-let-resolv.conf-and-resolv.conf.dhcl.patch | 74 ++ These new scripts are doing alot of out calling from the shell script, and can cause additional fork/execs during the critical path of system startup, is there any way to reduce this? Do you mean the new script :readonly-dhclient-enter-hooks ? If yes, we could just drop the [PATCH 2/2] patch and it could work while read-only is enabled; Because /etc/resolv.conf is a symlink to /var/run/ resolv.conf in oe-core, and it's always writable: #ls /etc/resolv.conf -al lrwxrwxrwx 1 root root 29 Oct 22 2012 /etc/resolv.conf - /var/run/resolv.conf //Hongxu Sau! 2 files changed, 75 insertions(+) create mode 100644 meta/recipes-connectivity/dhcp/dhcp/dhclient-script-let-resolv.conf-and-resolv.conf.dhcl.patch diff --git a/meta/recipes-connectivity/dhcp/dhcp.inc b/meta/recipes-connectivity/dhcp/dhcp.inc index ad82b57..d8376aa 100644 --- a/meta/recipes-connectivity/dhcp/dhcp.inc +++ b/meta/recipes-connectivity/dhcp/dhcp.inc @@ -16,6 +16,7 @@ SRC_URI = ftp://ftp.isc.org/isc/dhcp/${PV}/dhcp-${PV}.tar.gz \ file://site.h \ file://init-relay file://default-relay \ file://init-server file://default-server \ + file://dhclient-script-let-resolv.conf-and-resolv.conf.dhcl.patch \ file://dhclient.conf file://dhcpd.conf inherit autotools diff --git a/meta/recipes-connectivity/dhcp/dhcp/dhclient-script-let-resolv.conf-and-resolv.conf.dhcl.patch b/meta/recipes-connectivity/dhcp/dhcp/dhclient-script-let-resolv.conf-and-resolv.conf.dhcl.patch new file mode 100644 index 000..db56f70 --- /dev/null +++ b/meta/recipes-connectivity/dhcp/dhcp/dhclient-script-let-resolv.conf-and-resolv.conf.dhcl.patch @@ -0,0 +1,74 @@ +dhclient-script: let resolv.conf and resolv.conf.dhclient on the same direcotry + +Even though '/etc' is on the readonly partition, it's possible that +/etc/resolv.conf is on a separate writable partition. + +In this situation, we should make sure the temp file resolv.conf.dhclient +on the same direcotry. + +Upstream-Status: Pending +Signed-off-by: Hongxu Jia hongxu@windriver.com +--- + client/scripts/linux | 24 +--- + 1 file changed, 13 insertions(+), 11 deletions(-) + +diff --git a/client/scripts/linux b/client/scripts/linux +index 6f8ea4b..fbc6324 100755 +--- a/client/scripts/linux b/client/scripts/linux +@@ -27,27 +27,29 @@ ip=/sbin/ip + + make_resolv_conf() { + if [ x$new_domain_name_servers != x ]; then +-cat /dev/null /etc/resolv.conf.dhclient +-chmod 644 /etc/resolv.conf.dhclient ++sysconfdir=`dirname $(readlink -f '/etc/resolv.conf')` ++cat /dev/null $sysconfdir/resolv.conf.dhclient ++chmod 644 $sysconfdir/resolv.conf.dhclient + if [ x$new_domain_search != x ]; then +- echo search $new_domain_search /etc/resolv.conf.dhclient ++ echo search $new_domain_search $sysconfdir/esolv.conf.dhclient + elif [ x$new_domain_name != x ]; then + # Note that the DHCP 'Domain Name Option' is really just a domain + # name, and that this practice of using the domain name option as + # a search path is both nonstandard and deprecated. +- echo search $new_domain_name /etc/resolv.conf.dhclient ++ echo search $new_domain_name $sysconfdir/resolv.conf.dhclient + fi + for nameserver in $new_domain_name_servers; do +- echo nameserver $nameserver /etc/resolv.conf.dhclient ++ echo nameserver $nameserver $sysconfdir/resolv.conf.dhclient + done + +-mv /etc/resolv.conf.dhclient /etc/resolv.conf ++mv $sysconfdir/resolv.conf.dhclient $sysconfdir/resolv.conf + elif [ x${new_dhcp6_name_servers} != x ] ; then +-cat /dev/null /etc/resolv.conf.dhclient6 +-chmod 644 /etc/resolv.conf.dhclient6 ++sysconfdir=`dirname $(readlink -f '/etc/resolv.conf')` ++cat /dev/null $sysconfdir/resolv.conf.dhclient6 ++chmod 644 $sysconfdir/resolv.conf.dhclient6 + + if [ x${new_dhcp6_domain_search} != x ] ; then +- echo search ${new_dhcp6_domain_search} /etc/resolv.conf.dhclient6 ++ echo search ${new_dhcp6_domain_search} $sysconfdir/resolv.conf.dhclient6 + fi + shopt -s nocasematch + for nameserver in ${new_dhcp6_name_servers} ; do +@@ -59,11 +61,11 @@ make_resolv_conf() { + else + zone_id= + fi +- echo nameserver ${nameserver}$zone_id /etc/resolv.conf.dhclient6 ++ echo nameserver ${nameserver}$zone_id $sysconfdir/resolv.conf.dhclient6 + done + shopt -u
Re: [OE-core] [PATCH 1/2] dhclient-script: let resolv.conf and resolv.conf.dhclient on the same direcotry
On 12/03/2013 05:46 AM, Hongxu Jia wrote: Even though '/etc' is on the readonly partition, it's possible that /etc/resolv.conf is on a separate writable partition. In this situation, we should make sure the temp file resolv.conf.dhclient on the same direcotry. [YOCTO #5624] Signed-off-by: Hongxu Jia hongxu@windriver.com --- meta/recipes-connectivity/dhcp/dhcp.inc| 1 + ...ript-let-resolv.conf-and-resolv.conf.dhcl.patch | 74 ++ These new scripts are doing alot of out calling from the shell script, and can cause additional fork/execs during the critical path of system startup, is there any way to reduce this? Sau! 2 files changed, 75 insertions(+) create mode 100644 meta/recipes-connectivity/dhcp/dhcp/dhclient-script-let-resolv.conf-and-resolv.conf.dhcl.patch diff --git a/meta/recipes-connectivity/dhcp/dhcp.inc b/meta/recipes-connectivity/dhcp/dhcp.inc index ad82b57..d8376aa 100644 --- a/meta/recipes-connectivity/dhcp/dhcp.inc +++ b/meta/recipes-connectivity/dhcp/dhcp.inc @@ -16,6 +16,7 @@ SRC_URI = ftp://ftp.isc.org/isc/dhcp/${PV}/dhcp-${PV}.tar.gz \ file://site.h \ file://init-relay file://default-relay \ file://init-server file://default-server \ + file://dhclient-script-let-resolv.conf-and-resolv.conf.dhcl.patch \ file://dhclient.conf file://dhcpd.conf inherit autotools diff --git a/meta/recipes-connectivity/dhcp/dhcp/dhclient-script-let-resolv.conf-and-resolv.conf.dhcl.patch b/meta/recipes-connectivity/dhcp/dhcp/dhclient-script-let-resolv.conf-and-resolv.conf.dhcl.patch new file mode 100644 index 000..db56f70 --- /dev/null +++ b/meta/recipes-connectivity/dhcp/dhcp/dhclient-script-let-resolv.conf-and-resolv.conf.dhcl.patch @@ -0,0 +1,74 @@ +dhclient-script: let resolv.conf and resolv.conf.dhclient on the same direcotry + +Even though '/etc' is on the readonly partition, it's possible that +/etc/resolv.conf is on a separate writable partition. + +In this situation, we should make sure the temp file resolv.conf.dhclient +on the same direcotry. + +Upstream-Status: Pending +Signed-off-by: Hongxu Jia hongxu@windriver.com +--- + client/scripts/linux | 24 +--- + 1 file changed, 13 insertions(+), 11 deletions(-) + +diff --git a/client/scripts/linux b/client/scripts/linux +index 6f8ea4b..fbc6324 100755 +--- a/client/scripts/linux b/client/scripts/linux +@@ -27,27 +27,29 @@ ip=/sbin/ip + + make_resolv_conf() { + if [ x$new_domain_name_servers != x ]; then +-cat /dev/null /etc/resolv.conf.dhclient +-chmod 644 /etc/resolv.conf.dhclient ++sysconfdir=`dirname $(readlink -f '/etc/resolv.conf')` ++cat /dev/null $sysconfdir/resolv.conf.dhclient ++chmod 644 $sysconfdir/resolv.conf.dhclient + if [ x$new_domain_search != x ]; then +- echo search $new_domain_search /etc/resolv.conf.dhclient ++ echo search $new_domain_search $sysconfdir/esolv.conf.dhclient + elif [ x$new_domain_name != x ]; then + # Note that the DHCP 'Domain Name Option' is really just a domain + # name, and that this practice of using the domain name option as + # a search path is both nonstandard and deprecated. +- echo search $new_domain_name /etc/resolv.conf.dhclient ++ echo search $new_domain_name $sysconfdir/resolv.conf.dhclient + fi + for nameserver in $new_domain_name_servers; do +- echo nameserver $nameserver /etc/resolv.conf.dhclient ++ echo nameserver $nameserver $sysconfdir/resolv.conf.dhclient + done + +-mv /etc/resolv.conf.dhclient /etc/resolv.conf ++mv $sysconfdir/resolv.conf.dhclient $sysconfdir/resolv.conf + elif [ x${new_dhcp6_name_servers} != x ] ; then +-cat /dev/null /etc/resolv.conf.dhclient6 +-chmod 644 /etc/resolv.conf.dhclient6 ++sysconfdir=`dirname $(readlink -f '/etc/resolv.conf')` ++cat /dev/null $sysconfdir/resolv.conf.dhclient6 ++chmod 644 $sysconfdir/resolv.conf.dhclient6 + + if [ x${new_dhcp6_domain_search} != x ] ; then +- echo search ${new_dhcp6_domain_search} /etc/resolv.conf.dhclient6 ++ echo search ${new_dhcp6_domain_search} $sysconfdir/resolv.conf.dhclient6 + fi + shopt -s nocasematch + for nameserver in ${new_dhcp6_name_servers} ; do +@@ -59,11 +61,11 @@ make_resolv_conf() { + else + zone_id= + fi +- echo nameserver ${nameserver}$zone_id /etc/resolv.conf.dhclient6 ++ echo nameserver ${nameserver}$zone_id $sysconfdir/resolv.conf.dhclient6 + done + shopt -u nocasematch + +-mv /etc/resolv.conf.dhclient6 /etc/resolv.conf ++mv $sysconfdir/resolv.conf.dhclient6 $sysconfdir/resolv.conf + fi + } + +-- +1.7.9.5 + ___ Openembedded-core mailing list Openembedded-core@lists.openembedded.org http://lists.openembedded.org/mailman/listinfo/openembedded-core
[OE-core] [PATCH 1/2] dhclient-script: let resolv.conf and resolv.conf.dhclient on the same direcotry
Even though '/etc' is on the readonly partition, it's possible that /etc/resolv.conf is on a separate writable partition. In this situation, we should make sure the temp file resolv.conf.dhclient on the same direcotry. [YOCTO #5624] Signed-off-by: Hongxu Jia hongxu@windriver.com --- meta/recipes-connectivity/dhcp/dhcp.inc| 1 + ...ript-let-resolv.conf-and-resolv.conf.dhcl.patch | 74 ++ 2 files changed, 75 insertions(+) create mode 100644 meta/recipes-connectivity/dhcp/dhcp/dhclient-script-let-resolv.conf-and-resolv.conf.dhcl.patch diff --git a/meta/recipes-connectivity/dhcp/dhcp.inc b/meta/recipes-connectivity/dhcp/dhcp.inc index ad82b57..d8376aa 100644 --- a/meta/recipes-connectivity/dhcp/dhcp.inc +++ b/meta/recipes-connectivity/dhcp/dhcp.inc @@ -16,6 +16,7 @@ SRC_URI = ftp://ftp.isc.org/isc/dhcp/${PV}/dhcp-${PV}.tar.gz \ file://site.h \ file://init-relay file://default-relay \ file://init-server file://default-server \ + file://dhclient-script-let-resolv.conf-and-resolv.conf.dhcl.patch \ file://dhclient.conf file://dhcpd.conf inherit autotools diff --git a/meta/recipes-connectivity/dhcp/dhcp/dhclient-script-let-resolv.conf-and-resolv.conf.dhcl.patch b/meta/recipes-connectivity/dhcp/dhcp/dhclient-script-let-resolv.conf-and-resolv.conf.dhcl.patch new file mode 100644 index 000..db56f70 --- /dev/null +++ b/meta/recipes-connectivity/dhcp/dhcp/dhclient-script-let-resolv.conf-and-resolv.conf.dhcl.patch @@ -0,0 +1,74 @@ +dhclient-script: let resolv.conf and resolv.conf.dhclient on the same direcotry + +Even though '/etc' is on the readonly partition, it's possible that +/etc/resolv.conf is on a separate writable partition. + +In this situation, we should make sure the temp file resolv.conf.dhclient +on the same direcotry. + +Upstream-Status: Pending +Signed-off-by: Hongxu Jia hongxu@windriver.com +--- + client/scripts/linux | 24 +--- + 1 file changed, 13 insertions(+), 11 deletions(-) + +diff --git a/client/scripts/linux b/client/scripts/linux +index 6f8ea4b..fbc6324 100755 +--- a/client/scripts/linux b/client/scripts/linux +@@ -27,27 +27,29 @@ ip=/sbin/ip + + make_resolv_conf() { + if [ x$new_domain_name_servers != x ]; then +-cat /dev/null /etc/resolv.conf.dhclient +-chmod 644 /etc/resolv.conf.dhclient ++sysconfdir=`dirname $(readlink -f '/etc/resolv.conf')` ++cat /dev/null $sysconfdir/resolv.conf.dhclient ++chmod 644 $sysconfdir/resolv.conf.dhclient + if [ x$new_domain_search != x ]; then +- echo search $new_domain_search /etc/resolv.conf.dhclient ++ echo search $new_domain_search $sysconfdir/esolv.conf.dhclient + elif [ x$new_domain_name != x ]; then + # Note that the DHCP 'Domain Name Option' is really just a domain + # name, and that this practice of using the domain name option as + # a search path is both nonstandard and deprecated. +- echo search $new_domain_name /etc/resolv.conf.dhclient ++ echo search $new_domain_name $sysconfdir/resolv.conf.dhclient + fi + for nameserver in $new_domain_name_servers; do +- echo nameserver $nameserver /etc/resolv.conf.dhclient ++ echo nameserver $nameserver $sysconfdir/resolv.conf.dhclient + done + +-mv /etc/resolv.conf.dhclient /etc/resolv.conf ++mv $sysconfdir/resolv.conf.dhclient $sysconfdir/resolv.conf + elif [ x${new_dhcp6_name_servers} != x ] ; then +-cat /dev/null /etc/resolv.conf.dhclient6 +-chmod 644 /etc/resolv.conf.dhclient6 ++sysconfdir=`dirname $(readlink -f '/etc/resolv.conf')` ++cat /dev/null $sysconfdir/resolv.conf.dhclient6 ++chmod 644 $sysconfdir/resolv.conf.dhclient6 + + if [ x${new_dhcp6_domain_search} != x ] ; then +- echo search ${new_dhcp6_domain_search} /etc/resolv.conf.dhclient6 ++ echo search ${new_dhcp6_domain_search} $sysconfdir/resolv.conf.dhclient6 + fi + shopt -s nocasematch + for nameserver in ${new_dhcp6_name_servers} ; do +@@ -59,11 +61,11 @@ make_resolv_conf() { + else + zone_id= + fi +- echo nameserver ${nameserver}$zone_id /etc/resolv.conf.dhclient6 ++ echo nameserver ${nameserver}$zone_id $sysconfdir/resolv.conf.dhclient6 + done + shopt -u nocasematch + +-mv /etc/resolv.conf.dhclient6 /etc/resolv.conf ++mv $sysconfdir/resolv.conf.dhclient6 $sysconfdir/resolv.conf + fi + } + +-- +1.7.9.5 + -- 1.8.1.2 ___ Openembedded-core mailing list Openembedded-core@lists.openembedded.org http://lists.openembedded.org/mailman/listinfo/openembedded-core
Re: [OE-core] [PATCH 1/2] dhclient-script: let resolv.conf and resolv.conf.dhclient on the same direcotry
On Tue, 2013-12-03 at 21:46 +0800, Hongxu Jia wrote: +- echo search $new_domain_search /etc/resolv.conf.dhclient ++ echo search $new_domain_search $sysconfdir/esolv.conf.dhclient Should that be $sysconfdir/resolv.conf.dhclient? p. ___ Openembedded-core mailing list Openembedded-core@lists.openembedded.org http://lists.openembedded.org/mailman/listinfo/openembedded-core
Re: [OE-core] [PATCH 1/2] dhclient-script: let resolv.conf and resolv.conf.dhclient on the same direcotry
On 12/04/2013 06:09 AM, Phil Blundell wrote: On Tue, 2013-12-03 at 21:46 +0800, Hongxu Jia wrote: +- echo search $new_domain_search /etc/resolv.conf.dhclient ++ echo search $new_domain_search $sysconfdir/esolv.conf.dhclient Should that be $sysconfdir/resolv.conf.dhclient? Yes, sorry for the missing, I have updated the git tree to fix this. //Hongxu p. ___ Openembedded-core mailing list Openembedded-core@lists.openembedded.org http://lists.openembedded.org/mailman/listinfo/openembedded-core