[Add ubus support for hostapd]

[Description]
Add ubus support for hostapd

[Release-log]
N/A

diff --git a/recipes-connectivity/hostapd/files/hostapd-full.config b/recipes-connectivity/hostapd/files/hostapd-full.config
index 22a367f..4e942a6 100644
--- a/recipes-connectivity/hostapd/files/hostapd-full.config
+++ b/recipes-connectivity/hostapd/files/hostapd-full.config
@@ -396,7 +396,7 @@
 # uBus IPC/RPC System
 # Services can connect to the bus and provide methods
 # that can be called by other services or clients.
-
+CONFIG_UBUS=y
 
 # OpenWrt patch 380-disable-ctrl-iface-mib.patch
 # leads to the MIB only being compiled in if
diff --git a/recipes-connectivity/hostapd/hostapd_2.10.bb b/recipes-connectivity/hostapd/hostapd_2.10.bb
index e6fac22..52f33bb 100644
--- a/recipes-connectivity/hostapd/hostapd_2.10.bb
+++ b/recipes-connectivity/hostapd/hostapd_2.10.bb
@@ -4,7 +4,7 @@
 LICENSE = "BSD-3-Clause"
 LIC_FILES_CHKSUM = "file://hostapd/README;md5=c905478466c90f1cefc0df987c40e172"
 
-DEPENDS = "libnl openssl"
+DEPENDS = "libnl openssl ubus"
 DEPENDS_append = " ${@bb.utils.contains('DISTRO_FEATURES', 'telemetry2_0', 'telemetry', '', d)}"
 LDFLAGS_append = " ${@bb.utils.contains('DISTRO_FEATURES', 'telemetry2_0', ' -ltelemetry_msgsender ', '', d)}"
 RDEPENDS_${PN} += "gawk"
