From 680ed499d4094154c01a9c0c97b91499bb508d39 Mon Sep 17 00:00:00 2001
From: nico <nico@3c298f89-4303-0410-b956-a3cf2f4a3e73>
Date: Thu, 20 Oct 2005 09:05:51 +0000
Subject: [PATCH] add an snmpd-static package

git-svn-id: svn://svn.openwrt.org/openwrt/trunk@2192 3c298f89-4303-0410-b956-a3cf2f4a3e73
---
 openwrt/package/Makefile                      |  2 +-
 openwrt/package/net-snmp/Config.in            | 37 ++++++++---
 openwrt/package/net-snmp/Makefile             | 66 ++++++++++++-------
 .../net-snmp/ipkg/snmpd-static.conffiles      |  2 +
 .../net-snmp/ipkg/snmpd-static.control        |  9 +++
 5 files changed, 84 insertions(+), 32 deletions(-)
 create mode 100644 openwrt/package/net-snmp/ipkg/snmpd-static.conffiles
 create mode 100644 openwrt/package/net-snmp/ipkg/snmpd-static.control

diff --git a/openwrt/package/Makefile b/openwrt/package/Makefile
index 7779c0556..caa5c91b3 100644
--- a/openwrt/package/Makefile
+++ b/openwrt/package/Makefile
@@ -119,7 +119,7 @@ package-$(BR2_PACKAGE_MYSQL) += mysql
 package-$(BR2_PACKAGE_NANO) += nano
 package-$(BR2_PACKAGE_NCURSES) += ncurses
 package-$(BR2_COMPILE_NDISC6) += ndisc
-package-$(BR2_PACKAGE_NET_SNMP) += net-snmp
+package-$(BR2_COMPILE_NET_SNMP) += net-snmp
 package-$(BR2_PACKAGE_NETSTAT_NAT) += netstat-nat
 package-$(BR2_PACKAGE_NFS_SERVER) += nfs-server
 package-$(BR2_PACKAGE_NMAP) += nmap
diff --git a/openwrt/package/net-snmp/Config.in b/openwrt/package/net-snmp/Config.in
index 7e1b3b5b5..a18e18ea5 100644
--- a/openwrt/package/net-snmp/Config.in
+++ b/openwrt/package/net-snmp/Config.in
@@ -1,16 +1,16 @@
 menu "net-snmp - Open source SNMP (Simple Network Management Protocol) implementation"
 
-config BR2_PACKAGE_NET_SNMP
+config BR2_COMPILE_NET_SNMP
 	bool
 	default n
-	depends BR2_PACKAGE_LIBNETSNMP
+	depends BR2_PACKAGE_LIBNETSNMP || BR2_PACKAGE_SNMP_UTILS || BR2_PACKAGE_SNMPD || BR2_PACKAGE_SNMPD_STATIC
+	select BR2_PACKAGE_LIBELF
 
 config BR2_PACKAGE_LIBNETSNMP
 	prompt "libnetsnmp - SNMP shared libraries"
 	tristate
 	default m if CONFIG_DEVEL
-	select BR2_PACKAGE_NET_SNMP
-	select BR2_PACKAGE_LIBELF
+	select BR2_COMPILE_NET_SNMP
 	help
 	  Simple Network Management Protocol (SNMP) is a widely used 
 	  protocol for monitoring the health and welfare of network 
@@ -23,9 +23,28 @@ config BR2_PACKAGE_LIBNETSNMP
 	  This package contains shared libraries, needed by other programs.
 	  
 
+config BR2_PACKAGE_SNMP_UTILS
+	prompt "snmp-utils - SNMP client utilities"
+	tristate
+	select BR2_COMPILE_NET_SNMP
+	select BR2_PACKAGE_LIBNETSNMP
+	default m if CONFIG_DEVEL
+	help
+	  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.
+	  
+	  http://www.net-snmp.org/
+	  
+	  This package contains the SNMP client utilities.
+	  
+
 config BR2_PACKAGE_SNMPD
 	prompt "snmpd - SNMP agent"
 	tristate
+	select BR2_COMPILE_NET_SNMP
 	select BR2_PACKAGE_LIBNETSNMP
 	default m if CONFIG_DEVEL
 	help
@@ -37,13 +56,13 @@ config BR2_PACKAGE_SNMPD
 	  
 	  http://www.net-snmp.org/
 	  
