[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