Accepting request 571968 from network:utilities
OBS-URL: https://build.opensuse.org/request/show/571968 OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/net-snmp?expand=0&rev=84
This commit is contained in:
commit
6eb9ff3fae
1650
net-snmp-5.7.2-systemd.patch
Normal file
1650
net-snmp-5.7.2-systemd.patch
Normal file
File diff suppressed because it is too large
Load Diff
505
net-snmp-python3.patch
Normal file
505
net-snmp-python3.patch
Normal file
@ -0,0 +1,505 @@
|
||||
Index: net-snmp-5.7.3/python/setup.py
|
||||
===================================================================
|
||||
--- net-snmp-5.7.3.orig/python/setup.py
|
||||
+++ net-snmp-5.7.3/python/setup.py
|
||||
@@ -9,9 +9,9 @@ intree=0
|
||||
|
||||
args = sys.argv[:]
|
||||
for arg in args:
|
||||
- if string.find(arg,'--basedir=') == 0:
|
||||
- basedir = string.split(arg,'=')[1]
|
||||
- sys.argv.remove(arg)
|
||||
+ if arg.find('--basedir=') == 0:
|
||||
+ basedir = arg.split('=')[1]
|
||||
+ sys.argv.remove(arg)
|
||||
intree=1
|
||||
|
||||
if intree:
|
||||
Index: net-snmp-5.7.3/python/netsnmp/client.py
|
||||
===================================================================
|
||||
--- net-snmp-5.7.3.orig/python/netsnmp/client.py
|
||||
+++ net-snmp-5.7.3/python/netsnmp/client.py
|
||||
@@ -1,3 +1,4 @@
|
||||
+from __future__ import print_function
|
||||
import client_intf
|
||||
import string
|
||||
import re
|
||||
@@ -35,12 +36,12 @@ def _parse_session_args(kargs):
|
||||
'TheirHostname':'',
|
||||
'TrustCert':''
|
||||
}
|
||||
- keys = kargs.keys()
|
||||
+ keys = list(kargs.keys())
|
||||
for key in keys:
|
||||
- if sessArgs.has_key(key):
|
||||
+ if key in sessArgs:
|
||||
sessArgs[key] = kargs[key]
|
||||
else:
|
||||
- print >>stderr, "ERROR: unknown key", key
|
||||
+ print("ERROR: unknown key", key, file=stderr)
|
||||
return sessArgs
|
||||
|
||||
def STR(obj):
|
||||
@@ -127,7 +128,7 @@ class Session(object):
|
||||
|
||||
sess_args = _parse_session_args(args)
|
||||
|
||||
- for k,v in sess_args.items():
|
||||
+ for k,v in list(sess_args.items()):
|
||||
self.__dict__[k] = v
|
||||
|
||||
|
||||
Index: net-snmp-5.7.3/python/netsnmp/tests/test.py
|
||||
===================================================================
|
||||
--- net-snmp-5.7.3.orig/python/netsnmp/tests/test.py
|
||||
+++ net-snmp-5.7.3/python/netsnmp/tests/test.py
|
||||
@@ -8,7 +8,7 @@ import time
|
||||
|
||||
class BasicTests(unittest.TestCase):
|
||||
def testFuncs(self):
|
||||
- print ""
|
||||
+ print("")
|
||||
var = netsnmp.Varbind('sysDescr.0')
|
||||
var = netsnmp.Varbind('sysDescr','0')
|
||||
var = netsnmp.Varbind(
|
||||
@@ -19,67 +19,67 @@ class BasicTests(unittest.TestCase):
|
||||
|
||||
var = netsnmp.Varbind('.1.3.6.1.2.1.1.1','0')
|
||||
|
||||
- print "---v1 GET tests -------------------------------------\n"
|
||||
+ print("---v1 GET tests -------------------------------------\n")
|
||||
res = netsnmp.snmpget(var,
|
||||
Version = 1,
|
||||
DestHost='localhost',
|
||||
Community='public')
|
||||
|
||||
- print "v1 snmpget result: ", res, "\n"
|
||||
+ print("v1 snmpget result: ", res, "\n")
|
||||
|
||||
- print "v1 get var: ", var.tag, var.iid, "=", var.val, '(',var.type,')'
|
||||
+ print("v1 get var: ", var.tag, var.iid, "=", var.val, '(',var.type,')')
|
||||
|
||||
- print "---v1 GETNEXT tests-------------------------------------\n"
|
||||
+ print("---v1 GETNEXT tests-------------------------------------\n")
|
||||
res = netsnmp.snmpgetnext(var,
|
||||
Version = 1,
|
||||
DestHost='localhost',
|
||||
Community='public')
|
||||
|
||||
- print "v1 snmpgetnext result: ", res, "\n"
|
||||
+ print("v1 snmpgetnext result: ", res, "\n")
|
||||
|
||||
- print "v1 getnext var: ", var.tag, var.iid, "=", var.val, '(',var.type,')'
|
||||
+ print("v1 getnext var: ", var.tag, var.iid, "=", var.val, '(',var.type,')')
|
||||
|
||||
- print "---v1 SET tests-------------------------------------\n"
|
||||
+ print("---v1 SET tests-------------------------------------\n")
|
||||
var = netsnmp.Varbind('sysLocation','0', 'my new location')
|
||||
res = netsnmp.snmpset(var,
|
||||
Version = 1,
|
||||
DestHost='localhost',
|
||||
Community='public')
|
||||
|
||||
- print "v1 snmpset result: ", res, "\n"
|
||||
+ print("v1 snmpset result: ", res, "\n")
|
||||
|
||||
- print "v1 set var: ", var.tag, var.iid, "=", var.val, '(',var.type,')'
|
||||
+ print("v1 set var: ", var.tag, var.iid, "=", var.val, '(',var.type,')')
|
||||
|
||||
- print "---v1 walk tests-------------------------------------\n"
|
||||
+ print("---v1 walk tests-------------------------------------\n")
|
||||
vars = netsnmp.VarList(netsnmp.Varbind('system'))
|
||||
|
||||
- print "v1 varlist walk in: "
|
||||
+ print("v1 varlist walk in: ")
|
||||
for var in vars:
|
||||
- print " ",var.tag, var.iid, "=", var.val, '(',var.type,')'
|
||||
+ print(" ",var.tag, var.iid, "=", var.val, '(',var.type,')')
|
||||
|
||||
res = netsnmp.snmpwalk(vars,
|
||||
Version = 1,
|
||||
DestHost='localhost',
|
||||
Community='public')
|
||||
- print "v1 snmpwalk result: ", res, "\n"
|
||||
+ print("v1 snmpwalk result: ", res, "\n")
|
||||
|
||||
for var in vars:
|
||||
- print var.tag, var.iid, "=", var.val, '(',var.type,')'
|
||||
+ print(var.tag, var.iid, "=", var.val, '(',var.type,')')
|
||||
|
||||
|
||||
- print "---v1 walk 2-------------------------------------\n"
|
||||
+ print("---v1 walk 2-------------------------------------\n")
|
||||
|
||||
- print "v1 varbind walk in: "
|
||||
+ print("v1 varbind walk in: ")
|
||||
var = netsnmp.Varbind('system')
|
||||
res = netsnmp.snmpwalk(var,
|
||||
Version = 1,
|
||||
DestHost='localhost',
|
||||
Community='public')
|
||||
- print "v1 snmpwalk result (should be = orig): ", res, "\n"
|
||||
+ print("v1 snmpwalk result (should be = orig): ", res, "\n")
|
||||
|
||||
- print var.tag, var.iid, "=", var.val, '(',var.type,')'
|
||||
+ print(var.tag, var.iid, "=", var.val, '(',var.type,')')
|
||||
|
||||
- print "---v1 multi-varbind test-------------------------------------\n"
|
||||
+ print("---v1 multi-varbind test-------------------------------------\n")
|
||||
sess = netsnmp.Session(Version=1,
|
||||
DestHost='localhost',
|
||||
Community='public')
|
||||
@@ -88,16 +88,16 @@ class BasicTests(unittest.TestCase):
|
||||
netsnmp.Varbind('sysContact', 0),
|
||||
netsnmp.Varbind('sysLocation', 0))
|
||||
vals = sess.get(vars)
|
||||
- print "v1 sess.get result: ", vals, "\n"
|
||||
+ print("v1 sess.get result: ", vals, "\n")
|
||||
|
||||
for var in vars:
|
||||
- print var.tag, var.iid, "=", var.val, '(',var.type,')'
|
||||
+ print(var.tag, var.iid, "=", var.val, '(',var.type,')')
|
||||
|
||||
vals = sess.getnext(vars)
|
||||
- print "v1 sess.getnext result: ", vals, "\n"
|
||||
+ print("v1 sess.getnext result: ", vals, "\n")
|
||||
|
||||
for var in vars:
|
||||
- print var.tag, var.iid, "=", var.val, '(',var.type,')'
|
||||
+ print(var.tag, var.iid, "=", var.val, '(',var.type,')')
|
||||
|
||||
vars = netsnmp.VarList(netsnmp.Varbind('sysUpTime'),
|
||||
netsnmp.Varbind('sysORLastChange'),
|
||||
@@ -106,28 +106,28 @@ class BasicTests(unittest.TestCase):
|
||||
netsnmp.Varbind('sysORUpTime'))
|
||||
|
||||
vals = sess.getbulk(2, 8, vars)
|
||||
- print "v1 sess.getbulk result: ", vals, "\n"
|
||||
+ print("v1 sess.getbulk result: ", vals, "\n")
|
||||
|
||||
for var in vars:
|
||||
- print var.tag, var.iid, "=", var.val, '(',var.type,')'
|
||||
+ print(var.tag, var.iid, "=", var.val, '(',var.type,')')
|
||||
|
||||
- print "---v1 set2-------------------------------------\n"
|
||||
+ print("---v1 set2-------------------------------------\n")
|
||||
|
||||
vars = netsnmp.VarList(
|
||||
netsnmp.Varbind('sysLocation', '0', 'my newer location'))
|
||||
res = sess.set(vars)
|
||||
- print "v1 sess.set result: ", res, "\n"
|
||||
+ print("v1 sess.set result: ", res, "\n")
|
||||
|
||||
- print "---v1 walk3-------------------------------------\n"
|
||||
+ print("---v1 walk3-------------------------------------\n")
|
||||
vars = netsnmp.VarList(netsnmp.Varbind('system'))
|
||||
|
||||
vals = sess.walk(vars)
|
||||
- print "v1 sess.walk result: ", vals, "\n"
|
||||
+ print("v1 sess.walk result: ", vals, "\n")
|
||||
|
||||
for var in vars:
|
||||
- print " ",var.tag, var.iid, "=", var.val, '(',var.type,')'
|
||||
+ print(" ",var.tag, var.iid, "=", var.val, '(',var.type,')')
|
||||
|
||||
- print "---v2c get-------------------------------------\n"
|
||||
+ print("---v2c get-------------------------------------\n")
|
||||
|
||||
sess = netsnmp.Session(Version=2,
|
||||
DestHost='localhost',
|
||||
@@ -140,22 +140,22 @@ class BasicTests(unittest.TestCase):
|
||||
netsnmp.Varbind('sysContact', 0),
|
||||
netsnmp.Varbind('sysLocation', 0))
|
||||
vals = sess.get(vars)
|
||||
- print "v2 sess.get result: ", vals, "\n"
|
||||
+ print("v2 sess.get result: ", vals, "\n")
|
||||
|
||||
- print "---v2c getnext-------------------------------------\n"
|
||||
+ print("---v2c getnext-------------------------------------\n")
|
||||
|
||||
for var in vars:
|
||||
- print var.tag, var.iid, "=", var.val, '(',var.type,')'
|
||||
- print "\n"
|
||||
+ print(var.tag, var.iid, "=", var.val, '(',var.type,')')
|
||||
+ print("\n")
|
||||
|
||||
vals = sess.getnext(vars)
|
||||
- print "v2 sess.getnext result: ", vals, "\n"
|
||||
+ print("v2 sess.getnext result: ", vals, "\n")
|
||||
|
||||
for var in vars:
|
||||
- print var.tag, var.iid, "=", var.val, '(',var.type,')'
|
||||
- print "\n"
|
||||
+ print(var.tag, var.iid, "=", var.val, '(',var.type,')')
|
||||
+ print("\n")
|
||||
|
||||
- print "---v2c getbulk-------------------------------------\n"
|
||||
+ print("---v2c getbulk-------------------------------------\n")
|
||||
|
||||
vars = netsnmp.VarList(netsnmp.Varbind('sysUpTime'),
|
||||
netsnmp.Varbind('sysORLastChange'),
|
||||
@@ -164,30 +164,30 @@ class BasicTests(unittest.TestCase):
|
||||
netsnmp.Varbind('sysORUpTime'))
|
||||
|
||||
vals = sess.getbulk(2, 8, vars)
|
||||
- print "v2 sess.getbulk result: ", vals, "\n"
|
||||
+ print("v2 sess.getbulk result: ", vals, "\n")
|
||||
|
||||
for var in vars:
|
||||
- print var.tag, var.iid, "=", var.val, '(',var.type,')'
|
||||
- print "\n"
|
||||
+ print(var.tag, var.iid, "=", var.val, '(',var.type,')')
|
||||
+ print("\n")
|
||||
|
||||
- print "---v2c set-------------------------------------\n"
|
||||
+ print("---v2c set-------------------------------------\n")
|
||||
|
||||
vars = netsnmp.VarList(
|
||||
netsnmp.Varbind('sysLocation','0','my even newer location'))
|
||||
|
||||
res = sess.set(vars)
|
||||
- print "v2 sess.set result: ", res, "\n"
|
||||
+ print("v2 sess.set result: ", res, "\n")
|
||||
|
||||
- print "---v2c walk-------------------------------------\n"
|
||||
+ print("---v2c walk-------------------------------------\n")
|
||||
vars = netsnmp.VarList(netsnmp.Varbind('system'))
|
||||
|
||||
vals = sess.walk(vars)
|
||||
- print "v2 sess.walk result: ", vals, "\n"
|
||||
+ print("v2 sess.walk result: ", vals, "\n")
|
||||
|
||||
for var in vars:
|
||||
- print " ",var.tag, var.iid, "=", var.val, '(',var.type,')'
|
||||
+ print(" ",var.tag, var.iid, "=", var.val, '(',var.type,')')
|
||||
|
||||
- print "---v3 setup-------------------------------------\n"
|
||||
+ print("---v3 setup-------------------------------------\n")
|
||||
sess = netsnmp.Session(Version=3,
|
||||
DestHost='localhost',
|
||||
SecLevel='authPriv',
|
||||
@@ -200,22 +200,22 @@ class BasicTests(unittest.TestCase):
|
||||
vars = netsnmp.VarList(netsnmp.Varbind('sysUpTime', 0),
|
||||
netsnmp.Varbind('sysContact', 0),
|
||||
netsnmp.Varbind('sysLocation', 0))
|
||||
- print "---v3 get-------------------------------------\n"
|
||||
+ print("---v3 get-------------------------------------\n")
|
||||
vals = sess.get(vars)
|
||||
- print "v3 sess.get result: ", vals, "\n"
|
||||
+ print("v3 sess.get result: ", vals, "\n")
|
||||
|
||||
for var in vars:
|
||||
- print var.tag, var.iid, "=", var.val, '(',var.type,')'
|
||||
- print "\n"
|
||||
+ print(var.tag, var.iid, "=", var.val, '(',var.type,')')
|
||||
+ print("\n")
|
||||
|
||||
- print "---v3 getnext-------------------------------------\n"
|
||||
+ print("---v3 getnext-------------------------------------\n")
|
||||
|
||||
vals = sess.getnext(vars)
|
||||
- print "v3 sess.getnext result: ", vals, "\n"
|
||||
+ print("v3 sess.getnext result: ", vals, "\n")
|
||||
|
||||
for var in vars:
|
||||
- print var.tag, var.iid, "=", var.val, '(',var.type,')'
|
||||
- print "\n"
|
||||
+ print(var.tag, var.iid, "=", var.val, '(',var.type,')')
|
||||
+ print("\n")
|
||||
|
||||
vars = netsnmp.VarList(netsnmp.Varbind('sysUpTime'),
|
||||
netsnmp.Varbind('sysORLastChange'),
|
||||
@@ -224,37 +224,37 @@ class BasicTests(unittest.TestCase):
|
||||
netsnmp.Varbind('sysORUpTime'))
|
||||
|
||||
vals = sess.getbulk(2, 8, vars)
|
||||
- print "v3 sess.getbulk result: ", vals, "\n"
|
||||
+ print("v3 sess.getbulk result: ", vals, "\n")
|
||||
|
||||
for var in vars:
|
||||
- print var.tag, var.iid, "=", var.val, '(',var.type,')'
|
||||
- print "\n"
|
||||
+ print(var.tag, var.iid, "=", var.val, '(',var.type,')')
|
||||
+ print("\n")
|
||||
|
||||
- print "---v3 set-------------------------------------\n"
|
||||
+ print("---v3 set-------------------------------------\n")
|
||||
|
||||
vars = netsnmp.VarList(
|
||||
netsnmp.Varbind('sysLocation','0', 'my final destination'))
|
||||
res = sess.set(vars)
|
||||
- print "v3 sess.set result: ", res, "\n"
|
||||
+ print("v3 sess.set result: ", res, "\n")
|
||||
|
||||
- print "---v3 walk-------------------------------------\n"
|
||||
+ print("---v3 walk-------------------------------------\n")
|
||||
vars = netsnmp.VarList(netsnmp.Varbind('system'))
|
||||
|
||||
vals = sess.walk(vars)
|
||||
- print "v3 sess.walk result: ", vals, "\n"
|
||||
+ print("v3 sess.walk result: ", vals, "\n")
|
||||
|
||||
for var in vars:
|
||||
- print " ",var.tag, var.iid, "=", var.val, '(',var.type,')'
|
||||
+ print(" ",var.tag, var.iid, "=", var.val, '(',var.type,')')
|
||||
|
||||
|
||||
class SetTests(unittest.TestCase):
|
||||
def testFuncs(self):
|
||||
- print "\n-------------- SET Test Start ----------------------------\n"
|
||||
+ print("\n-------------- SET Test Start ----------------------------\n")
|
||||
|
||||
var = netsnmp.Varbind('sysUpTime','0')
|
||||
res = netsnmp.snmpget(var, Version = 1, DestHost='localhost',
|
||||
Community='public')
|
||||
- print "uptime = ", res[0]
|
||||
+ print("uptime = ", res[0])
|
||||
|
||||
|
||||
var = netsnmp.Varbind('versionRestartAgent','0', 1)
|
||||
@@ -264,19 +264,19 @@ class SetTests(unittest.TestCase):
|
||||
var = netsnmp.Varbind('sysUpTime','0')
|
||||
res = netsnmp.snmpget(var, Version = 1, DestHost='localhost',
|
||||
Community='public')
|
||||
- print "uptime = ", res[0]
|
||||
+ print("uptime = ", res[0])
|
||||
|
||||
var = netsnmp.Varbind('nsCacheEntry')
|
||||
res = netsnmp.snmpgetnext(var, Version = 1, DestHost='localhost',
|
||||
Community='public')
|
||||
- print "var = ", var.tag, var.iid, "=", var.val, '(',var.type,')'
|
||||
+ print("var = ", var.tag, var.iid, "=", var.val, '(',var.type,')')
|
||||
|
||||
var.val = 65
|
||||
res = netsnmp.snmpset(var, Version = 1, DestHost='localhost',
|
||||
Community='public')
|
||||
res = netsnmp.snmpget(var, Version = 1, DestHost='localhost',
|
||||
Community='public')
|
||||
- print "var = ", var.tag, var.iid, "=", var.val, '(',var.type,')'
|
||||
+ print("var = ", var.tag, var.iid, "=", var.val, '(',var.type,')')
|
||||
|
||||
sess = netsnmp.Session(Version = 1, DestHost='localhost',
|
||||
Community='public')
|
||||
@@ -286,7 +286,7 @@ class SetTests(unittest.TestCase):
|
||||
netsnmp.Varbind('.1.3.6.1.6.3.12.1.2.1.9.116.101.115.116','', 4))
|
||||
res = sess.set(vars)
|
||||
|
||||
- print "res = ", res
|
||||
+ print("res = ", res)
|
||||
|
||||
vars = netsnmp.VarList(netsnmp.Varbind('snmpTargetAddrTDomain'),
|
||||
netsnmp.Varbind('snmpTargetAddrTAddress'),
|
||||
@@ -295,14 +295,14 @@ class SetTests(unittest.TestCase):
|
||||
res = sess.getnext(vars)
|
||||
|
||||
for var in vars:
|
||||
- print var.tag, var.iid, "=", var.val, '(',var.type,')'
|
||||
- print "\n"
|
||||
+ print(var.tag, var.iid, "=", var.val, '(',var.type,')')
|
||||
+ print("\n")
|
||||
|
||||
vars = netsnmp.VarList(netsnmp.Varbind('.1.3.6.1.6.3.12.1.2.1.9.116.101.115.116','', 6))
|
||||
|
||||
res = sess.set(vars)
|
||||
|
||||
- print "res = ", res
|
||||
+ print("res = ", res)
|
||||
|
||||
vars = netsnmp.VarList(netsnmp.Varbind('snmpTargetAddrTDomain'),
|
||||
netsnmp.Varbind('snmpTargetAddrTAddress'),
|
||||
@@ -311,10 +311,10 @@ class SetTests(unittest.TestCase):
|
||||
res = sess.getnext(vars)
|
||||
|
||||
for var in vars:
|
||||
- print var.tag, var.iid, "=", var.val, '(',var.type,')'
|
||||
- print "\n"
|
||||
+ print(var.tag, var.iid, "=", var.val, '(',var.type,')')
|
||||
+ print("\n")
|
||||
|
||||
- print "\n-------------- SET Test End ----------------------------\n"
|
||||
+ print("\n-------------- SET Test End ----------------------------\n")
|
||||
|
||||
|
||||
if __name__=='__main__':
|
||||
Index: net-snmp-5.7.3/python/netsnmp/client_intf.c
|
||||
===================================================================
|
||||
--- net-snmp-5.7.3.orig/python/netsnmp/client_intf.c
|
||||
+++ net-snmp-5.7.3/python/netsnmp/client_intf.c
|
||||
@@ -979,7 +979,11 @@ py_netsnmp_attr_string(PyObject *obj, ch
|
||||
PyObject *attr = PyObject_GetAttrString(obj, attr_name);
|
||||
if (attr) {
|
||||
int retval;
|
||||
+#if PY_MAJOR_VERSION >= 3
|
||||
+ retval = PyBytes_AsStringAndSize(attr, val, len);
|
||||
+#else
|
||||
retval = PyString_AsStringAndSize(attr, val, len);
|
||||
+#endif
|
||||
Py_DECREF(attr);
|
||||
return retval;
|
||||
}
|
||||
@@ -996,7 +1000,11 @@ py_netsnmp_attr_long(PyObject *obj, char
|
||||
if (obj && attr_name && PyObject_HasAttrString(obj, attr_name)) {
|
||||
PyObject *attr = PyObject_GetAttrString(obj, attr_name);
|
||||
if (attr) {
|
||||
+#if PY_MAJOR_VERSION >= 3
|
||||
+ val = PyLong_AsLong(attr);
|
||||
+#else
|
||||
val = PyInt_AsLong(attr);
|
||||
+#endif
|
||||
Py_DECREF(attr);
|
||||
}
|
||||
}
|
||||
@@ -1079,11 +1087,19 @@ __py_netsnmp_update_session_errors(PyObj
|
||||
|
||||
py_netsnmp_attr_set_string(session, "ErrorStr", err_str, STRLEN(err_str));
|
||||
|
||||
+#if PY_MAJOR_VERSION >= 3
|
||||
+ tmp_for_conversion = PyLong_FromLong(err_num);
|
||||
+#else
|
||||
tmp_for_conversion = PyInt_FromLong(err_num);
|
||||
+#endif
|
||||
PyObject_SetAttrString(session, "ErrorNum", tmp_for_conversion);
|
||||
Py_DECREF(tmp_for_conversion);
|
||||
|
||||
+#if PY_MAJOR_VERSION >= 3
|
||||
+ tmp_for_conversion = PyLong_FromLong(err_ind);
|
||||
+#else
|
||||
tmp_for_conversion = PyInt_FromLong(err_ind);
|
||||
+#endif
|
||||
PyObject_SetAttrString(session, "ErrorInd", tmp_for_conversion);
|
||||
Py_DECREF(tmp_for_conversion);
|
||||
}
|
||||
@@ -2607,13 +2623,28 @@ static PyMethodDef ClientMethods[] = {
|
||||
{NULL, NULL, 0, NULL} /* Sentinel */
|
||||
};
|
||||
|
||||
+#if PY_MAJOR_VERSION >= 3
|
||||
+static struct PyModuleDef ClientModuleDef = {
|
||||
+ PyModuleDef_HEAD_INIT,
|
||||
+ "client_intf",
|
||||
+ NULL,
|
||||
+ -1,
|
||||
+ ClientMethods,
|
||||
+ NULL,
|
||||
+ NULL,
|
||||
+ NULL,
|
||||
+ NULL
|
||||
+};
|
||||
+
|
||||
+PyMODINIT_FUNC
|
||||
+PyInit_client_intf(void)
|
||||
+{
|
||||
+ return PyModule_Create(&ClientModuleDef);
|
||||
+}
|
||||
+#else
|
||||
PyMODINIT_FUNC
|
||||
initclient_intf(void)
|
||||
{
|
||||
(void) Py_InitModule("client_intf", ClientMethods);
|
||||
}
|
||||
-
|
||||
-
|
||||
-
|
||||
-
|
||||
-
|
||||
+#endif
|
1
net-snmp-tmpfs.conf
Normal file
1
net-snmp-tmpfs.conf
Normal file
@ -0,0 +1 @@
|
||||
d /var/run/net-snmp 0755 root root
|
@ -1,3 +1,40 @@
|
||||
-------------------------------------------------------------------
|
||||
Thu Feb 1 23:15:44 UTC 2018 - jengelh@inai.de
|
||||
|
||||
- Fix RPM group for shlib subpackage.
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Wed Jan 24 14:07:16 UTC 2018 - tchvatal@suse.com
|
||||
|
||||
- Properly conditionalize the py2 build
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Wed Jan 24 13:09:36 UTC 2018 - tchvatal@suse.com
|
||||
|
||||
- Add patch from Fedora to support natively systemd:
|
||||
* net-snmp-5.7.2-systemd.patch
|
||||
- Drop the check phase as whole 90% of the tests fail it makes
|
||||
more sense to run them somewhere localy
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Mon Jan 22 12:24:33 UTC 2018 - tchvatal@suse.com
|
||||
|
||||
- Take systemd service files from fedora to replace sysV scripts
|
||||
- Also convert the sysconfig files to match fedora ones, they
|
||||
get bit more terse but it works seamlessly with systemd
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Fri Jan 19 17:36:38 UTC 2018 - tchvatal@suse.com
|
||||
|
||||
- Format with spec-cleaner
|
||||
- Drop sle11 support as it fails to build anyway for ages
|
||||
- Rename python packages to be python-%{name} with obsoletes
|
||||
* Use new singlespec macros
|
||||
* Add patch converting the py files to python3/2 compat mode
|
||||
net-snmp-python3.patch
|
||||
- Run full autoreconf instead of partial
|
||||
- Build with threads by building few targets first
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Mon Dec 11 17:14:43 UTC 2017 - dimstar@opensuse.org
|
||||
|
||||
|
290
net-snmp.spec
290
net-snmp.spec
@ -1,7 +1,7 @@
|
||||
#
|
||||
# spec file for package net-snmp
|
||||
#
|
||||
# Copyright (c) 2017 SUSE LINUX GmbH, Nuernberg, Germany.
|
||||
# Copyright (c) 2018 SUSE LINUX GmbH, Nuernberg, Germany.
|
||||
#
|
||||
# All modifications and additions to the file contributed by third parties
|
||||
# remain the property of their copyright owners, unless otherwise agreed
|
||||
@ -16,58 +16,38 @@
|
||||
#
|
||||
|
||||
|
||||
#Compat macro for new _fillupdir macro introduced in Nov 2017
|
||||
%{?!python_module:%define python_module() python-%{**} python3-%{**}}
|
||||
%define netsnmp_logfile %{_localstatedir}/log/net-snmpd.log
|
||||
%define netsnmp_agentx_socket_dir_fhs %{_rundir}/agentx
|
||||
%define netsnmp_agentx_socket_dir_rfc %{_localstatedir}/agentx
|
||||
# Compat macro for new _fillupdir macro introduced in Nov 2017
|
||||
%if ! %{defined _fillupdir}
|
||||
%define _fillupdir /var/adm/fillup-templates
|
||||
%define _fillupdir %{_localstatedir}/adm/fillup-templates
|
||||
%endif
|
||||
|
||||
# compatibility for SLES11 <=SP1
|
||||
%{!?python_sitelib: %global python_sitelib %(%{__python} -c "from distutils.sysconfig import get_python_lib; print(get_python_lib())")}
|
||||
%{!?python_sitearch: %global python_sitearch %(%{__python} -c "from distutils.sysconfig import get_python_lib; print(get_python_lib(1))")}
|
||||
|
||||
%define pkg_name net-snmp
|
||||
%ifnarch s390 s390x
|
||||
%define netsnmp_with_sensors 1
|
||||
%endif
|
||||
%define netsnmp_check 1
|
||||
%define netsnmp_logfile /var/log/net-snmpd.log
|
||||
%if ! %{defined _rundir}
|
||||
%define _rundir %{_localstatedir}/run
|
||||
%endif
|
||||
%define netsnmp_agentx_socket_dir_fhs %{_rundir}/agentx
|
||||
%define netsnmp_agentx_socket_dir_rfc /var/agentx
|
||||
|
||||
%define libname libsnmp30
|
||||
%bcond_without python2
|
||||
Name: net-snmp
|
||||
Version: 5.7.3
|
||||
Release: 0
|
||||
BuildRoot: %{_tmppath}/%{name}-%{version}-build
|
||||
BuildRequires: autoconf
|
||||
BuildRequires: automake
|
||||
BuildRequires: openssl-devel
|
||||
BuildRequires: procps
|
||||
BuildRequires: python-devel
|
||||
BuildRequires: python-setuptools
|
||||
BuildRequires: rpm-devel
|
||||
BuildRequires: tcpd-devel
|
||||
%if 0%{?netsnmp_with_sensors}
|
||||
BuildRequires: libsensors4-devel
|
||||
%endif
|
||||
Requires: logrotate
|
||||
Requires: perl-SNMP = %{version}
|
||||
Requires: perl-TermReadKey
|
||||
PreReq: %insserv_prereq %fillup_prereq /sbin/chkconfig
|
||||
Summary: SNMP Daemon
|
||||
License: BSD-3-Clause AND MIT
|
||||
Group: Productivity/Networking/Other
|
||||
Url: http://sourceforge.net/projects/net-snmp
|
||||
#Source: http://sourceforge.net/projects/net-snmp/files/net-snmp/%{version}/%{pkg_name}-%{version}.tar.gz
|
||||
Source: %{pkg_name}-%{version}.tar.gz
|
||||
Source1: rc.snmpd
|
||||
Source: http://sourceforge.net/projects/net-snmp/files/net-snmp/%{version}/%{name}-%{version}.tar.gz
|
||||
Source1: snmpd.service
|
||||
Source2: snmpd.conf
|
||||
Source3: README.SUSE
|
||||
Source4: rc.snmptrapd
|
||||
Source4: snmptrapd.service
|
||||
Source5: net-snmp.logrotate
|
||||
Source6: test_installed
|
||||
Source7: net-snmp.sysconfig
|
||||
Source8: net-snmp-rpmlintrc
|
||||
Source9: baselibs.conf
|
||||
Source10: snmpd.sysconfig
|
||||
Source11: snmptrapd.sysconfig
|
||||
Source20: net-snmp-tmpfs.conf
|
||||
Source98: net-snmp-rpmlintrc
|
||||
Source99: baselibs.conf
|
||||
Patch1: net-snmp-5.7.3-socket-path.patch
|
||||
Patch2: net-snmp-5.7.3-testing-empty-arptable.patch
|
||||
Patch3: net-snmp-5.7.3-pie.patch
|
||||
@ -82,10 +62,27 @@ Patch11: net-snmp-5.7.3-Remove-U64-typedef.patch
|
||||
Patch12: net-snmp-5.7.3-Fix-Makefile.PL.patch
|
||||
Patch13: net-snmp-5.7.3-build-with-openssl-1.1.patch
|
||||
Patch14: net-snmp-5.7.3-modern-rpm-api.patch
|
||||
#
|
||||
Summary: SNMP Daemon
|
||||
License: BSD-3-Clause and MIT
|
||||
Group: Productivity/Networking/Other
|
||||
Patch15: net-snmp-python3.patch
|
||||
Patch16: net-snmp-5.7.2-systemd.patch
|
||||
BuildRequires: %{python_module devel}
|
||||
BuildRequires: %{python_module setuptools}
|
||||
BuildRequires: autoconf
|
||||
BuildRequires: automake
|
||||
BuildRequires: libtool
|
||||
BuildRequires: openssl-devel
|
||||
BuildRequires: procps
|
||||
BuildRequires: python-rpm-macros
|
||||
BuildRequires: rpm-devel
|
||||
BuildRequires: systemd-rpm-macros
|
||||
BuildRequires: tcpd-devel
|
||||
Requires: logrotate
|
||||
Requires: perl-SNMP = %{version}
|
||||
Requires: perl-TermReadKey
|
||||
Requires(post): %fillup_prereq
|
||||
%if 0%{?netsnmp_with_sensors}
|
||||
BuildRequires: libsensors4-devel
|
||||
%endif
|
||||
%{?systemd_requires}
|
||||
|
||||
%description
|
||||
Net-SNMP is a suite of applications used to implement SNMP v1, SNMP v2c
|
||||
@ -103,18 +100,14 @@ This package was originally based on the CMU 2.1.2.1 snmp code. It was
|
||||
renamed from cmu-snmp to ucd-snmp in 1995 and later renamed from ucd-snmp
|
||||
to net-snmp in November 2000.
|
||||
|
||||
|
||||
%define library_name libsnmp30
|
||||
|
||||
%package -n libsnmp30
|
||||
%package -n %{libname}
|
||||
Summary: Shared Libraries from net-snmp
|
||||
License: BSD-3-Clause AND MIT
|
||||
Group: System/Libraries
|
||||
Requires: perl-base = %{perl_version}
|
||||
Requires: snmp-mibs = %{version}
|
||||
#
|
||||
Summary: Shared Libraries from net-snmp
|
||||
License: BSD-3-Clause and MIT
|
||||
Group: Productivity/Networking/Other
|
||||
|
||||
%description -n libsnmp30
|
||||
%description -n %{libname}
|
||||
Net-SNMP is a suite of applications used to implement SNMP v1, SNMP v2c
|
||||
and SNMP v3 using both IPv4 and IPv6. The suite includes:
|
||||
|
||||
@ -129,7 +122,10 @@ and SNMP v3 using both IPv4 and IPv6. The suite includes:
|
||||
This package holds the shared libraries from the net-snmp package.
|
||||
|
||||
%package devel
|
||||
Requires: %{library_name} = %{version}
|
||||
Summary: Development files from net-snmp
|
||||
License: BSD-3-Clause AND MIT
|
||||
Group: Development/Libraries/C and C++
|
||||
Requires: %{libname} = %{version}
|
||||
# for mib2c
|
||||
Requires: perl
|
||||
Requires: perl-SNMP = %{version}
|
||||
@ -140,10 +136,6 @@ Requires: pkgconfig(libssl)
|
||||
%if 0%{?netsnmp_with_sensors}
|
||||
Requires: libsensors4-devel
|
||||
%endif
|
||||
#
|
||||
Summary: Development files from net-snmp
|
||||
License: BSD-3-Clause and MIT
|
||||
Group: Development/Libraries/C and C++
|
||||
|
||||
%description devel
|
||||
Net-SNMP is a suite of applications used to implement SNMP v1, SNMP v2c
|
||||
@ -160,11 +152,9 @@ and SNMP v3 using both IPv4 and IPv6. The suite includes:
|
||||
This package holds the development headers, libraries and API documentation
|
||||
from the net-snmp package.
|
||||
|
||||
|
||||
%package -n snmp-mibs
|
||||
#
|
||||
Summary: MIB files from net-snmp
|
||||
License: BSD-3-Clause and MIT
|
||||
License: BSD-3-Clause AND MIT
|
||||
Group: Productivity/Networking/Other
|
||||
|
||||
%description -n snmp-mibs
|
||||
@ -181,46 +171,44 @@ and SNMP v3 using both IPv4 and IPv6. The suite includes:
|
||||
|
||||
This package holds the MIB files from the net-snmp package.
|
||||
|
||||
|
||||
%package -n perl-SNMP
|
||||
Requires: %{pkg_name} = %{version}
|
||||
Requires: perl-base = %{perl_version}
|
||||
#
|
||||
Summary: Perl5 SNMP Extension Module
|
||||
License: GPL-2.0+
|
||||
Group: Development/Libraries/Perl
|
||||
Requires: %{name} = %{version}
|
||||
Requires: perl-base = %{perl_version}
|
||||
|
||||
%description -n perl-SNMP
|
||||
The Perl5 'SNMP' Extension Module v3.1.0 for the UCD SNMPv3 library.
|
||||
|
||||
|
||||
%package python
|
||||
%package -n python2-%{name}
|
||||
Summary: The Python 'netsnmp' module for the Net-SNMP
|
||||
License: BSD-3-Clause and MIT
|
||||
License: BSD-3-Clause AND MIT
|
||||
Group: Development/Libraries/Python
|
||||
Requires: %{libname} = %{version}
|
||||
Provides: %{name}-python = %{version}
|
||||
Obsoletes: %{name}-python < %{version}
|
||||
Provides: python-%{name} = %{version}
|
||||
|
||||
%description python
|
||||
%description -n python2-%{name}
|
||||
The 'netsnmp' module provides a full featured, tri-lingual SNMP (SNMPv3,
|
||||
SNMPv2c, SNMPv1) client API. The 'netsnmp' module internals rely on the
|
||||
Net-SNMP toolkit library.
|
||||
|
||||
%package -n python3-%{name}
|
||||
Summary: The Python 3 'netsnmp' module for the Net-SNMP
|
||||
License: BSD-3-Clause AND MIT
|
||||
Group: Development/Libraries/Python
|
||||
Requires: %{libname} = %{version}
|
||||
|
||||
%description -n python3-%{name}
|
||||
The 'netsnmp' module provides a full featured, tri-lingual SNMP (SNMPv3,
|
||||
SNMPv2c, SNMPv1) client API. The 'netsnmp' module internals rely on the
|
||||
Net-SNMP toolkit library.
|
||||
|
||||
%prep
|
||||
%setup -q -n %{pkg_name}-%{version}
|
||||
%patch1 -p1
|
||||
%patch2 -p1
|
||||
%patch3 -p1
|
||||
%patch4 -p1
|
||||
%patch5 -p1
|
||||
%patch6 -p1
|
||||
%patch7 -p1
|
||||
%patch8 -p1
|
||||
%patch9 -p1
|
||||
%patch10 -p1
|
||||
%patch11 -p1
|
||||
%patch12 -p1
|
||||
%patch13 -p1
|
||||
%patch14 -p1
|
||||
%setup -q
|
||||
%autopatch -p1
|
||||
|
||||
%build
|
||||
MIBS="misc/ipfwacc ucd-snmp/diskio etherlike-mib rmon-mib velocity smux \
|
||||
@ -232,14 +220,16 @@ MIBS="misc/ipfwacc ucd-snmp/diskio etherlike-mib rmon-mib velocity smux \
|
||||
MIBS="$MIBS ucd-snmp/lmsensorsMib"
|
||||
%endif
|
||||
|
||||
autoreconf
|
||||
autoreconf -fvi
|
||||
%configure \
|
||||
--with-sys-contact="root@localhost" \
|
||||
--with-sys-location="unknown" \
|
||||
--with-mib-modules="$MIBS" \
|
||||
--with-cflags="%{optflags} -fstack-protector-all" \
|
||||
--with-persistent-directory="/var/lib/net-snmp" \
|
||||
--with-cflags="%{optflags}" \
|
||||
--with-ldflags="-Wl,-z,relro -Wl,-z,now" \
|
||||
--with-persistent-directory="%{_localstatedir}/lib/net-snmp" \
|
||||
--with-agentx-socket="%{netsnmp_agentx_socket_dir_fhs}/master" \
|
||||
--with-temp-file-pattern=/var/run/net-snmp/snmp-tmp-XXXXXX \
|
||||
--with-logfile="%{netsnmp_logfile}" \
|
||||
--with-libwrap="%{_prefix}" \
|
||||
--with-perl-modules="INSTALLDIRS=vendor" \
|
||||
@ -252,84 +242,78 @@ autoreconf
|
||||
--enable-ipv6 \
|
||||
--enable-ucd-snmp-compatibility \
|
||||
--with-security-modules=tsm \
|
||||
--with-transports=TLSTCP,DTLSUDP
|
||||
--with-transports=TLSTCP,DTLSUDP \
|
||||
--with-systemd
|
||||
|
||||
# Parallel building is disabled because dependencies between the Perl
|
||||
# module and libnetsnmp are not correctly defined.
|
||||
make #%{?_smp_mflags}
|
||||
# Parallel build deps not properly stated
|
||||
make -j1
|
||||
|
||||
pushd python
|
||||
%{__python} setup.py --basedir="../" build
|
||||
%python_exec setup.py build --basedir="../"
|
||||
popd
|
||||
|
||||
%check
|
||||
%if 0%{?netsnmp_check}
|
||||
%ifnarch %arm
|
||||
ulimit -c unlimited
|
||||
%{__make} test ||:
|
||||
%{__make} test TESTOPTS='-P tcp' ||:
|
||||
%endif
|
||||
%{__make} perlmodules ||:
|
||||
LD_RUN_PATH="$PWD/snmplib/.libs" LD_LIBRARY_PATH="${PWD}/snmplib/.libs:${PWD}/agent/.libs:${PWD}/agent/helpers/.libs" %{__make} perltest ||:
|
||||
%endif
|
||||
|
||||
%install
|
||||
%makeinstall INSTALL_PREFIX=%{buildroot}
|
||||
%{__install} -Dd %{buildroot}/var/log %{buildroot}/var/lib/net-snmp %{buildroot}/usr/lib/net-snmp/agents %{buildroot}%{netsnmp_agentx_socket_dir_fhs}
|
||||
%{__install} -D -m 0755 %{SOURCE1} %{buildroot}/etc/init.d/snmpd
|
||||
%{__install} -D -m 0755 %{SOURCE4} %{buildroot}/etc/init.d/snmptrapd
|
||||
%{__install} -D -m 0600 %{SOURCE2} %{buildroot}/etc/snmp/snmpd.conf
|
||||
%{__install} -m 0644 %{SOURCE3} .
|
||||
%{__install} -m 0644 %{SOURCE4} .
|
||||
%{__install} -D -m 0644 %{SOURCE5} %{buildroot}/etc/logrotate.d/net-snmp
|
||||
%{__install} -m 0744 %{SOURCE6} testing/
|
||||
%{__ln_s} -f /etc/init.d/snmpd %{buildroot}%{_sbindir}/rcsnmpd
|
||||
%{__ln_s} -f /etc/init.d/snmptrapd %{buildroot}%{_sbindir}/rcsnmptrapd
|
||||
%{__install} -m 0644 /dev/null %{buildroot}%{netsnmp_logfile}
|
||||
%make_install INSTALL_PREFIX=%{buildroot}
|
||||
install -Dd %{buildroot}%{_localstatedir}/log %{buildroot}%{_localstatedir}/lib/net-snmp %{buildroot}%{_libexecdir}/net-snmp/agents %{buildroot}%{netsnmp_agentx_socket_dir_fhs}
|
||||
install -D -m 0755 %{SOURCE1} %{buildroot}%{_unitdir}/snmpd.service
|
||||
install -D -m 0755 %{SOURCE4} %{buildroot}%{_unitdir}/snmptrapd.service
|
||||
install -D -m 0600 %{SOURCE2} %{buildroot}%{_sysconfdir}/snmp/snmpd.conf
|
||||
install -m 0644 %{SOURCE3} .
|
||||
install -m 0644 %{SOURCE4} .
|
||||
install -D -m 0644 %{SOURCE5} %{buildroot}%{_sysconfdir}/logrotate.d/net-snmp
|
||||
install -m 0744 %{SOURCE6} testing/
|
||||
ln -sf service %{buildroot}%{_sbindir}/rcsnmpd
|
||||
ln -sf service %{buildroot}%{_sbindir}/rcsnmptrapd
|
||||
install -m 0644 /dev/null %{buildroot}%{netsnmp_logfile}
|
||||
pushd perl
|
||||
%perl_make_install
|
||||
%perl_process_packlist
|
||||
%{__rm} -f %{buildroot}/%{perl_vendorarch}/Bundle/Makefile.subs.pl
|
||||
rm -f %{buildroot}/%{perl_vendorarch}/Bundle/Makefile.subs.pl
|
||||
popd
|
||||
pushd python
|
||||
%{__python} setup.py install --prefix=%{_prefix} --root=%{buildroot}
|
||||
%python_install
|
||||
popd
|
||||
%{__grep} -a -v "^#define PACKAGE" %{buildroot}%{_includedir}/net-snmp/net-snmp-config.h > \
|
||||
grep -a -v "^#define PACKAGE" %{buildroot}%{_includedir}/net-snmp/net-snmp-config.h > \
|
||||
%{buildroot}%{_includedir}/net-snmp/net-snmp-config.h.new
|
||||
%{__mv} %{buildroot}%{_includedir}/net-snmp/net-snmp-config.h{.new,}
|
||||
%{__install} -D -m 0644 %{S:7} \
|
||||
%{buildroot}%{_fillupdir}/sysconfig.%{pkg_name}
|
||||
mv %{buildroot}%{_includedir}/net-snmp/net-snmp-config.h{.new,}
|
||||
install -D -m 0644 %{SOURCE10} %{buildroot}%{_fillupdir}/sysconfig.snmpd
|
||||
install -D -m 0644 %{SOURCE11} %{buildroot}%{_fillupdir}/sysconfig.snmptrapd
|
||||
# tmpfiles
|
||||
install -m 755 -d $RPM_BUILD_ROOT/%{_tmpfilesdir}
|
||||
install -m 644 %SOURCE20 $RPM_BUILD_ROOT/%{_tmpfilesdir}/net-snmp.conf
|
||||
#
|
||||
%{__ln_s} -f %{netsnmp_agentx_socket_dir_fhs} %{buildroot}%{netsnmp_agentx_socket_dir_rfc}
|
||||
ln -s -f %{netsnmp_agentx_socket_dir_fhs} %{buildroot}%{netsnmp_agentx_socket_dir_rfc}
|
||||
#
|
||||
rm -f "%buildroot/%_libdir"/*.la
|
||||
find %{buildroot} -type f -name "*.la" -delete -print
|
||||
|
||||
%preun
|
||||
%stop_on_removal snmpd
|
||||
%stop_on_removal snmptrapd
|
||||
%pre
|
||||
%service_add_pre snmpd.service snmptrapd.service
|
||||
|
||||
%post
|
||||
/sbin/chkconfig -c snmpd 2> /dev/null && FIRST_ARG=2
|
||||
%{fillup_only}
|
||||
%fillup_only snmpd
|
||||
%fillup_only snmptrapd
|
||||
%tmpfiles_create %{_tmpfilesdir}/net-snmp.conf
|
||||
%service_add_post snmpd.service snmptrapd.service
|
||||
|
||||
%preun
|
||||
%service_del_preun snmpd.service snmptrapd.service
|
||||
|
||||
%postun
|
||||
%restart_on_update snmpd
|
||||
%restart_on_update snmptrapd
|
||||
%{insserv_cleanup}
|
||||
%service_del_postun snmpd.service snmptrapd.service
|
||||
|
||||
%post -n %{library_name} -p /sbin/ldconfig
|
||||
|
||||
%postun -n %{library_name} -p /sbin/ldconfig
|
||||
%post -n %{libname} -p /sbin/ldconfig
|
||||
%postun -n %{libname} -p /sbin/ldconfig
|
||||
|
||||
%files
|
||||
%defattr(-,root,root)
|
||||
%doc AGENT.txt COPYING EXAMPLE.conf EXAMPLE.conf.def
|
||||
%doc FAQ NEWS TODO CHANGES
|
||||
%doc README README.agent-mibs README.agentx README.krb5 README.snmpv3 README.thread
|
||||
%dir /etc/snmp
|
||||
%config(noreplace) /etc/snmp/snmpd.conf
|
||||
%config /etc/init.d/snmpd
|
||||
%config /etc/init.d/snmptrapd
|
||||
%dir %{_sysconfdir}/snmp
|
||||
%config(noreplace) %{_sysconfdir}/snmp/snmpd.conf
|
||||
%{_unitdir}/snmpd.service
|
||||
%{_unitdir}/snmptrapd.service
|
||||
%{_tmpfilesdir}/net-snmp.conf
|
||||
%{_bindir}/encode_keychange
|
||||
%{_bindir}/fixproc
|
||||
%{_bindir}/ipf-mod.pl
|
||||
@ -359,32 +343,31 @@ rm -f "%buildroot/%_libdir"/*.la
|
||||
%{_bindir}/net-snmp-cert
|
||||
%{_bindir}/agentxtrap
|
||||
%{_bindir}/snmp-bridge-mib
|
||||
%dir %{_prefix}/lib/net-snmp
|
||||
%dir %{_prefix}/lib/net-snmp/agents
|
||||
%dir %{_libexecdir}/net-snmp
|
||||
%dir %{_libexecdir}/net-snmp/agents
|
||||
%{_mandir}/man[158]/*
|
||||
%{_sbindir}/*
|
||||
/var/lib/net-snmp
|
||||
%{_localstatedir}/lib/net-snmp
|
||||
%dir %ghost %attr(700,root,root) %{netsnmp_agentx_socket_dir_fhs}
|
||||
%ghost %{netsnmp_logfile}
|
||||
%config(noreplace) /etc/logrotate.d/net-snmp
|
||||
%{_fillupdir}/sysconfig.%{pkg_name}
|
||||
%config(noreplace) %{_sysconfdir}/logrotate.d/net-snmp
|
||||
%{_fillupdir}/sysconfig.snmpd
|
||||
%{_fillupdir}/sysconfig.snmptrapd
|
||||
%{netsnmp_agentx_socket_dir_rfc}
|
||||
%{_datadir}/snmp/snmpconf-data/
|
||||
%{_datadir}/snmp/snmp_perl.pl
|
||||
%{_datadir}/snmp/snmp_perl_trapd.pl
|
||||
|
||||
%files -n snmp-mibs
|
||||
%defattr(-,root,root)
|
||||
%dir %{_datadir}/snmp
|
||||
%{_datadir}/snmp/mibs/
|
||||
|
||||
%files -n %{library_name}
|
||||
%defattr(-,root,root)
|
||||
%files -n %{libname}
|
||||
%license COPYING
|
||||
%{_libdir}/libsnmp*.so.*
|
||||
%{_libdir}/libnetsnmp*.so.*
|
||||
|
||||
%files devel
|
||||
%defattr(-,root,root)
|
||||
%doc ChangeLog PORTING
|
||||
%{_mandir}/man3/*
|
||||
%{_includedir}/ucd-snmp
|
||||
@ -396,20 +379,21 @@ rm -f "%buildroot/%_libdir"/*.la
|
||||
%{_datadir}/snmp/mib2c*
|
||||
|
||||
%files -n perl-SNMP
|
||||
%defattr(-,root,root)
|
||||
%{perl_vendorarch}/auto/SNMP
|
||||
%{perl_vendorarch}/auto/NetSNMP
|
||||
%{perl_vendorarch}/auto/Bundle
|
||||
%{perl_vendorarch}/SNMP.pm
|
||||
%{perl_vendorarch}/NetSNMP
|
||||
%{_bindir}/tkmib
|
||||
%if 0%{?suse_version} <= 1130
|
||||
/var/adm/perl-modules/net-snmp
|
||||
|
||||
%if %{with python2}
|
||||
%files -n python2-%{name}
|
||||
%doc README
|
||||
%{python2_sitearch}/*
|
||||
%endif
|
||||
|
||||
%files python
|
||||
%defattr(-,root,root)
|
||||
%files -n python3-%{name}
|
||||
%doc README
|
||||
%{python_sitearch}/*
|
||||
%{python3_sitearch}/*
|
||||
|
||||
%changelog
|
||||
|
@ -1,60 +0,0 @@
|
||||
## Path: System/Net-SNMP
|
||||
## Description: Log level of the snmp server.
|
||||
## Type: string(!,a,c,e,w,n,i,d,0,1,2,3,4,5,6,7)
|
||||
## Default: n
|
||||
#
|
||||
# Defines the log level for snmpd and snmptrapd.
|
||||
#
|
||||
# The default is "n" (5, LOG_NOTICE)
|
||||
#
|
||||
SNMPD_LOGLEVEL="n"
|
||||
|
||||
## Path: System/Net-SNMP
|
||||
## Description: En-/Disables SNMP SMUX support.
|
||||
## Type: yesno
|
||||
## Default: yes
|
||||
#
|
||||
# Setting this to "no" prevents snmpd from binding to TCP port 199.
|
||||
#
|
||||
# The default is "yes" to provide backward compatibility.
|
||||
#
|
||||
SNMPD_USE_SMUX="yes"
|
||||
|
||||
## Path: System/Net-SNMP
|
||||
## Description: Connection logging.
|
||||
## Type: yesno
|
||||
## Default: yes
|
||||
#
|
||||
# If this setting is "yes" and $SNMPD_LOGLEVEL is set to "i" (LOG_INFO)
|
||||
# or "d" (LOG_DEBUG), snmpd will log all successful connections.
|
||||
#
|
||||
# Setting it to "no" will prevent this kind of log regardless of the
|
||||
# configured log level.
|
||||
#
|
||||
# The default is "yes" to provide backward compatibility.
|
||||
#
|
||||
SNMPD_LOG_SUCCESSFUL_CONNECTIONS="yes"
|
||||
|
||||
## Path: System/Net-SNMP
|
||||
## Description: Log Destination
|
||||
## Type: string(F,S)
|
||||
## Default: S
|
||||
#
|
||||
# Defines the log destination for snmpd and snmptrapd.
|
||||
#
|
||||
# By setting it to "F", snmpd will write log messages into '/var/log/net-snmpd.log'.
|
||||
#
|
||||
# The default is "S" to log messages through the syslog service.
|
||||
#
|
||||
SNMPD_LOGDEST="S"
|
||||
|
||||
## Path: System/Net-SNMP
|
||||
## Description: Listening IP addresses
|
||||
## Type: string
|
||||
## Default: "" (empty - listen on all interfaces)
|
||||
#
|
||||
# Defines the IP address(es) that snmpd and snmptrapd binds to.
|
||||
# If no address is defined the daemon will listen on all interfaces.
|
||||
#
|
||||
SNMPD_LISTEN=""
|
||||
|
194
rc.snmpd
194
rc.snmpd
@ -1,194 +0,0 @@
|
||||
#! /bin/sh
|
||||
# Copyright (c) 1996-2011 SuSE GmbH Nuernberg, Germany. All rights reserved.
|
||||
#
|
||||
# Author: Christopher Mahmood, Remo Behn
|
||||
#
|
||||
# /etc/init.d/snmpd
|
||||
#
|
||||
### BEGIN INIT INFO
|
||||
# Provides: net-snmp snmp snmpd
|
||||
# Required-Start: $remote_fs
|
||||
# Should-Start: $syslog $network
|
||||
# Required-Stop: $remote_fs
|
||||
# Should-Stop: $syslog $network
|
||||
# Default-Start: 2 3 5
|
||||
# Default-Stop: 0 1 6
|
||||
# Description: Net-SNMP agent
|
||||
# Short-Description: Net-SNMP agent
|
||||
### END INIT INFO
|
||||
|
||||
SNMPD=/usr/sbin/snmpd
|
||||
AGENTDIR=/usr/lib/net-snmp/agents
|
||||
SNMPDCONF=/etc/snmp/snmpd.conf
|
||||
SNMPD_PID=/var/run/snmpd.pid
|
||||
|
||||
test -x $SNMPD || exit 5
|
||||
|
||||
# Check for existence of needed config file and read it
|
||||
SNMPD_CONFIG=/etc/sysconfig/net-snmp
|
||||
test -r $SNMPD_CONFIG || { echo "$SNMPD_CONFIG not existing";
|
||||
if [ "$1" = "stop" ]; then exit 0;
|
||||
else exit 6; fi; }
|
||||
|
||||
# Read config
|
||||
. $SNMPD_CONFIG
|
||||
|
||||
# Shell functions sourced from /etc/rc.status:
|
||||
# rc_check check and set local and overall rc status
|
||||
# rc_status check and set local and overall rc status
|
||||
# rc_status -v ditto but be verbose in local rc status
|
||||
# rc_status -v -r ditto and clear the local rc status
|
||||
# rc_failed set local and overall rc status to failed
|
||||
# rc_failed <num> set local and overall rc status to <num><num>
|
||||
# rc_reset clear local rc status (overall remains)
|
||||
# rc_exit exit appropriate to overall rc status
|
||||
. /etc/rc.status
|
||||
|
||||
# First reset status of this service
|
||||
rc_reset
|
||||
|
||||
# Return values acc. to LSB for all commands but status:
|
||||
# 0 - success
|
||||
# 1 - generic or unspecified error
|
||||
# 2 - invalid or excess argument(s)
|
||||
# 3 - unimplemented feature (e.g. "reload")
|
||||
# 4 - insufficient privilege
|
||||
# 5 - program is not installed
|
||||
# 6 - program is not configured
|
||||
# 7 - program is not running
|
||||
#
|
||||
# Note that starting an already running service, stopping
|
||||
# or restarting a not-running service as well as the restart
|
||||
# with force-reload (in case signalling is not supported) are
|
||||
# considered a success.
|
||||
|
||||
# check whether to enable agentx support and get list of installed
|
||||
# agents
|
||||
get_agents()
|
||||
{
|
||||
agents=
|
||||
agentargs=''
|
||||
for agent in $AGENTDIR/*; do
|
||||
test -x $agent || continue
|
||||
agents="$agents $agent"
|
||||
agentargs="-x /var/run/agentx/master"
|
||||
done
|
||||
}
|
||||
|
||||
case "$1" in
|
||||
start)
|
||||
echo -n "Starting snmpd"
|
||||
#
|
||||
# log destination "F" for file.
|
||||
# do not even try to start if the log file is (2GB-1MB) big.
|
||||
# the snmpd doesnt handle LFS properly
|
||||
#
|
||||
if [ ${SNMPD_LOGDEST:-F} = "F" ]; then
|
||||
SNMPD_LOGTARGET="${SNMPD_LOGTARGET:-/var/log/net-snmpd.log}"
|
||||
if [ -e "$SNMPD_LOGTARGET" ] ; then
|
||||
SNMPD_SIZE_LOGFILE="$(stat -c "%s" $SNMPD_LOGTARGET)"
|
||||
SNMPD_SIZE_MAX="1073741824"
|
||||
if [ $SNMPD_SIZE_LOGFILE -gt $SNMPD_SIZE_MAX ] ; then
|
||||
echo -e "\n\"$SNMPD_LOGTARGET\" is too large. Running 'logrotate' for net-snmp." >&2
|
||||
/usr/sbin/logrotate /etc/logrotate.d/net-snmp
|
||||
fi
|
||||
fi
|
||||
fi
|
||||
#
|
||||
# log destination "S" for syslog.
|
||||
# define syslog facility to 'd' for LOG_DAEMON.
|
||||
#
|
||||
if [ ${SNMPD_LOGDEST:-F} = "S" ]; then
|
||||
SNMPD_LOGTARGET="d"
|
||||
fi
|
||||
get_agents
|
||||
# Don't add -c /etc/snmp/snmpd.conf, as it is loaded by default.
|
||||
if [ $SNMPDCONF = "/etc/snmp/snmpd.conf" ]; then
|
||||
SNMPDCONF=""
|
||||
else
|
||||
SNMPDCONF="-c $SNMPDCONF"
|
||||
fi
|
||||
case "${SNMPD_USE_SMUX:-yes}" in
|
||||
[Nn][Oo])
|
||||
SNMPDNOSMUX="-I -smux"
|
||||
;;
|
||||
esac
|
||||
case "${SNMPD_LOG_SUCCESSFUL_CONNECTIONS:-yes}" in
|
||||
[Nn][Oo])
|
||||
SNMPDNOTCPWRAPPERLOG="--dontLogTCPWrappersConnects"
|
||||
;;
|
||||
esac
|
||||
# /var/run can now be mounted as tmpfs
|
||||
if [ ! -d /var/run/agentx ]; then
|
||||
mkdir -m 0700 /var/run/agentx
|
||||
fi
|
||||
startproc $SNMPD $SNMPDCONF -r -A -L${SNMPD_LOGDEST:-F} ${SNMPD_LOGLEVEL:-n} $SNMPD_LOGTARGET -p $SNMPD_PID $agentargs $SNMPDNOSMUX $SNMPDNOTCPWRAPPERLOG $SNMPD_LISTEN
|
||||
rc_status -v
|
||||
rc_reset
|
||||
|
||||
# start all agents
|
||||
if test -n "$agents"; then
|
||||
usleep 300000
|
||||
for agent in $agents; do
|
||||
echo -en "\tStarting `basename $agent`"
|
||||
startproc -t1 $agent
|
||||
rc_status -v ; rc_reset
|
||||
done
|
||||
fi
|
||||
;;
|
||||
stop)
|
||||
echo -n "Shutting down snmpd:"
|
||||
killproc -TERM $SNMPD
|
||||
rc_status -v ; rc_reset
|
||||
# we also need to make sure all agents die
|
||||
get_agents
|
||||
if test -n "$agents"; then
|
||||
for agent in $AGENTDIR/*; do
|
||||
test -x $agent || continue
|
||||
echo -ne "\tShutting down `basename $agent`:"
|
||||
killproc $agent
|
||||
rc_status -v ; rc_reset
|
||||
done
|
||||
fi
|
||||
;;
|
||||
try-restart)
|
||||
$0 status >/dev/null && $0 restart
|
||||
rc_status
|
||||
;;
|
||||
restart)
|
||||
$0 stop
|
||||
$0 start
|
||||
rc_status
|
||||
;;
|
||||
force-reload)
|
||||
echo -n "Reload service snmpd:"
|
||||
killproc -HUP $SNMPD
|
||||
rc_status -v
|
||||
;;
|
||||
reload)
|
||||
echo -n "Reload service snmpd:"
|
||||
killproc -HUP $SNMPD
|
||||
rc_status -v
|
||||
;;
|
||||
status)
|
||||
echo -n "Checking for service snmpd:"
|
||||
checkproc $SNMPD
|
||||
rc_status -v
|
||||
get_agents
|
||||
if test -n "$agents"; then
|
||||
echo -e "Checking for agents:"
|
||||
|
||||
for agent in $agents; do
|
||||
echo -en "\t`basename $agent`"
|
||||
checkproc $agent
|
||||
rc_status -v
|
||||
done
|
||||
fi
|
||||
;;
|
||||
*)
|
||||
echo "Usage: $0 {start|stop|try-restart|restart|force-reload|reload|status}"
|
||||
exit 1
|
||||
;;
|
||||
esac
|
||||
rc_exit
|
||||
|
129
rc.snmptrapd
129
rc.snmptrapd
@ -1,129 +0,0 @@
|
||||
#! /bin/sh
|
||||
# Copyright (c) 1996-2011 SuSE GmbH Nuernberg, Germany. All rights reserved.
|
||||
#
|
||||
# Author: Christopher Mahmood
|
||||
#
|
||||
# /etc/init.d/snmptrapd
|
||||
#
|
||||
### BEGIN INIT INFO
|
||||
# Provides: snmptrapd
|
||||
# Required-Start: $network
|
||||
# Required-Stop: $network
|
||||
# Default-Start: 2 3 5
|
||||
# Default-Stop: 0 1 6
|
||||
# Description: Receive and log SNMP trap messages
|
||||
# Short-Description: Receive and log SNMP trap messages
|
||||
### END INIT INFO
|
||||
|
||||
SNMPTRAPD=/usr/sbin/snmptrapd
|
||||
SNMPTRAPD_CONF="/etc/snmp/snmptrapd.conf"
|
||||
SNMPTRAPD_LOGTARGET="/var/log/net-snmpd.log"
|
||||
SNMPTRAPD_PID="/var/run/snmptrapd.pid"
|
||||
|
||||
test -x $SNMPTRAPD || { echo "$SNMPTRAPD not installed";
|
||||
if [ "$1" = "stop" ]; then exit 0;
|
||||
else exit 5; fi; }
|
||||
|
||||
# Check for existence of needed config file and read it
|
||||
SNMPD_CONFIG=/etc/sysconfig/net-snmp
|
||||
test -r $SNMPD_CONFIG || { echo "$SNMPD_CONFIG doesn't exist.";
|
||||
if [ "$1" = "stop" ]; then exit 0;
|
||||
else exit 6; fi; }
|
||||
|
||||
# Read config
|
||||
. $SNMPD_CONFIG
|
||||
|
||||
# Shell functions sourced from /etc/rc.status:
|
||||
# rc_check check and set local and overall rc status
|
||||
# rc_status check and set local and overall rc status
|
||||
# rc_status -v ditto but be verbose in local rc status
|
||||
# rc_status -v -r ditto and clear the local rc status
|
||||
# rc_failed set local and overall rc status to failed
|
||||
# rc_failed <num> set local and overall rc status to <num><num>
|
||||
# rc_reset clear local rc status (overall remains)
|
||||
# rc_exit exit appropriate to overall rc status
|
||||
. /etc/rc.status
|
||||
|
||||
# First reset status of this service
|
||||
rc_reset
|
||||
|
||||
# Return values acc. to LSB for all commands but status:
|
||||
# 0 - success
|
||||
# 1 - generic or unspecified error
|
||||
# 2 - invalid or excess argument(s)
|
||||
# 3 - unimplemented feature (e.g. "reload")
|
||||
# 4 - insufficient privilege
|
||||
# 5 - program is not installed
|
||||
# 6 - program is not configured
|
||||
# 7 - program is not running
|
||||
#
|
||||
# Note that starting an already running service, stopping
|
||||
# or restarting a not-running service as well as the restart
|
||||
# with force-reload (in case signalling is not supported) are
|
||||
# considered a success.
|
||||
if [ $SNMPTRAPD_CONF = "/etc/snmp/snmptrapd.conf" ]; then
|
||||
SNMPTRAPD_CONF=""
|
||||
else
|
||||
SNMPTRAPD_CONF="-c $SNMPTRAPD_CONF"
|
||||
fi
|
||||
#
|
||||
# If log destination is set to "F" define a log file.
|
||||
#
|
||||
if [ ${SNMPD_LOGDEST:-S} = "F" ]; then
|
||||
SNMPTRAPD_LOGTARGET="${SNMPTRAPD_LOGTARGET:-/var/log/net-snmpd.log}"
|
||||
fi
|
||||
#
|
||||
# If log destionation is set to "S" use syslog LOG_DAEMON facility.
|
||||
#
|
||||
if [ ${SNMPD_LOGDEST:-S} = "S" ]; then
|
||||
SNMPTRAPD_LOGTARGET="d"
|
||||
fi
|
||||
|
||||
case "$1" in
|
||||
start)
|
||||
echo -n "Starting snmptrapd: "
|
||||
startproc $SNMPTRAPD $SNMPTRAPD_CONF -A -L${SNMPD_LOGDEST:-S} ${SNMPD_LOGLEVEL:-n} $SNMPTRAPD_LOGTARGET -p $SNMPTRAPD_PID $SNMPD_LISTEN
|
||||
|
||||
rc_status -v
|
||||
;;
|
||||
stop)
|
||||
echo -n "Shutting down snmptrapd: "
|
||||
killproc -TERM $SNMPTRAPD
|
||||
if [ -f "$SNMPTAPDD_LOGFILE" ]; then
|
||||
DATE=$(date +"%Y%m%d")
|
||||
/bin/mv "$SNMPTAPDD_LOGFILE" "$SNMPTAPDD_LOGFILE-$DATE"
|
||||
test -x /usr/bin/bzip2 && /usr/bin/bzip2 "$SNMPTAPDD_LOGFILE-$DATE"
|
||||
fi
|
||||
rc_status -v
|
||||
;;
|
||||
try-restart)
|
||||
$0 status >/dev/null && $0 restart
|
||||
rc_status
|
||||
;;
|
||||
restart)
|
||||
$0 stop
|
||||
$0 start
|
||||
rc_status
|
||||
;;
|
||||
force-reload)
|
||||
echo -n "Reload service snmptrapd: "
|
||||
killproc -HUP $SNMPTRAPD
|
||||
rc_status -v
|
||||
;;
|
||||
reload)
|
||||
echo -n "Reload service snmptrapd: "
|
||||
killproc -HUP $SNMPTRAPD
|
||||
rc_status -v
|
||||
;;
|
||||
status)
|
||||
echo -n "Checking for service snmptrapd: "
|
||||
checkproc $SNMPTRAPD
|
||||
rc_status -v
|
||||
;;
|
||||
*)
|
||||
echo "Usage: $0 {start|stop|try-restart|restart|force-reload|reload|status}"
|
||||
exit 1
|
||||
;;
|
||||
esac
|
||||
rc_exit
|
||||
|
13
snmpd.service
Normal file
13
snmpd.service
Normal file
@ -0,0 +1,13 @@
|
||||
[Unit]
|
||||
Description=Simple Network Management Protocol (SNMP) Daemon.
|
||||
After=syslog.target network.target
|
||||
|
||||
[Service]
|
||||
Type=notify
|
||||
Environment=OPTIONS="-LS0-6d"
|
||||
EnvironmentFile=-/etc/sysconfig/snmpd
|
||||
ExecStart=/usr/sbin/snmpd $OPTIONS -f
|
||||
ExecReload=/bin/kill -HUP $MAINPID
|
||||
|
||||
[Install]
|
||||
WantedBy=multi-user.target
|
9
snmpd.sysconfig
Normal file
9
snmpd.sysconfig
Normal file
@ -0,0 +1,9 @@
|
||||
## Path: System/Net-SNMP
|
||||
## Description: snmpd command line options
|
||||
## Type: string
|
||||
## Default: ""
|
||||
#
|
||||
# '-f' is implicitly added by snmptrapd systemd unit file
|
||||
# OPTIONS="-L60-6d"
|
||||
#
|
||||
OPTIONS=""
|
13
snmptrapd.service
Normal file
13
snmptrapd.service
Normal file
@ -0,0 +1,13 @@
|
||||
[Unit]
|
||||
Description=Simple Network Management Protocol (SNMP) Trap Daemon.
|
||||
After=syslog.target network.target
|
||||
|
||||
[Service]
|
||||
Type=notify
|
||||
Environment=OPTIONS="-Lsd"
|
||||
EnvironmentFile=-/etc/sysconfig/snmptrapd
|
||||
ExecStart=/usr/sbin/snmptrapd $OPTIONS -f
|
||||
ExecReload=/bin/kill -HUP $MAINPID
|
||||
|
||||
[Install]
|
||||
WantedBy=multi-user.target
|
9
snmptrapd.sysconfig
Normal file
9
snmptrapd.sysconfig
Normal file
@ -0,0 +1,9 @@
|
||||
## Path: System/Net-SNMP
|
||||
## Description: snmptrapd command line options
|
||||
## Type: string
|
||||
## Default: ""
|
||||
#
|
||||
# '-f' is implicitly added by snmptrapd systemd unit file
|
||||
# OPTIONS="-Lsd"
|
||||
#
|
||||
OPTIONS=""
|
Loading…
x
Reference in New Issue
Block a user