split net-snmp-libs into smaller packages

By default `net-snmp-libs` contains all compiled libs.
This commit splits `net-snmp-libs` into subpackages for each library.

This allows for smaller resulting image due to finer packaging.

Resolves openbmc/openbmc#3360

(From meta-openembedded rev: 131eb1f69791dda54557d0f919903cbd73831440)

(From meta-phosphor rev: 5189717bbabf4db394b69ee7179ce18764cd9af0)

Change-Id: Ia2b79be41977723996696c3e549a087aeaf2cab6
Signed-off-by: Alexander Filippov <a.filippov@yadro.com>
Signed-off-by: Khem Raj <raj.khem@gmail.com>
Signed-off-by: Brad Bishop <bradleyb@fuzziesquirrel.com>
diff --git a/meta-openembedded/meta-networking/recipes-protocols/net-snmp/net-snmp_5.7.3.bb b/meta-openembedded/meta-networking/recipes-protocols/net-snmp/net-snmp_5.7.3.bb
index faf73a5..4ea0a59 100644
--- a/meta-openembedded/meta-networking/recipes-protocols/net-snmp/net-snmp_5.7.3.bb
+++ b/meta-openembedded/meta-networking/recipes-protocols/net-snmp/net-snmp_5.7.3.bb
@@ -173,17 +173,21 @@
     fi
 }
 
-PACKAGES += "${PN}-libs ${PN}-mibs ${PN}-server ${PN}-client ${PN}-server-snmpd ${PN}-server-snmptrapd"
+PACKAGES += "${PN}-libs ${PN}-mibs ${PN}-server ${PN}-client \
+             ${PN}-server-snmpd ${PN}-server-snmptrapd \
+             ${PN}-lib-netsnmp ${PN}-lib-agent ${PN}-lib-helpers \
+             ${PN}-lib-mibs ${PN}-lib-trapd"
 
 # perl module
 PACKAGES += "${@bb.utils.contains('PACKAGECONFIG', 'perl', '${PN}-perl-modules', '', d)}"
 
 ALLOW_EMPTY_${PN} = "1"
 ALLOW_EMPTY_${PN}-server = "1"
+ALLOW_EMPTY_${PN}-libs = "1"
 
 FILES_${PN}-perl-modules = "${libdir}/perl/*"
 
-FILES_${PN}-libs = "${libdir}/lib*${SOLIBS}"
+FILES_${PN}-libs = ""
 FILES_${PN}-mibs = "${datadir}/snmp/mibs"
 FILES_${PN}-server-snmpd = "${sbindir}/snmpd \
                             ${sysconfdir}/snmp/snmpd.conf \
@@ -196,6 +200,12 @@
                                 ${systemd_unitdir}/system/snmptrapd.service \
 "
 
+FILES_${PN}-lib-netsnmp = "${libdir}/libnetsnmp${SOLIBS}"
+FILES_${PN}-lib-agent = "${libdir}/libnetsnmpagent${SOLIBS}"
+FILES_${PN}-lib-helpers = "${libdir}/libnetsnmphelpers${SOLIBS}"
+FILES_${PN}-lib-mibs = "${libdir}/libnetsnmpmibs${SOLIBS}"
+FILES_${PN}-lib-trapd = "${libdir}/libnetsnmptrapd${SOLIBS}"
+
 FILES_${PN} = ""
 FILES_${PN}-client = "${bindir}/* ${datadir}/snmp/"
 FILES_${PN}-dbg += "${libdir}/.debug/ ${sbindir}/.debug/ ${bindir}/.debug/"
@@ -219,10 +229,15 @@
 RDEPENDS_${PN} += "${@bb.utils.contains('PACKAGECONFIG', 'perl', 'net-snmp-perl-modules', '', d)}"
 RDEPENDS_${PN} += "net-snmp-client"
 RDEPENDS_${PN}-server-snmpd += "net-snmp-mibs"
-RDEPENDS_${PN}-server-snmptrapd += "net-snmp-server-snmpd"
+RDEPENDS_${PN}-server-snmptrapd += "net-snmp-server-snmpd ${PN}-lib-trapd"
 RDEPENDS_${PN}-server += "net-snmp-server-snmpd net-snmp-server-snmptrapd"
 RDEPENDS_${PN}-client += "net-snmp-mibs net-snmp-libs"
-RDEPENDS_${PN}-libs += "libpci"
+RDEPENDS_${PN}-libs += "libpci \
+                        ${PN}-lib-netsnmp \
+                        ${PN}-lib-agent \
+                        ${PN}-lib-helpers \
+                        ${PN}-lib-mibs \
+"
 RDEPENDS_${PN}-ptest += "perl \
                          perl-module-test \
                          perl-module-file-basename \
diff --git a/meta-phosphor/recipes-connectivity/net-snmp/net-snmp_%.bbappend b/meta-phosphor/recipes-connectivity/net-snmp/net-snmp_%.bbappend
index 03c5c88..8937b5a 100644
--- a/meta-phosphor/recipes-connectivity/net-snmp/net-snmp_%.bbappend
+++ b/meta-phosphor/recipes-connectivity/net-snmp/net-snmp_%.bbappend
@@ -1,13 +1,8 @@
 FILESEXTRAPATHS_prepend := "${THISDIR}/${PN}:"
 
-EXTRA_OECONF += "--disable-mib-loading --disable-agent --disable-applications \
---disable-manuals --disable-scripts --disable-mibs  --disable-embedded-perl \
+EXTRA_OECONF += "--disable-mib-loading \
+--disable-manuals --disable-scripts --disable-embedded-perl \
 --disable-perl-cc-checks --disable-libtool-lock --disable-debugging \
 --disable-snmpv1 --disable-des --disable-privacy --disable-md5 \
---disable-snmptrapd-subagent --disable-set-support --disable-deprecated"
-
-do_install_append() {
-    rm -f ${D}${libdir}/libnetsnmpmibs.so.*
-    rm -f ${D}${libdir}/libnetsnmphelpers.so.*
-    rm -f ${D}${libdir}/libnetsnmpagent.so.*
-}
+--disable-snmptrapd-subagent --disable-set-support --disable-deprecated \
+"
diff --git a/meta-phosphor/recipes-phosphor/network/phosphor-snmp_git.bb b/meta-phosphor/recipes-phosphor/network/phosphor-snmp_git.bb
index d4b477c..ced1480 100644
--- a/meta-phosphor/recipes-phosphor/network/phosphor-snmp_git.bb
+++ b/meta-phosphor/recipes-phosphor/network/phosphor-snmp_git.bb
@@ -26,6 +26,6 @@
 RDEPENDS_${PN} += "libsystemd"
 RDEPENDS_${PN} += "sdbusplus phosphor-dbus-interfaces"
 RDEPENDS_${PN} += "phosphor-logging"
-RDEPENDS_${PN} += "net-snmp-libs"
+RDEPENDS_${PN} += "net-snmp-lib-netsnmp"
 
 S = "${WORKDIR}/git"