summaryrefslogtreecommitdiffstats
path: root/meta-networking/recipes-protocols/net-snmp/net-snmp_5.7.3.bb
diff options
context:
space:
mode:
authorWenlin Kang <wenlin.kang@windriver.com>2017-05-24 17:57:14 +0800
committerJoe MacDonald <joe_macdonald@mentor.com>2017-06-28 10:26:48 -0400
commite86c3fd9c575da66315c39afad0c6ce84fd8a4f8 (patch)
treea68331ea82b1b7b0b20a1e6ca413c3f28748fd61 /meta-networking/recipes-protocols/net-snmp/net-snmp_5.7.3.bb
parent3491e039312e69907ab841948108f1f33a4eb956 (diff)
downloadmeta-openembedded-e86c3fd9c575da66315c39afad0c6ce84fd8a4f8.tar.gz
net-snmp: supported cross compile for the perl embedded and perl modules
The patch solves two issues: 1. Supported cross compile for the perl embedded and perl modules. 2. Solved runtime depend issue. Signed-off-by: Wenlin Kang <wenlin.kang@windriver.com> Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com> Signed-off-by: Joe MacDonald <joe_macdonald@mentor.com>
Diffstat (limited to 'meta-networking/recipes-protocols/net-snmp/net-snmp_5.7.3.bb')
-rw-r--r--meta-networking/recipes-protocols/net-snmp/net-snmp_5.7.3.bb55
1 files changed, 50 insertions, 5 deletions
diff --git a/meta-networking/recipes-protocols/net-snmp/net-snmp_5.7.3.bb b/meta-networking/recipes-protocols/net-snmp/net-snmp_5.7.3.bb
index b60a246a5..2d6887e37 100644
--- a/meta-networking/recipes-protocols/net-snmp/net-snmp_5.7.3.bb
+++ b/meta-networking/recipes-protocols/net-snmp/net-snmp_5.7.3.bb
@@ -26,11 +26,15 @@ SRC_URI = "${SOURCEFORGE_MIRROR}/net-snmp/net-snmp-${PV}.zip \
26 file://0001-get_pid_from_inode-Include-limit.h.patch \ 26 file://0001-get_pid_from_inode-Include-limit.h.patch \
27 file://0001-BUG-a2584-Fix-snmptrap-to-use-clientaddr-from-snmp.c.patch \ 27 file://0001-BUG-a2584-Fix-snmptrap-to-use-clientaddr-from-snmp.c.patch \
28 file://0001-snmplib-UDPIPv6-transport-Add-a-missing-return-state.patch \ 28 file://0001-snmplib-UDPIPv6-transport-Add-a-missing-return-state.patch \
29 file://0001-configure-fix-check-for-enable-perl-cc-checks.patch \
30 file://0002-configure-fix-a-cc-check-issue.patch \
31 file://0003-CHANGES-BUG-2712-Fix-Perl-module-compilation.patch \
32 file://0004-configure-fix-incorrect-variable.patch \
29 " 33 "
30SRC_URI[md5sum] = "9f682bd70c717efdd9f15b686d07baee" 34SRC_URI[md5sum] = "9f682bd70c717efdd9f15b686d07baee"
31SRC_URI[sha256sum] = "e8dfc79b6539b71a6ff335746ce63d2da2239062ad41872fff4354cafed07a3e" 35SRC_URI[sha256sum] = "e8dfc79b6539b71a6ff335746ce63d2da2239062ad41872fff4354cafed07a3e"
32 36
33inherit autotools update-rc.d siteinfo systemd pkgconfig 37inherit autotools-brokensep update-rc.d siteinfo systemd pkgconfig perlnative
34 38
35EXTRA_OEMAKE = "INSTALL_PREFIX=${D} OTHERLDFLAGS='${LDFLAGS}' HOST_CPPFLAGS='${BUILD_CPPFLAGS}'" 39EXTRA_OEMAKE = "INSTALL_PREFIX=${D} OTHERLDFLAGS='${LDFLAGS}' HOST_CPPFLAGS='${BUILD_CPPFLAGS}'"
36 40
@@ -46,8 +50,10 @@ PACKAGECONFIG[libnl] = "--with-nl, --without-nl, libnl"
46PACKAGECONFIG ??= "${@bb.utils.filter('DISTRO_FEATURES', 'ipv6', d)}" 50PACKAGECONFIG ??= "${@bb.utils.filter('DISTRO_FEATURES', 'ipv6', d)}"
47PACKAGECONFIG[ipv6] = "--enable-ipv6,--disable-ipv6,," 51PACKAGECONFIG[ipv6] = "--enable-ipv6,--disable-ipv6,,"
48 52
49EXTRA_OECONF = "--disable-embedded-perl \ 53PACKAGECONFIG[perl] = "--enable-embedded-perl --with-perl-modules=yes, --disable-embedded-perl --with-perl-modules=no,\
50 --with-perl-modules=no \ 54 perl, perl perl-lib"
55
56EXTRA_OECONF = "--enable-shared \
51 --disable-manuals \ 57 --disable-manuals \
52 --with-defaults \ 58 --with-defaults \
53 --with-install-prefix=${D} \ 59 --with-install-prefix=${D} \
@@ -63,12 +69,38 @@ CACHED_CONFIGUREVARS = " \
63 ac_cv_ETC_MNTTAB=/etc/mtab \ 69 ac_cv_ETC_MNTTAB=/etc/mtab \
64 lt_cv_shlibpath_overrides_runpath=yes \ 70 lt_cv_shlibpath_overrides_runpath=yes \
65" 71"
72export PERLPROG="${bindir}/env perl"
73PERLPROG_append = "${@bb.utils.contains('PACKAGECONFIG', 'perl', ' -I${WORKDIR}', '', d)}"
74
75HAS_PERL = "${@bb.utils.contains('PACKAGECONFIG', 'perl', '1', '0', d)}"
66 76
67do_configure_prepend() { 77do_configure_prepend() {
68 export PERLPROG="${bindir}/env perl"
69 sed -i -e "s|I/usr/include|I${STAGING_INCDIR}|g" \ 78 sed -i -e "s|I/usr/include|I${STAGING_INCDIR}|g" \
70 "${S}"/configure \ 79 "${S}"/configure \
71 "${S}"/configure.d/config_os_libs2 80 "${S}"/configure.d/config_os_libs2
81
82 if [ "${HAS_PERL}" = "1" ]; then
83 # this may need to be changed when package perl has any change.
84 cp -f ${STAGING_DIR_TARGET}/usr/lib*/perl/*/Config.pm ${WORKDIR}/
85 cp -f ${STAGING_DIR_TARGET}/usr/lib*/perl/*/Config_heavy.pl ${WORKDIR}/
86 sed -e "s@libpth => '/usr/lib.*@libpth => '${STAGING_DIR_TARGET}/${libdir} ${STAGING_DIR_TARGET}/${base_libdir}',@g" \
87 -e "s@privlibexp => '/usr@privlibexp => '${STAGING_DIR_TARGET}/usr@g" \
88 -e "s@scriptdir => '/usr@scriptdir => '${STAGING_DIR_TARGET}/usr@g" \
89 -e "s@sitearchexp => '/usr@sitearchexp => '${STAGING_DIR_TARGET}/usr@g" \
90 -e "s@sitelibexp => '/usr@sitearchexp => '${STAGING_DIR_TARGET}/usr@g" \
91 -e "s@vendorarchexp => '/usr@vendorarchexp => '${STAGING_DIR_TARGET}/usr@g" \
92 -e "s@vendorlibexp => '/usr@vendorlibexp => '${STAGING_DIR_TARGET}/usr@g" \
93 -i ${WORKDIR}/Config.pm
94 fi
95
96}
97
98do_configure_append() {
99 if [ "${HAS_PERL}" = "1" ]; then
100 sed -e "s@^NSC_INCLUDEDIR=.*@NSC_INCLUDEDIR=${STAGING_DIR_TARGET}\$\{includedir\}@g" \
101 -e "s@^NSC_LIBDIR=-L.*@NSC_LIBDIR=-L${STAGING_DIR_TARGET}\$\{libdir\}@g" \
102 -i ${B}/net-snmp-config
103 fi
72} 104}
73 105
74do_install_append() { 106do_install_append() {
@@ -84,6 +116,12 @@ do_install_append() {
84 -i ${D}${bindir}/net-snmp-create-v3-user 116 -i ${D}${bindir}/net-snmp-create-v3-user
85 sed -e "s@^NSC_SRCDIR=.*@NSC_SRCDIR=.@g" \ 117 sed -e "s@^NSC_SRCDIR=.*@NSC_SRCDIR=.@g" \
86 -i ${D}${bindir}/net-snmp-config 118 -i ${D}${bindir}/net-snmp-config
119
120 if [ "${HAS_PERL}" = "1" ]; then
121 sed -e "s@^NSC_INCLUDEDIR=.*@NSC_INCLUDEDIR=\$\{includedir\}@g" \
122 -e "s@^NSC_LIBDIR=-L.*@NSC_LIBDIR=-L\$\{libdir\}@g" \
123 -i ${D}${bindir}/net-snmp-config
124 fi
87} 125}
88 126
89do_install_ptest() { 127do_install_ptest() {
@@ -122,9 +160,14 @@ net_snmp_sysroot_preprocess () {
122 160
123PACKAGES += "${PN}-libs ${PN}-mibs ${PN}-server ${PN}-client ${PN}-server-snmpd ${PN}-server-snmptrapd" 161PACKAGES += "${PN}-libs ${PN}-mibs ${PN}-server ${PN}-client ${PN}-server-snmpd ${PN}-server-snmptrapd"
124 162
163# perl module
164PACKAGES += "${@bb.utils.contains('PACKAGECONFIG', 'perl', '${PN}-perl-modules', '', d)}"
165
125ALLOW_EMPTY_${PN} = "1" 166ALLOW_EMPTY_${PN} = "1"
126ALLOW_EMPTY_${PN}-server = "1" 167ALLOW_EMPTY_${PN}-server = "1"
127 168
169FILES_${PN}-perl-modules = "${libdir}/perl/*"
170
128FILES_${PN}-libs = "${libdir}/lib*${SOLIBS}" 171FILES_${PN}-libs = "${libdir}/lib*${SOLIBS}"
129FILES_${PN}-mibs = "${datadir}/snmp/mibs" 172FILES_${PN}-mibs = "${datadir}/snmp/mibs"
130FILES_${PN}-server-snmpd = "${sbindir}/snmpd \ 173FILES_${PN}-server-snmpd = "${sbindir}/snmpd \
@@ -158,11 +201,13 @@ SYSTEMD_PACKAGES = "${PN}-server-snmpd \
158SYSTEMD_SERVICE_${PN}-server-snmpd = "snmpd.service" 201SYSTEMD_SERVICE_${PN}-server-snmpd = "snmpd.service"
159SYSTEMD_SERVICE_${PN}-server-snmptrapd = "snmptrapd.service" 202SYSTEMD_SERVICE_${PN}-server-snmptrapd = "snmptrapd.service"
160 203
204RDEPENDS_${PN} += "${@bb.utils.contains('PACKAGECONFIG', 'perl', 'net-snmp-perl-modules', '', d)}"
161RDEPENDS_${PN} += "net-snmp-client" 205RDEPENDS_${PN} += "net-snmp-client"
162RDEPENDS_${PN}-server-snmpd += "net-snmp-mibs" 206RDEPENDS_${PN}-server-snmpd += "net-snmp-mibs"
163RDEPENDS_${PN}-server-snmptrapd += "net-snmp-server-snmpd" 207RDEPENDS_${PN}-server-snmptrapd += "net-snmp-server-snmpd"
164RDEPENDS_${PN}-server += "net-snmp-server-snmpd net-snmp-server-snmptrapd" 208RDEPENDS_${PN}-server += "net-snmp-server-snmpd net-snmp-server-snmptrapd"
165RDEPENDS_${PN}-client += "net-snmp-mibs" 209RDEPENDS_${PN}-client += "net-snmp-mibs net-snmp-libs"
210RDEPENDS_${PN}-libs += "libpci"
166RDEPENDS_${PN}-ptest += "perl \ 211RDEPENDS_${PN}-ptest += "perl \
167 perl-module-test \ 212 perl-module-test \
168 perl-module-file-basename \ 213 perl-module-file-basename \