-	  This package contains the SNMP agent.
+	  This package contains the SNMP agent, dynamically linked.
 	  
 
-config BR2_PACKAGE_SNMP_UTILS
-	prompt "snmp-utils - SNMP client utilities"
+config BR2_PACKAGE_SNMPD_STATIC
+	prompt "snmpd-static - SNMP agent (static)"
 	tristate
-	select BR2_PACKAGE_LIBNETSNMP
+	select BR2_COMPILE_NET_SNMP
 	default m if CONFIG_DEVEL
 	help
 	  Simple Network Management Protocol (SNMP) is a widely used 
@@ -54,7 +73,7 @@ config BR2_PACKAGE_SNMP_UTILS
 	  
 	  http://www.net-snmp.org/
 	  
-	  This package contains the SNMP client utilities.
+	  This package contains the SNMP agent, statically linked.
 	  
 
 endmenu
diff --git a/openwrt/package/net-snmp/Makefile b/openwrt/package/net-snmp/Makefile
index 95e01f661..fef44d5ce 100644
--- a/openwrt/package/net-snmp/Makefile
+++ b/openwrt/package/net-snmp/Makefile
@@ -96,36 +96,37 @@ include $(TOPDIR)/package/rules.mk
 
 $(eval $(call PKG_template,LIBNETSNMP,libnetsnmp,$(PKG_VERSION)-$(PKG_RELEASE),$(ARCH)))
 $(eval $(call PKG_template,SNMPD,snmpd,$(PKG_VERSION)-$(PKG_RELEASE),$(ARCH)))
+$(eval $(call PKG_template,SNMPD_STATIC,snmpd-static,$(PKG_VERSION)-$(PKG_RELEASE),$(ARCH)))
 $(eval $(call PKG_template,SNMP_UTILS,snmp-utils,$(PKG_VERSION)-$(PKG_RELEASE),$(ARCH)))
 
 $(PKG_BUILD_DIR)/.configured:
