Files
Stijn Tintel f492265424 net-snmp: add engineID config options
According to the snmpd.conf man page, the engineID of an snmp agent
should be consistent through time. However, it seems that the engineID
changes every reboot. Add options to configure how the engineID is
generated. The default setting generates it based on the MAC address of
the eth0 interface.

Signed-off-by: Stijn Tintel <stijn@linux-ipv6.be>
2017-02-15 13:12:22 +01:00

253 lines
5.9 KiB
Makefile

#
# Copyright (C) 2006-2017 OpenWrt.org
#
# This is free software, licensed under the GNU General Public License v2.
# See /LICENSE for more information.
#
include $(TOPDIR)/rules.mk
PKG_NAME:=net-snmp
PKG_VERSION:=5.7.3
PKG_RELEASE:=3
PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
PKG_SOURCE_URL:=@SF/net-snmp
PKG_MD5SUM:=d4a3459e1577d0efa8d96ca70a885e53
PKG_MAINTAINER:=Stijn Tintel <stijn@linux-ipv6.be>
PKG_LICENSE:=MIT BSD-3-Clause-Clear
PKG_FIXUP:=autoreconf
include $(INCLUDE_DIR)/package.mk
define Package/net-snmp/Default
SECTION:=net
CATEGORY:=Network
URL:=http://www.net-snmp.org/
endef
define Package/net-snmp/Default/description
Simple Network Management Protocol (SNMP) is a widely used protocol for
monitoring the health and welfare of network equipment (eg. routers),
computer equipment and even devices like UPSs. Net-SNMP is a suite of
applications used to implement SNMP v1, SNMP v2c and SNMP v3 using both
IPv4 and IPv6.
endef
define Package/libnetsnmp
$(call Package/net-snmp/Default)
SECTION:=libs
CATEGORY:=Libraries
DEPENDS:=+libnl-tiny
TITLE:=Open source SNMP implementation (libraries)
endef
define Package/libnetsnmp/description
$(call Package/net-snmp/Default/description)
.
This package contains shared libraries, needed by other programs.
endef
define Package/snmp-mibs
$(call Package/net-snmp/Default)
TITLE:=Open source SNMP implementation (MIB-files)
endef
define Package/snmp-mibs/description
$(call Package/net-snmp/Default/description)
.
This package contains SNMP MIB-Files.
endef
define Package/snmp-utils
$(call Package/net-snmp/Default)
DEPENDS:=+libnetsnmp
TITLE:=Open source SNMP implementation (utilities)
endef
define Package/snmp-utils/description
$(call Package/net-snmp/Default/description)
.
This package contains SNMP client utilities.
endef
define Package/snmpd
$(call Package/net-snmp/Default)
DEPENDS:=+libnetsnmp
TITLE:=Open source SNMP implementation (daemon)
endef
define Package/snmpd/description
$(call Package/net-snmp/Default/description)
.
This package contains the SNMP agent, dynamically linked.
endef
define Package/snmpd-static
$(call Package/net-snmp/Default)
DEPENDS:=+snmpd
TITLE:=Open source SNMP implementation (daemon)
endef
SNMP_MIB_MODULES_INCLUDED = \
agentx \
host/hr_device \
host/hr_disk \
host/hr_filesys \
host/hr_network \
host/hr_partition \
host/hr_proc \
host/hr_storage \
host/hr_system \
ieee802dot11 \
if-mib/ifXTable \
mibII/at \
mibII/icmp \
mibII/ifTable \
mibII/ip \
mibII/snmp_mib \
mibII/sysORTable \
mibII/system_mib \
mibII/tcp \
mibII/udp \
mibII/vacm_context \
mibII/vacm_vars \
snmpv3/snmpEngine \
snmpv3/snmpMPDStats \
snmpv3/usmConf \
snmpv3/usmStats \
snmpv3/usmUser \
tunnel \
ucd-snmp/disk \
ucd-snmp/dlmod \
ucd-snmp/extensible \
ucd-snmp/loadave \
ucd-snmp/memory \
ucd-snmp/pass \
ucd-snmp/pass_persist \
ucd-snmp/proc \
ucd-snmp/vmstat \
util_funcs \
utilities/execute \
SNMP_MIB_MODULES_EXCLUDED = \
agent_mibs \
disman/event \
disman/schedule \
hardware \
host \
if-mib \
mibII \
notification \
notification-log-mib \
snmpv3mibs \
target \
tcp-mib \
ucd_snmp \
udp-mib \
utilities \
SNMP_TRANSPORTS_INCLUDED = Callback UDP Unix
SNMP_TRANSPORTS_EXCLUDED = TCP TCPIPv6
TARGET_CFLAGS += $(FPIC)
TARGET_CPPFLAGS += -I$(STAGING_DIR)/usr/include/libnl-tiny
CONFIGURE_ARGS += \
--enable-mfd-rewrites \
--enable-shared \
--enable-static \
--with-endianness=$(if $(CONFIG_BIG_ENDIAN),big,little) \
--with-logfile=/var/log/snmpd.log \
--with-persistent-directory=/usr/lib/snmp/ \
--with-default-snmp-version=1 \
--with-sys-contact=root@localhost \
--with-sys-location=Unknown \
--enable-applications \
--disable-debugging \
--disable-manuals \
--disable-scripts \
--with-out-mib-modules="$(SNMP_MIB_MODULES_EXCLUDED)" \
--with-mib-modules="$(SNMP_MIB_MODULES_INCLUDED)" \
--with-out-transports="$(SNMP_TRANSPORTS_EXCLUDED)" \
--with-transports="$(SNMP_TRANSPORTS_INCLUDED)" \
--without-openssl \
--without-libwrap \
--without-rpm \
--without-zlib \
--with-nl \
$(call autoconf_bool,CONFIG_IPV6,ipv6) \
CONFIGURE_VARS += \
ac_cv_header_netlink_netlink_h=yes \
netsnmp_cv_func_nl_connect_LIBS=-lnl-tiny \
ifeq ($(CONFIG_IPV6),y)
SNMP_TRANSPORTS_INCLUDED+= UDPIPv6
endif
TARGET_LDFLAGS += -L$(TOOLCHAIN_DIR)/usr/lib
define Build/Compile
$(MAKE) -C $(PKG_BUILD_DIR) \
INSTALL_PREFIX="$(PKG_INSTALL_DIR)" \
LDFLAGS="$(TARGET_LDFLAGS) -lm -lc" \
all install
endef
define Build/InstallDev
$(INSTALL_DIR) $(2)/bin
$(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/bin/net-snmp-config $(2)/bin/
$(SED) 's,=/usr,=$(STAGING_DIR)/usr,g' $(2)/bin/net-snmp-config
$(INSTALL_DIR) $(1)/usr/include
$(CP) $(PKG_INSTALL_DIR)/usr/include/net-snmp $(1)/usr/include/
$(INSTALL_DIR) $(1)/usr/lib
$(CP) $(PKG_INSTALL_DIR)/usr/lib/libnetsnmp{,agent,helpers,mibs}.{a,so*} $(1)/usr/lib/
endef
define Package/libnetsnmp/install
$(INSTALL_DIR) $(1)/usr/lib
$(CP) $(PKG_INSTALL_DIR)/usr/lib/libnetsnmp{,agent,helpers,mibs}.so.* $(1)/usr/lib/
endef
define Package/snmp-mibs/install
$(INSTALL_DIR) $(1)/usr/share/snmp/mibs
$(INSTALL_DATA) $(PKG_INSTALL_DIR)/usr/share/snmp/mibs/* $(1)/usr/share/snmp/mibs/
endef
define Package/snmp-utils/install
$(INSTALL_DIR) $(1)/usr/bin
$(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/bin/snmp{get,set,status,test,trap,walk} $(1)/usr/bin/
endef
define Package/snmpd/conffiles
/etc/config/snmpd
endef
define Package/snmpd/install
$(INSTALL_DIR) $(1)/etc/config
$(INSTALL_DATA) ./files/snmpd.conf $(1)/etc/config/snmpd
$(INSTALL_DIR) $(1)/etc/snmp
ln -sf /var/run/snmpd.conf $(1)/etc/snmp/
$(INSTALL_DIR) $(1)/etc/init.d
$(INSTALL_BIN) ./files/snmpd.init $(1)/etc/init.d/snmpd
$(INSTALL_DIR) $(1)/usr/sbin
$(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/sbin/snmpd $(1)/usr/sbin/snmpd
endef
$(eval $(call BuildPackage,libnetsnmp))
$(eval $(call BuildPackage,snmp-mibs))
$(eval $(call BuildPackage,snmp-utils))
$(eval $(call BuildPackage,snmpd))
$(eval $(call BuildPackage,snmpd-static))