Ran through 2to3 to get it to compile.
Ran init script through shellcheck. Grouped several file writes.
Signed-off-by: Rosen Penev <rosenp@gmail.com>
include $(TOPDIR)/rules.mk
PKG_NAME:=smartsnmpd
-PKG_VERSION:=2014-08-13
-PKG_RELEASE=$(PKG_SOURCE_VERSION)
+PKG_VERSION:=2015-02-22
+PKG_RELEASE:=1
PKG_SOURCE_PROTO:=git
-PKG_SOURCE_URL:=https://github.com/credosemi/smartsnmp.git
-PKG_SOURCE_SUBDIR:=$(PKG_NAME)-$(PKG_VERSION)
-PKG_SOURCE_VERSION:=fb93473d895f058b2d8975d3cfa280ae2a8ae98d
-PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION)-$(PKG_SOURCE_VERSION).tar.gz
-PKG_MIRROR_HASH:=fc7f3eef8341163e21aecf6abf2492fa90362877093baef9987af3c703baa6ea
-
+PKG_SOURCE_URL:=https://github.com/credosemi/smartsnmp
+PKG_SOURCE_VERSION:=ca1d455fd06748caa629fe7ad16a47cec8877b93
+PKG_MIRROR_HASH:=fda89ec37944b4f800eb3c0147678745b57f08c87f10d246d3c9d165a43418b4
PKG_MAINTAINER:=Xiongfei Guo <xfguo@credosemi.com>
-PKG_LICENSE:=GPL-2.0
+PKG_LICENSE:=GPL-2.0-or-later
PKG_LICENSE_FILES:=LICENSE
+PKG_BUILD_DEPENDS:=scons/host
include $(INCLUDE_DIR)/package.mk
include $(INCLUDE_DIR)/scons.mk
define Package/smartsnmpd/description
smartsnmpd is an implementation of SNMP Agent. Its goal is "Easily
writing boring SNMP MIB with Lua". This package add native support
-for OpenWrt. Include using ubus and uci to get system info/status.
+for OpenWrt. Include using ubus and uci to get system info/status.
And, it use libubox/uloop as low level event-driven library.
endef
+ifeq ($(CONFIG_BIG_ENDIAN),y)
+ TARGET_CFLAGS += -DBIG_ENDIAN
+else
+ TARGET_CFLAGS += -DLITTLE_ENDIAN
+endif
+
SCONS_OPTIONS += --transport=uloop
define Build/Configure
$(INSTALL_DIR) $(1)/usr/lib/lua/smartsnmp/mibs
$(INSTALL_BIN) ./files/mibs/*.lua $(1)/usr/lib/lua/smartsnmp/mibs/
-
+
$(INSTALL_DIR) $(1)/etc/config
$(INSTALL_DATA) ./files/smartsnmpd.conf $(1)/etc/config/smartsnmpd
procd_set_param file $CONFIGFILE
procd_set_param respawn
procd_close_instance
-
+
# before we can call xappend
- mkdir -p $(dirname $CONFIGFILE)
+ mkdir -p "$(dirname $CONFIGFILE)"
echo "-- auto-generated config file from /etc/config/smartsnmpd" > $CONFIGFILE
-
- config_get PORT smartsnmpd port 161
- echo "port = $PORT" >> $CONFIGFILE
-
- config_get RO_COMMUNITY smartsnmpd ro_community 'public'
- config_get RW_COMMUNITY smartsnmpd rw_community 'private'
- echo "ro_community = '$RO_COMMUNITY'" >> $CONFIGFILE
- echo "rw_community = '$RW_COMMUNITY'" >> $CONFIGFILE
-
- config_get MIB_MODULE_PATH smartsnmpd mib_module_path '/usr/lib/lua/smartsnmp/mibs/'
- echo "mib_module_path = '$MIB_MODULE_PATH'" >> $CONFIGFILE
-
- echo "mib_modules = {" >> $CONFIGFILE
- config_foreach smartsnmpd_mib_module smartsnmpd_module
- echo "}" >> $CONFIGFILE
+
+ {
+ config_get PORT smartsnmpd port 161
+ echo "port = $PORT"
+
+ config_get RO_COMMUNITY smartsnmpd ro_community 'public'
+ config_get RW_COMMUNITY smartsnmpd rw_community 'private'
+ echo "ro_community = '$RO_COMMUNITY'"
+ echo "rw_community = '$RW_COMMUNITY'"
+
+ config_get MIB_MODULE_PATH smartsnmpd mib_module_path '/usr/lib/lua/smartsnmp/mibs/'
+ echo "mib_module_path = '$MIB_MODULE_PATH'"
+
+ echo "mib_modules = {"
+ config_foreach smartsnmpd_mib_module smartsnmpd_module
+ echo "}"
+ } >> $CONFIGFILE
}
--- /dev/null
+--- a/SConstruct
++++ b/SConstruct
+@@ -133,21 +133,21 @@ env = Environment(
+ )
+
+ # handle options/environment varibles.
+-if os.environ.has_key('CC'):
++if 'CC' in os.environ:
+ env.Replace(CC = os.environ['CC'])
+
+ # CFLAGS
+ if GetOption("cflags") != "":
+ env.Append(CFLAGS = GetOption("cflags"))
+-elif os.environ.has_key('CFLAGS'):
++elif 'CFLAGS' in os.environ:
+ env.Append(CFLAGS = os.environ['CFLAGS'])
+
+ # LDFLAGS
+ if GetOption("ldflags") != "":
+ env.Replace(LINKFLAGS = GetOption("ldflags"))
+-elif os.environ.has_key('LDFLAGS'):
++elif 'LDFLAGS' in os.environ:
+ env.Replace(LINKFLAGS = os.environ['LDFLAGS'])
+-elif os.environ.has_key('LINKFLAGS'):
++elif 'LINKFLAGS' in os.environ:
+ env.Replace(LINKFLAGS = os.environ['LINKFLAGS'])
+
+ # LIBS
+@@ -183,10 +183,10 @@ elif GetOption("transport") == 'built-in' or GetOption("transport") == '':
+ elif GetOption("evloop") == 'select' or GetOption("evloop") == '':
+ pass
+ else:
+- print "Error: Not the right event driving type"
++ print("Error: Not the right event driving type")
+ Exit(1)
+ else:
+- print "Error: Transport not found!"
++ print("Error: Transport not found!")
+ Exit(1)
+
+ # autoconf
+@@ -205,18 +205,18 @@ else:
+ if GetOption("transport") == 'built-in' or GetOption("transport") == '':
+ if GetOption("evloop") == 'epoll':
+ if not conf.CheckEpoll():
+- print "Error: epoll failed"
++ print("Error: epoll failed")
+ Exit(1)
+ elif GetOption("evloop") == 'kqueue':
+ if not conf.CheckKqueue():
+- print "Error: Kqueue failed"
++ print("Error: Kqueue failed")
+ Exit(1)
+ elif GetOption("evloop") == 'select' or GetOption("evloop") == '':
+ if not conf.CheckSelect():
+- print "Error: select failed"
++ print("Error: select failed")
+ Exit(1)
+ else:
+- print "Error: Not the right event driving type"
++ print("Error: Not the right event driving type")
+ Exit(1)
+
+ # CFLAGS
+@@ -232,7 +232,7 @@ if conf.CheckLib('lua'):
+ elif conf.CheckLib('lua5.1'):
+ env.Append(LIBS = ['lua5.1'])
+ else:
+- print "Error: liblua or liblua5.1 not found!"
++ print("Error: liblua or liblua5.1 not found!")
+ Exit(1)
+
+ # find lua header files
+@@ -241,7 +241,7 @@ if conf.CheckCHeader('lua.h'):
+ elif conf.CheckCHeader('lua5.1/lua.h'):
+ env.Append(CFLAGS = ['-I/usr/include/lua5.1'])
+ else:
+- print "Error: lua.h not found"
++ print("Error: lua.h not found")
+ Exit(1)
+
+ env = conf.Finish()
--- /dev/null
+--- a/SConstruct
++++ b/SConstruct
+@@ -134,21 +134,21 @@ env = Environment(
+
+ # handle options/environment varibles.
+ if 'CC' in os.environ:
+- env.Replace(CC = os.environ['CC'])
++ env.Replace(CC = Split(os.environ['CC']))
+
+ # CFLAGS
+ if GetOption("cflags") != "":
+ env.Append(CFLAGS = GetOption("cflags"))
+ elif 'CFLAGS' in os.environ:
+- env.Append(CFLAGS = os.environ['CFLAGS'])
++ env.Append(CFLAGS = Split(os.environ['CFLAGS']))
+
+ # LDFLAGS
+ if GetOption("ldflags") != "":
+ env.Replace(LINKFLAGS = GetOption("ldflags"))
+ elif 'LDFLAGS' in os.environ:
+- env.Replace(LINKFLAGS = os.environ['LDFLAGS'])
++ env.Replace(LINKFLAGS = Split(os.environ['LDFLAGS']))
+ elif 'LINKFLAGS' in os.environ:
+- env.Replace(LINKFLAGS = os.environ['LINKFLAGS'])
++ env.Replace(LINKFLAGS = Split(os.environ['LINKFLAGS']))
+
+ # LIBS
+ if GetOption("libs") != "":
+@@ -192,15 +192,6 @@ else:
+ # autoconf
+ conf = Configure(env, custom_tests = {'CheckEpoll' : CheckEpoll, 'CheckSelect' : CheckSelect, 'CheckKqueue' : CheckKqueue, 'CheckEndian' : CheckEndian})
+
+-# Endian check
+-endian = conf.CheckEndian()
+-if endian == 'Big':
+- env.Append(CFLAGS = ["-DBIG_ENDIAN"])
+-elif endian == 'Little':
+- env.Append(CFLAGS = ["-DLITTLE_ENDIAN"])
+-else:
+- raise SConfError("Error when testing the endian.")
+-
+ # built-in event loop check
+ if GetOption("transport") == 'built-in' or GetOption("transport") == '':
+ if GetOption("evloop") == 'epoll':