-	(cd $(PKG_BUILD_DIR); rm -rf config.{cache,status} ; \
+	( cd $(PKG_BUILD_DIR); rm -rf config.{cache,status}; \
 		$(TARGET_CONFIGURE_OPTS) \
 		CFLAGS="$(TARGET_CFLAGS)" \
 		CPPFLAGS="-I$(STAGING_DIR)/usr/include -I$(STAGING_DIR)/include" \
 		LDFLAGS="-L$(STAGING_DIR)/usr/lib -L$(STAGING_DIR)/lib" \
 		ac_cv_header_pcap_h=no \
 		./configure \
-		  --target=$(GNU_TARGET_NAME) \
-		  --host=$(GNU_TARGET_NAME) \
-		  --build=$(GNU_HOST_NAME) \
-		  --program-prefix="" \
-		  --program-suffix="" \
-		  --prefix=/usr \
-		  --exec-prefix=/usr \
-		  --bindir=/usr/bin \
-		  --datadir=/usr/share \
-		  --includedir=/usr/include \
-		  --infodir=/usr/share/info \
-		  --libdir=/usr/lib \
-		  --libexecdir=/usr/lib \
-		  --localstatedir=/var \
-		  --mandir=/usr/share/man \
-		  --sbindir=/usr/sbin \
-		  --sysconfdir=/etc \
-		  $(DISABLE_LARGEFILE) \
-		  $(DISABLE_NLS) \
-		  $(PKG_CONFIGURE_OPTIONS) \
+			--target=$(GNU_TARGET_NAME) \
+			--host=$(GNU_TARGET_NAME) \
+			--build=$(GNU_HOST_NAME) \
+			--program-prefix="" \
+			--program-suffix="" \
+			--prefix=/usr \
+			--exec-prefix=/usr \
+			--bindir=/usr/bin \
+			--datadir=/usr/share \
+			--includedir=/usr/include \
+			--infodir=/usr/share/info \
+			--libdir=/usr/lib \
+			--libexecdir=/usr/lib \
+			--localstatedir=/var \
+			--mandir=/usr/share/man \
+			--sbindir=/usr/sbin \
+			--sysconfdir=/etc \
+			$(DISABLE_LARGEFILE) \
+			$(DISABLE_NLS) \
+			$(PKG_CONFIGURE_OPTIONS) \
 	);
 	touch $@
 
@@ -135,6 +136,15 @@ $(PKG_BUILD_DIR)/.built:
 	$(MAKE) -C $(PKG_BUILD_DIR) \
 		INSTALL_PREFIX="$(PKG_INSTALL_DIR)" \
 		all install
+	( cd $(PKG_INSTALL_DIR); mv ./usr/sbin/snmpd ./usr/sbin/snmpd-shared; )
+ifneq ($(BR2_PACKAGE_SNMPD_STATIC),)
+	( cd $(PKG_BUILD_DIR); rm -f agent/snmpd; )
+	$(MAKE) -C $(PKG_BUILD_DIR) \
+		LDFLAGS="-L$(STAGING_DIR)/usr/lib -L$(STAGING_DIR)/lib -static" \
+		INSTALL_PREFIX="$(PKG_INSTALL_DIR)" \
+		all install
+	( cd $(PKG_INSTALL_DIR); mv ./usr/sbin/snmpd ./usr/sbin/snmpd-static; )
+endif
 	touch $@
 
 $(IPKG_LIBNETSNMP):
@@ -151,10 +161,22 @@ $(IPKG_SNMPD):
 	install -d -m0755 $(IDIR_SNMPD)/etc/init.d
 	install -m0755 ./files/snmpd.init $(IDIR_SNMPD)/etc/init.d/snmpd
 	install -d -m0755 $(IDIR_SNMPD)/usr/sbin
-	cp -fpR $(PKG_INSTALL_DIR)/usr/sbin/snmpd $(IDIR_SNMPD)/usr/sbin/
+	install -m0755 $(PKG_INSTALL_DIR)/usr/sbin/snmpd-shared $(IDIR_SNMPD)/usr/sbin/snmpd
 	$(RSTRIP) $(IDIR_SNMPD)
 	$(IPKG_BUILD) $(IDIR_SNMPD) $(PACKAGE_DIR)
 
+$(IPKG_SNMPD_STATIC):
+	install -d -m0755 $(IDIR_SNMPD_STATIC)/etc/snmp
+	install -m0644 ./files/snmpd.conf $(IDIR_SNMPD_STATIC)/etc/snmp/snmpd.conf
+	install -d -m0755 $(IDIR_SNMPD_STATIC)/etc/default
+	install -m0644 ./files/snmpd.default $(IDIR_SNMPD_STATIC)/etc/default/snmpd
+	install -d -m0755 $(IDIR_SNMPD_STATIC)/etc/init.d
+	install -m0755 ./files/snmpd.init $(IDIR_SNMPD_STATIC)/etc/init.d/snmpd
+	install -d -m0755 $(IDIR_SNMPD_STATIC)/usr/sbin
+	install -m0755 $(PKG_INSTALL_DIR)/usr/sbin/snmpd-static $(IDIR_SNMPD_STATIC)/usr/sbin/snmpd
+	$(RSTRIP) $(IDIR_SNMPD_STATIC)
+	$(IPKG_BUILD) $(IDIR_SNMPD_STATIC) $(PACKAGE_DIR)
+
 $(IPKG_SNMP_UTILS):
 	install -d -m0755 $(IDIR_SNMP_UTILS)/usr/bin
 	cp -fpR $(PKG_INSTALL_DIR)/usr/bin/snmp{get,set,status,test,trap,walk} $(IDIR_SNMP_UTILS)/usr/bin/
diff --git a/openwrt/package/net-snmp/ipkg/snmpd-static.conffiles b/openwrt/package/net-snmp/ipkg/snmpd-static.conffiles
new file mode 100644
index 000000000..2864cc903
--- /dev/null
+++ b/openwrt/package/net-snmp/ipkg/snmpd-static.conffiles
@@ -0,0 +1,2 @@
+/etc/default/snmpd
+/etc/snmp/snmpd.conf
diff --git a/openwrt/package/net-snmp/ipkg/snmpd-static.control b/openwrt/package/net-snmp/ipkg/snmpd-static.control
new file mode 100644
index 000000000..85cdb3059
--- /dev/null
+++ b/openwrt/package/net-snmp/ipkg/snmpd-static.control
@@ -0,0 +1,9 @@
+Package: snmpd-static
+Priority: optional
+Section: admin
+Version: [TBDL]
+Architecture: [TBDL]
+Maintainer: Nico <nthill@free.fr>
+Source: http://openwrt.org/cgi-bin/viewcvs.cgi/openwrt/package/net-snmp/
+Description: SNMP agent
+Depends: libelf
-- 
2.20.1