diff --git a/recipes-connectivity/libubox/libubox_git.bbappend b/recipes-connectivity/libubox/libubox_git.bbappend
new file mode 100644
index 0000000..42e6266
--- /dev/null
+++ b/recipes-connectivity/libubox/libubox_git.bbappend
@@ -0,0 +1,4 @@
+SRC_URI_remove = "file://0001-blobmsg-fix-array-out-of-bounds-GCC-10-warning.patch"
+
+#SRCREV = "${AUTOREV}"
+SRCREV = "b14c4688612c05c78ce984d7bde633bce8703b1e"
diff --git a/recipes-connectivity/ubus/files/ubusd.service b/recipes-connectivity/ubus/files/ubusd.service
new file mode 100644
index 0000000..7b9ecfe
--- /dev/null
+++ b/recipes-connectivity/ubus/files/ubusd.service
@@ -0,0 +1,13 @@
+[Unit]
+Description=U-Bus daemon
+After=local-fs.target
+Requires=local-fs.target
+
+[Service]
+ExecStart=/bin/sh -c '@SBINDIR@/ubusd &'
+Type=forking
+Restart=always
+RestartSec=10
+
+[Install]
+WantedBy=multi-user.target
diff --git a/recipes-connectivity/ubus/ubus_git.bb b/recipes-connectivity/ubus/ubus_git.bb
new file mode 100644
index 0000000..08f401d
--- /dev/null
+++ b/recipes-connectivity/ubus/ubus_git.bb
@@ -0,0 +1,27 @@
+# Copyright (C) 2015 Khem Raj <raj.khem@gmail.com>
+# Released under the MIT license (see COPYING.MIT for the terms)
+
+DESCRIPTION = "OpenWrt system message/RPC bus"
+HOMEPAGE = "http://git.openwrt.org/?p=project/libubox.git;a=summary"
+LICENSE = "BSD"
+LIC_FILES_CHKSUM = "file://ubusd.c;beginline=1;endline=12;md5=1b6a7aecd35bdd25de35da967668485d"
+SECTION = "base"
+DEPENDS = "json-c libubox"
+
+SRC_URI = "git://git.openwrt.org/project/ubus.git"
+
+SRCREV = "4fc532c8a55ba8217ad67d7fd47c5eb9a8aba044"
+PV = "1.0.0+git${SRCPV}"
+
+S = "${WORKDIR}/git"
+
+inherit cmake pkgconfig
+
+EXTRA_OECMAKE = "-DBUILD_EXAMPLES=OFF -DBUILD_LUA=OFF -DBUILD_STATIC=ON"
+
+do_install_append () {
+    install -dm 0755 ${D}/sbin
+    ln -s /usr/sbin/ubusd ${D}/sbin/ubusd
+}
+
+TOOLCHAIN = "gcc"
diff --git a/recipes-connectivity/ubus/ubus_git.bbappend b/recipes-connectivity/ubus/ubus_git.bbappend
new file mode 100644
index 0000000..9b6236c
--- /dev/null
+++ b/recipes-connectivity/ubus/ubus_git.bbappend
@@ -0,0 +1,93 @@
+################################################################################
+#
+# ubus_git.bbappend
+#
+# Copyright (c) 2013-2021 Inango Systems LTD.
+#
+# Author: Inango Systems LTD. <support@inango-systems.com>
+# Creation Date: 20 Feb 2021
+#
+# The author may be reached at support@inango-systems.com
+#
+# Redistribution and use in source and binary forms, with or without modification,
+# are permitted provided that the following conditions are met:
+#
+# 1. Redistributions of source code must retain the above copyright notice,
+# this list of conditions and the following disclaimer.
+#
+# 2. Redistributions in binary form must reproduce the above copyright notice,
+# this list of conditions and the following disclaimer in the documentation
+# and/or other materials provided with the distribution.
+#
+# Subject to the terms and conditions of this license, each copyright holder
+# and contributor hereby grants to those receiving rights under this license
+# a perpetual, worldwide, non-exclusive, no-charge, royalty-free, irrevocable
+# (except for failure to satisfy the conditions of this license) patent license
+# to make, have made, use, offer to sell, sell, import, and otherwise transfer
+# this software, where such license applies only to those patent claims, already
+# acquired or hereafter acquired, licensable by such copyright holder or contributor
+# that are necessarily infringed by:
+#
+# (a) their Contribution(s) (the licensed copyrights of copyright holders and
+# non-copyrightable additions of contributors, in source or binary form) alone;
+# or
+#
+# (b) combination of their Contribution(s) with the work of authorship to which
+# such Contribution(s) was added by such copyright holder or contributor, if,
+# at the time the Contribution is added, such addition causes such combination
+# to be necessarily infringed. The patent license shall not apply to any other
+# combinations which include the Contribution.
+#
+# Except as expressly stated above, no rights or licenses from any copyright
+# holder or contributor is granted under this license, whether expressly, by
+# implication, estoppel or otherwise.
+#
+# DISCLAIMER
+#
+# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+# AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+# IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+# ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDERS OR CONTRIBUTORS BE
+# LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+# DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
+# SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
+# CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+# OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE
+# USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+#
+# NOTE
+#
+# This is part of a management middleware software package called MMX that was developed by Inango Systems Ltd.
+#
+# This version of MMX provides web and command-line management interfaces.
+#
+# Please contact us at Inango at support@inango-systems.com if you would like to hear more about
+# - other management packages, such as SNMP, TR-069 or Netconf
+# - how we can extend the data model to support all parts of your system
+# - professional sub-contract and customization services
+#
+################################################################################
+FILESEXTRAPATHS_prepend := "${THISDIR}/files:"
+
+inherit ${@d.getVar('DISTRO', True) == 'rdk' and 'systemd' or 'base'}
+
+SRC_URI_append_rdk += "\
+    file://ubusd.service \
+"
+
+SYSTEMD_SERVICE_${PN}_rdk = "ubusd.service"
+
+do_install_append_rdk() {
+    # Install systemd unit files
+    install -d ${D}${systemd_unitdir}/system
+    install -m 0644 ${WORKDIR}/ubusd.service ${D}${systemd_unitdir}/system
+        sed -i -e 's,@SBINDIR@,${sbindir},g' \
+            ${D}${systemd_unitdir}/system/ubusd.service
+}
+
+PACKAGES += "\
+    ${PN}d \
+"
+
+FILES_${PN}d += "${sbindir} ${base_sbindir}"
+FILES_${PN}_remove += "/usr/sbin/* /sbin/*"
diff --git a/recipes-connectivity/wpa-supplicant/files/wpa_supplicant-full.config b/recipes-connectivity/wpa-supplicant/files/wpa_supplicant-full.config
index 1397111..de3302c 100644
--- a/recipes-connectivity/wpa-supplicant/files/wpa_supplicant-full.config
+++ b/recipes-connectivity/wpa-supplicant/files/wpa_supplicant-full.config
@@ -617,7 +617,7 @@
 # uBus IPC/RPC System
 # Services can connect to the bus and provide methods
 # that can be called by other services or clients.
-
+CONFIG_UBUS=y
 
 # OpenWrt patch 380-disable-ctrl-iface-mib.patch
 # leads to the MIB only being compiled in if
diff --git a/recipes-connectivity/wpa-supplicant/wpa-supplicant_2.10.bb b/recipes-connectivity/wpa-supplicant/wpa-supplicant_2.10.bb
index 8e9f458..0a06703 100644
--- a/recipes-connectivity/wpa-supplicant/wpa-supplicant_2.10.bb
+++ b/recipes-connectivity/wpa-supplicant/wpa-supplicant_2.10.bb
@@ -6,7 +6,7 @@
 LICENSE = "BSD-3-Clause"
 LIC_FILES_CHKSUM = "file://hostapd/README;md5=c905478466c90f1cefc0df987c40e172"
 
-DEPENDS = "dbus libnl"
+DEPENDS = "dbus libnl ubus"
 FILESEXTRAPATHS_prepend := "${THISDIR}/files:"
 FILESEXTRAPATHS_prepend := "${THISDIR}/files/patches:"