# # 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:=1 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz PKG_SOURCE_URL:=@SF/net-snmp PKG_MD5SUM:=d4a3459e1577d0efa8d96ca70a885e53 PKG_MAINTAINER:=Stijn Tintel PKG_LICENSE:=MIT BSD-3-Clause-Clear 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:=+PACKAGE_libnl-core:libnl-core 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) TITLE:=Open source SNMP implementation (daemon) DEPENDS:=+PACKAGE_libnl-core:libnl-core endef define Package/snmpd-static/description $(call Package/net-snmp/Default/description) . This package contains the SNMP agent, statically linked. 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) 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 \ $(call autoconf_bool,CONFIG_IPV6,ipv6) \ ifeq ($(CONFIG_IPV6),y) SNMP_TRANSPORTS_INCLUDED+= UDPIPv6 endif TARGET_LDFLAGS += -L$(TOOLCHAIN_DIR)/usr/lib ifdef CONFIG_PACKAGE_snmpd-static define Build/Compile/static $(MAKE) -C $(PKG_BUILD_DIR)/agent \ LDFLAGS="$(TARGET_LDFLAGS) -lm -static" \ EXEEXT="-static" \ snmpd-static endef endif define Build/Compile $(MAKE) -C $(PKG_BUILD_DIR) \ INSTALL_PREFIX="$(PKG_INSTALL_DIR)" \ LDFLAGS="$(TARGET_LDFLAGS) -lm -lc" \ all install $(Build/Compile/static) 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 define Package/snmpd-static/conffiles /etc/config/snmpd endef define Package/snmpd-static/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_BUILD_DIR)/agent/snmpd-static $(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))