[oe] [meta-openwrt][PATCH 5/5] netifd: replace hardcoded lib string to a generic value
Jagadeesh Krishnanjanappa
jkrishnanjanappa at mvista.com
Thu Mar 1 13:35:54 UTC 2018
1. If libdir is other than /usr/lib/ , then netifd recipe fails to
build with below error:
-- snip --
| cp: target ‘.../tmp_new/work/corei7-64-montavista-linux/netifd/git-r0/image/lib64/netifd/’ is not a directory
| WARNING: .../tmp_new/work/corei7-64-montavista-linux/netifd/git-r0/temp/run.do_install.27647:1 exit 1 from 'cp -dR
--preserve=mode,links .../tmp_new/work/corei7-64-montavista-linux/netifd/git-r0/git/scripts/*
.../tmp_new/work/corei7-64-montavista-linux/netifd/git-r0/image/lib64/netifd/'
-- snip --
2. Also replace hardcoded '/lib' string with ${base_libdir} in network scripts, so that
dependent scripts are called from correct paths.
3. Include default.script in an alternative binary naming scheme, as netifd's default.script
conflicts with busybox-udhcpc's default.script as below during
openwrt-image-base:do_rootfs :
-- snip --
Error: Transaction check error:
file /usr/share/udhcpc/default.script conflicts between attempted installs of busybox-udhcpc-1.24.1-r0.2.corei7_64 and netifd-git-r0.corei7_64
-- snip --
Signed-off-by: Jagadeesh Krishnanjanappa <jkrishnanjanappa at mvista.com>
---
recipes-core/netifd/netifd_git.bb | 30 +++++++++++++++++++++---------
1 file changed, 21 insertions(+), 9 deletions(-)
diff --git a/recipes-core/netifd/netifd_git.bb b/recipes-core/netifd/netifd_git.bb
index 755518b..140b76b 100644
--- a/recipes-core/netifd/netifd_git.bb
+++ b/recipes-core/netifd/netifd_git.bb
@@ -27,7 +27,13 @@ SRCREV_openwrt = "${OPENWRT_SRCREV}"
OECMAKE_C_FLAGS += "-I${STAGING_INCDIR}/libnl3 -Wno-error=cpp"
+do_configure_prepend () {
+ # replace hardcoded '/lib/' with '${base_libdir}/'
+ grep -rnl "/lib/" ${S}/openwrt/package/network/config/netifd/ | xargs sed -i "s:/lib/:${base_libdir}/:g"
+}
+
do_install_append() {
+ install -d ${D}${base_libdir}/netifd/
# cp because recursive
cp -dR --preserve=mode,links ${S}/openwrt/package/network/config/netifd/files/* ${D}/
cp -dR --preserve=mode,links ${S}/scripts/* ${D}${base_libdir}/netifd/
@@ -50,23 +56,29 @@ do_install_append() {
install -dm 0755 ${D}/etc/modules.d ${D}/etc/modules-load.d
echo "bridge" >${D}/etc/modules.d/30-bridge
echo "bridge" >${D}/etc/modules-load.d/bridge.conf
+
+ # Remove duplicate files under /lib/
+ rm -rf ${D}/lib/
+
}
-ALTERNATIVE_${PN} = "ifup ifdown"
+ALTERNATIVE_${PN} = "ifup ifdown default.script"
ALTERNATIVE_PRIORITY = "40"
+ALTERNATIVE_PRIORITY_pkg[default.script] = "60"
ALTERNATIVE_LINK_NAME[ifup] = "${base_sbindir}/ifup"
ALTERNATIVE_LINK_NAME[ifdown] = "${base_sbindir}/ifdown"
+ALTERNATIVE_LINK_NAME[default.script] = "/usr/share/udhcpc/default.script"
FILES_${PN} += "\
- /usr/share/udhcpc/default.script \
- /lib/netifd/dhcp.script \
- /lib/netifd/utils.sh \
- /lib/netifd/netifd-wireless.sh \
- /lib/netifd/netifd-proto.sh \
- /lib/netifd/proto/dhcp.sh \
- /lib/network/config.sh \
- /lib/functions/network.sh \
+ /usr/share/udhcpc/default.script* \
+ ${base_libdir}/netifd/dhcp.script \
+ ${base_libdir}/netifd/utils.sh \
+ ${base_libdir}/netifd/netifd-wireless.sh \
+ ${base_libdir}/netifd/netifd-proto.sh \
+ ${base_libdir}/netifd/proto/dhcp.sh \
+ ${base_libdir}/network/config.sh \
+ ${base_libdir}/functions/network.sh \
${@bb.utils.contains('IMAGE_INSTALL', 'base-files ', '', '${sysconfdir}/config/network', d)} \
${@bb.utils.contains('COMBINED_FEATURES', 'wifi', '/sbin/wifi', '', d)} \
"
--
2.7.4
More information about the Openembedded-devel
mailing list