From e5eb99e909edaecba7fe981c1d4c127c013bf74a1de362f23c897ae5ff375b1d Mon Sep 17 00:00:00 2001 From: Dirk Mueller Date: Wed, 7 Oct 2015 08:00:52 +0000 Subject: [PATCH] Accepting request 336886 from home:frispete:python MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - updated to 4.3.0 + Critical error fixed in key localization procedure for AES192/AES256/3DES cyphers. Previous versions might never worked properly in this respect. Initial PySMI integration. Original ASN.1 MIBs could now be parsed, stored at a local pysnmp MIBs repository and loaded into SNMP Engine. Relevant example scripts added. Obsolete libsmi-based scripts removed. + Major rewrite of native SNMPv3 CommandGenerator and NotificationOriginator applications towards the following goals: + avoid binding to specific SNMP engine instance to promote single SNMP app instance using many SNMP engine instances + support two APIs for working with request data: one operates on the whole PDU object while the other on PDU contents + keep callback context data in stack rather than in stateful application cache + newly introduced sendVarBinds() method offers a more functional and logical signatures. + Promote the use of dedicated classes for dealing with OID-value pairs. Instances of those classes resemble OBJECT-IDENTITY, OBJECT-TYPE and NOTIFICATION-TYPE MIB structures. + Oneliner API reworked to become more generic: its LCD configuration shortcuts and and var-bindings processing code split off SNMP apps classes to stand-alone objects. The whole API also moved up in package naming hierarchy and becomes ‘pysnmp.hlapi.asyncore’ (hlapi is apparently an African fish). Old oneliner API remains fully operational at its original location. + Synchronous oneliner apps redesigned to offer Python generator-based API along with a more comprehensive set of accepted parameters. + Asyncore-based asynchronous apps reworked to become functions. + Twisted API moved entirely into high-level domain to be aligned with other high-level APIs. This WILL BREAK backward compatibility for those OBS-URL: https://build.opensuse.org/request/show/336886 OBS-URL: https://build.opensuse.org/package/show/devel:languages:python/python-pysnmp?expand=0&rev=20 --- pysnmp-4.2.5.tar.gz | 3 - pysnmp-4.3.0.tar.gz | 3 + python-pysnmp.changes | 167 ++++++++++++++++++++++++++++++++++++++++++ python-pysnmp.spec | 33 ++++----- 4 files changed, 186 insertions(+), 20 deletions(-) delete mode 100644 pysnmp-4.2.5.tar.gz create mode 100644 pysnmp-4.3.0.tar.gz diff --git a/pysnmp-4.2.5.tar.gz b/pysnmp-4.2.5.tar.gz deleted file mode 100644 index 2635464..0000000 --- a/pysnmp-4.2.5.tar.gz +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:c46e65d99a604f690b3d5800e2f6e26e1ed9a3c7f7e17e7b4b4d897150f7077f -size 225014 diff --git a/pysnmp-4.3.0.tar.gz b/pysnmp-4.3.0.tar.gz new file mode 100644 index 0000000..4179a75 --- /dev/null +++ b/pysnmp-4.3.0.tar.gz @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:8baf97fb1c8bc4376e151d570b6b8358a0e93f002fae6d67ea78b0283bf64574 +size 305695 diff --git a/python-pysnmp.changes b/python-pysnmp.changes index a43656d..f6f03c4 100644 --- a/python-pysnmp.changes +++ b/python-pysnmp.changes @@ -1,3 +1,170 @@ +------------------------------------------------------------------- +Tue Oct 6 10:05:12 UTC 2015 - hpj@urpla.net + +- updated to 4.3.0 + + Critical error fixed in key localization procedure for AES192/AES256/3DES + cyphers. Previous versions might never worked properly in this respect. + Initial PySMI integration. Original ASN.1 MIBs could now be parsed, stored + at a local pysnmp MIBs repository and loaded into SNMP Engine. Relevant + example scripts added. Obsolete libsmi-based scripts removed. + + Major rewrite of native SNMPv3 CommandGenerator and NotificationOriginator + applications towards the following goals: + + avoid binding to specific SNMP engine instance to promote single SNMP + app instance using many SNMP engine instances + + support two APIs for working with request data: one operates on the + whole PDU object while the other on PDU contents + + keep callback context data in stack rather than in stateful application + cache + + newly introduced sendVarBinds() method offers a more functional and + logical signatures. + + Promote the use of dedicated classes for dealing with OID-value pairs. + Instances of those classes resemble OBJECT-IDENTITY, OBJECT-TYPE and + NOTIFICATION-TYPE MIB structures. + + Oneliner API reworked to become more generic: its LCD configuration + shortcuts and and var-bindings processing code split off SNMP apps + classes to stand-alone objects. The whole API also moved up in package + naming hierarchy and becomes ‘pysnmp.hlapi.asyncore’ (hlapi is + apparently an African fish). Old oneliner API remains fully operational + at its original location. + + Synchronous oneliner apps redesigned to offer Python generator-based + API along with a more comprehensive set of accepted parameters. + + Asyncore-based asynchronous apps reworked to become functions. + + Twisted API moved entirely into high-level domain to be aligned with + other high-level APIs. This WILL BREAK backward compatibility for those + apps that use Twisted API. + + Keep backward compatibility for all existing major/documented interfaces + + Sphinx documentation added to source code and example scripts. Library + documentation converted from .html into RsT markup. + + Execution Observer facility implemented to give app an inside view of SNMP + engine inner workings. This is thought to be a generic framework for viewing + (and modifying) various internal states of pysnmp engine. Previously + introduced non-standard APIs (like getting peer’s transport endpoint which + is not suggested in RFCs) will be gradually migrated to this new framework. + + Initial support for the asyncio & Trollius frameworks and coroutines-based + SNMP Applications interfaces added. Both IPv4 and IPv6 datagram transports + are currently supported. + + Original asynsock transport and AsyncsockDispatcher renamed into asyncore + and AsyncoreDispatcher respectively to provide better hint to fellow devs on + the underlying transport being used. Backward compatibility preserved. + + The asyncore-based transport subsystem extended to support POSIX sendmsg()/ + recvmsg() based socket communication what could be used, among other things, + in the context of a transparent SNMP proxy application. Technically, the + following features were brought into pysnmp with this update: + + Sending SNMP packets from a non-local IP address + + Receiving IP packets for non-local IP addresses + + Responding to SNMP requests from exactly the same IP address the query + was sent to. This proves to be useful when listening on both primary and + secondary IP interfaces. + + Internal oneliner apps configuration cache moved from respective apps + objects to [a singular] snmpEngine “user context” object. That would allow + for better cache reuse and allow for a single app working with many + snmpEngine instances. + + Oneliner GETBULK Command Generator now strips possible excessive OIDs off + the bottom of returned var-binds table. + + Constraints assignment shortcut added to some base rfc1902 types (Integer, + Integer32, OctetString, Bits). That formally constitutes ASN.1 sub-typing. + + Built-in debugging is now based on Python logging module. + + Examples on a single Transport Dispatcher use with multiple SnmpEngine + instances applicatons added. + + Example script on transport timeout & retries manipulation added. + + Example script explaining incoming message’s communityName re-mapping added. + + Broadcast socket option can now be enabled with the .enableBroadcast() call + for any datagram-based transport (namely, UDP and UDP6). + + AbstractTransportDispatcher’s jobStarted() and jobFinished() methods now + accept optional ‘count’ parameter which is a way for an app to indicate how + many responses are expected or have been processed in bulk. + + Example script on SNMP Agents UDP broadcast-based discovery added. + + Oneliner transport object now supports setLocalAddress() method to force + socket binding to specified local interface. + + New public DgramSocketTransport.getLocalAddress() returns local endpoint + address underlying BSD socket is currently bound to. + + Passing request details to access control callback at CommandResponder + reworked towards more robust and simple design with the execution observer + facility. + + All MIBs rebuilt with pysmi. + + MIB instrumentation example improved to cover table index building facility. + + Handle the case of null writer at Debug printer. + + Do not cache snmpEngineId & snmpAdminString at CommandGenerator to let it + be reused with many different snmpEngines. + + TRAP PDU agent address evaluation at proto.api made lazy to improve startup + time. + + Multiple fixes to verify pyasn1 decoder.decode() return to withstand broken + SNMP messages or its components. + + First attempt made to make some of SNMP Engine settings persistent across + reboots. + + Make config.delTransport() returning detached transport object. Asyncio + examples now use this facility to explicitly shutdown transport object. + + Parts of SMIv1 remnant MIBs (RFC1213-MIB, RFC1158-MIB) added to provide + complete compatibility with SMIv1. Symbols defined in these MIBs only + present in SMIv1 so they can’t be substituted with their SMIv2 analogues. + + MibBuilder.addMibSources() convenience method added. + + The smi.MibBuilder() will now raise more specific exceptions (MibLoadError, + MibNotFoundError) on MIB loading problems rather than more generic SmiError. + + The oneliner’s MibVariable MIB lookup subsystem redesigned for more + generality to mimic OBJECT-TYPE macro capabilities related to SNMP PDU + handling. The two new classed are ObjectIdentity and ObjectType. The + ObjectIdentity class additionally supports just a MIB module name + initializer in which case if resolves into either first or last symbol in + given MIB. Another option is just a MIB symbol initializer without + specifying MIB module. This new subsystem is moved from the scope of + oneliner to more common pysnmp.smi.rfc1903 scope to more naturally invoke + it from whatever part of pysnmp requires MIB services. + + MibBuilder now prepends the contents of environment variables it recognizes + (PYSNMP_MIB_DIR, PYSNMP_MIB_DIRS, PYSNMP_MIB_PKGS) rather than using them + instead of its default core MIBs. + + Removed RowStatus default value as it may collide with possible subclass + constraints. + + A few additional MIB tree management methods added to MibViewController to + better address ordered nature of MIB tree nodes (namely, getFirst*, + getLast* family of methods). + + Wheel distribution format now supported. + + Fix to authoritative engine side snmpEngineID discovery procedure: respond + with notInTimeWindows rather then with unsupportedSecurityLevel at time + synchronization phase. + + Fix to rfc1902.Bits type to make it accepting hex and binary initializers, + cope with missing bits identifieirs at prettyPrint(). + + Memory leak fixed in CommandForwarder examples. + + Fix to BULK CommandGenerator to use the same nonRepeaters OIDs across + multiple GETBULK iterations so returned table for nonRepeaters columns + would hold the same var-bind. + + Fix to CommandGenerator to make sendRequestHandle persistent across + multiple iterations of GETNEXT/GETBULK queries. + + Fix to sendNotification() error handling at NotificationOriginator. + + Fix to preserve possible ‘fixed length’ setting atrfc1902.OctetString on + clone()’ing and subtype()’ing. + + Fix to rfc1902.OctetString & Bits to base them on OctetString class to make + the ‘fixed length’ property working. + + Fix to .clone() method of rfc1902.Bits class to make its signature matching + the rest of classes. This may broke code which used to pass namedValue + parameter positionally rather than binding it by name. + + Fix to PDU translation service (proto.proxy.rfc2576) to make it + initializing errorIndex & errorStatus components of the resulting PDU. + + Fix to MsgAndPduDispatcher.sendPdu() to clean up request queue on + pysnmp-level processing failure. + + Fix to SNMPv1/v2c message processing subsystem to make it serving unique + PDU request-id’s in both outgoing and incoming confirmed and response PDU + types. Duplicate request-id’s in unrelated PDUs may cause cache errors + otherwise. + + Fix to licensing terms of multiple twisted backend modules to make the + whole pysnmp package licensed under BSD 2-Clause license. This change has + been explicitly permitted by the original modules authors. + + Fix to asyncore-based transport not to use asyncore’s cheap inheritance + from socket object what caused warnings. + + Fix at NotificationOriginator to make is using MibInstrumentationController + when expanding Notification OBJECTS into Managed Objects Instances. + + Missing wrongLength and wrongEncoding SMI errors added. + + Fix to file descriptor leak at MibBuilder. + + Fix to rfc2576.v2ToV1() to ignore impossible errorStatus. + + Fix to rfc2576.v1ToV2() to reset ErrorStatus==noSuchName on proxying. + + Fix to smi.builder to explicitly fail on any MIB file access error (but + ENOENT) and raise IOError uniformly on any directory/egg access failure. + + Fix to infinite loop at config.delV3User(). + +------------------------------------------------------------------- +Mon Jul 7 13:17:06 UTC 2014 - hpj@urpla.net + +- updated to 4.2.6-rc0 + ------------------------------------------------------------------- Fri Mar 28 12:55:52 UTC 2014 - speilicke@suse.com diff --git a/python-pysnmp.spec b/python-pysnmp.spec index 6f4ce39..7bb6c31 100644 --- a/python-pysnmp.spec +++ b/python-pysnmp.spec @@ -1,7 +1,7 @@ # # spec file for package python-pysnmp # -# Copyright (c) 2014 SUSE LINUX Products GmbH, Nuernberg, Germany. +# Copyright (c) 2015 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 @@ -17,7 +17,7 @@ Name: python-pysnmp -Version: 4.2.5 +Version: 4.3.0 Release: 0 Url: http://pysnmp.sourceforge.net/ Summary: A pure-Python SNMPv1/v2c/v3 library @@ -26,10 +26,12 @@ Group: Development/Languages/Python Source: http://pypi.python.org/packages/source/p/pysnmp/pysnmp-%{version}.tar.gz BuildRoot: %{_tmppath}/%{name}-%{version}-build BuildRequires: python-devel -BuildRequires: python-pyasn1 -BuildRequires: python-pycrypto -Requires: python-pyasn1 -Requires: python-pycrypto +BuildRequires: python-pyasn1 >= 0.1.8 +BuildRequires: python-pycrypto >= .2.4.1 +BuildRequires: python-pysmi +Requires: python-pyasn1 >= 0.1.8 +Requires: python-pycrypto >= .2.4.1 +Requires: python-pysmi %if 0%{?suse_version} <= 1110 %{!?python_sitelib: %global python_sitelib %(python -c "from distutils.sysconfig import get_python_lib; print(get_python_lib())")} %else @@ -48,15 +50,13 @@ programming language: * py2exe and .egg friendly * Twisted binding -%package utils -Requires: python-pysnmp -Summary: Python-pysnmp libsmi utilities +%package doc +Summary: PySNMP documentation Group: Development/Tools/Other -# Needed for build-pysnmp-mib -Requires: libsmi > 0.4.5 +Requires: %{name} = %{version} -%description utils -Utitilites used for the creation of python mib description files. +%description doc +PySNMP documentation and examples. %prep %setup -q -n pysnmp-%{version} @@ -70,13 +70,12 @@ chmod -x docs/net-snmptrapd.conf docs/net-snmpd.conf %files %defattr(-,root,root,-) -%doc CHANGES LICENSE README THANKS TODO docs examples +%doc CHANGES.txt LICENSE.txt README.txt THANKS.txt TODO.txt docs examples %{python_sitelib}/pysnmp/ %{python_sitelib}/pysnmp-%{version}-py%{py_ver}.egg-info -%files utils +%files doc %defattr(-,root,root) -%{_bindir}/libsmi2pysnmp -%{_bindir}/build-pysnmp-mib +%doc docs examples %changelog