mirror of
https://git.yoctoproject.org/poky
synced 2026-04-26 18:32:13 +02:00
dhcp: Workaround busybox limitation in Linux dhclient-script
Busybox's implementation of chown and chmod doesn't provide a "--reference" option used in the latest version of dhclient-script. This change works around that limitation by using stat to read ownership and permissions flags and simple chown/chmod calls supported in both coreutils and busybox. Patch submitted upstream to ISC, tracked as bug 48771. (From OE-Core rev: a311013e1fd0e7b874dfe11bb3cdf4839cd91c9f) Signed-off-by: Haris Okanovic <haris.okanovic@ni.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
This commit is contained in:
committed by
Richard Purdie
parent
1729e1db78
commit
41647c5917
@@ -0,0 +1,65 @@
|
||||
From eec0503cfc36f63d777f5cb3f2719cecedcb8468 Mon Sep 17 00:00:00 2001
|
||||
From: Haris Okanovic <haris.okanovic@ni.com>
|
||||
Date: Mon, 7 Jan 2019 13:22:09 -0600
|
||||
Subject: [PATCH] Workaround busybox limitation in Linux dhclient-script
|
||||
|
||||
Busybox is a lightweight implementation of coreutils commonly used on
|
||||
space-constrained embedded Linux distributions. It's implementation of
|
||||
chown and chmod doesn't provide a "--reference" option added to
|
||||
client/scripts/linux as of commit 9261cb14. This change works around
|
||||
that limitation by using stat to read ownership and permissions flags
|
||||
and simple chown/chmod calls supported in both coreutils and busybox.
|
||||
|
||||
modified: client/scripts/linux
|
||||
|
||||
Signed-off-by: Haris Okanovic <haris.okanovic@ni.com>
|
||||
Upstream-Status: Pending [ISC-Bugs #48771]
|
||||
---
|
||||
client/scripts/linux | 17 +++++++++++++----
|
||||
1 file changed, 13 insertions(+), 4 deletions(-)
|
||||
|
||||
diff --git a/client/scripts/linux b/client/scripts/linux
|
||||
index 0c429697..2435a44b 100755
|
||||
--- a/client/scripts/linux
|
||||
+++ b/client/scripts/linux
|
||||
@@ -32,6 +32,17 @@
|
||||
# if your system holds ip tool in a non-standard location.
|
||||
ip=/sbin/ip
|
||||
|
||||
+chown_chmod_by_reference() {
|
||||
+ local reference_file="$1"
|
||||
+ local target_file="$2"
|
||||
+
|
||||
+ local owner=$(stat -c "%u:%g" "$reference_file")
|
||||
+ local perm=$(stat -c "%a" "$reference_file")
|
||||
+
|
||||
+ chown "$owner" "$target_file"
|
||||
+ chmod "$perm" "$target_file"
|
||||
+}
|
||||
+
|
||||
# update /etc/resolv.conf based on received values
|
||||
# This updated version mostly follows Debian script by Andrew Pollock et al.
|
||||
make_resolv_conf() {
|
||||
@@ -74,8 +85,7 @@ make_resolv_conf() {
|
||||
fi
|
||||
|
||||
if [ -f /etc/resolv.conf ]; then
|
||||
- chown --reference=/etc/resolv.conf $new_resolv_conf
|
||||
- chmod --reference=/etc/resolv.conf $new_resolv_conf
|
||||
+ chown_chmod_by_reference /etc/resolv.conf $new_resolv_conf
|
||||
fi
|
||||
mv -f $new_resolv_conf /etc/resolv.conf
|
||||
# DHCPv6
|
||||
@@ -101,8 +111,7 @@ make_resolv_conf() {
|
||||
fi
|
||||
|
||||
if [ -f /etc/resolv.conf ]; then
|
||||
- chown --reference=/etc/resolv.conf $new_resolv_conf
|
||||
- chmod --reference=/etc/resolv.conf $new_resolv_conf
|
||||
+ chown_chmod_by_reference /etc/resolv.conf $new_resolv_conf
|
||||
fi
|
||||
mv -f $new_resolv_conf /etc/resolv.conf
|
||||
fi
|
||||
--
|
||||
2.20.0
|
||||
|
||||
@@ -11,6 +11,7 @@ SRC_URI += "file://0001-define-macro-_PATH_DHCPD_CONF-and-_PATH_DHCLIENT_CON.pat
|
||||
file://0013-fixup_use_libbind.patch \
|
||||
file://0001-master-Added-includes-of-new-BIND9-compatibility-hea.patch \
|
||||
file://0001-Fix-a-NSUPDATE-compiling-issue.patch \
|
||||
file://0001-workaround-busybox-limitation-in-linux-dhclient-script.patch \
|
||||
"
|
||||
|
||||
SRC_URI[md5sum] = "18c7f4dcbb0a63df25098216d47b1ede"
|
||||
|
||||
Reference in New Issue
Block a user