From fd83e12feb6ae46c862c4fda3a79712b5a279544f4f52ac3e01be2921022b0c8 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Mark=C3=A9ta=20Machov=C3=A1?= Date: Fri, 13 Sep 2024 12:32:23 +0000 Subject: [PATCH] - Update to version 7.1.1 * Reimplemented walkCmd and bulkWalkCmd. - Update to version 7.1.0 * Removed pyasn1.compat dependency. * Switched to async DNS resolver. - Update to version 7.0.3 * The high-level API (hlapi) extended to cover lightweight SNMP v1arch in hope to ease the use of packet-level SNMP API. * The signature of the hlapi .sendNotification() call has changed to accept *varBinds instead of a sequence of varBinds. - Update to version 7.0.2 * Fixed a duplicate item issue in bulkWalkCmd. - Update to version 7.0.1 * Many really old backward-compatibility code snippets removed. Most importantly, everything related to (non-standard) UNIX domain socket transport are gone. * The MIB instrumentation API overhauled in backward incompatible way: + MIB instrumentation methods signatures simplified to accept just var-binds (as var-arg), the rest of the parameters packed into opaque kwargs + CommandResponder application passes snmpEngine and optionally user-supplied cbCtx object throughout the MIB instrumentation methods. The goal is to let MIB objects access/modify whatever custom Python objects they need while being called back. * Cherry-picked many minor fixes from etingof/master branch. - Update to version 7.0.0 * Applied PEP8 recommended names. This breaks backward compatibility. - Update to version 6.2.6 OBS-URL: https://build.opensuse.org/package/show/devel:languages:python/python-pysnmp?expand=0&rev=57 --- .gitattributes | 23 + .gitignore | 1 + pysnmp-5.0.28.tar.gz | 3 + pysnmp-6.2.4.tar.gz | 3 + pysnmp-7.1.1.tar.gz | 3 + python-pysnmp.changes | 1373 ++++++++++++++++++++++++++++++++++++++ python-pysnmp.spec | 93 +++ support-new-pyasn1.patch | 41 ++ 8 files changed, 1540 insertions(+) create mode 100644 .gitattributes create mode 100644 .gitignore create mode 100644 pysnmp-5.0.28.tar.gz create mode 100644 pysnmp-6.2.4.tar.gz create mode 100644 pysnmp-7.1.1.tar.gz create mode 100644 python-pysnmp.changes create mode 100644 python-pysnmp.spec create mode 100644 support-new-pyasn1.patch diff --git a/.gitattributes b/.gitattributes new file mode 100644 index 0000000..9b03811 --- /dev/null +++ b/.gitattributes @@ -0,0 +1,23 @@ +## Default LFS +*.7z filter=lfs diff=lfs merge=lfs -text +*.bsp filter=lfs diff=lfs merge=lfs -text +*.bz2 filter=lfs diff=lfs merge=lfs -text +*.gem filter=lfs diff=lfs merge=lfs -text +*.gz filter=lfs diff=lfs merge=lfs -text +*.jar filter=lfs diff=lfs merge=lfs -text +*.lz filter=lfs diff=lfs merge=lfs -text +*.lzma filter=lfs diff=lfs merge=lfs -text +*.obscpio filter=lfs diff=lfs merge=lfs -text +*.oxt filter=lfs diff=lfs merge=lfs -text +*.pdf filter=lfs diff=lfs merge=lfs -text +*.png filter=lfs diff=lfs merge=lfs -text +*.rpm filter=lfs diff=lfs merge=lfs -text +*.tbz filter=lfs diff=lfs merge=lfs -text +*.tbz2 filter=lfs diff=lfs merge=lfs -text +*.tgz filter=lfs diff=lfs merge=lfs -text +*.ttf filter=lfs diff=lfs merge=lfs -text +*.txz filter=lfs diff=lfs merge=lfs -text +*.whl filter=lfs diff=lfs merge=lfs -text +*.xz filter=lfs diff=lfs merge=lfs -text +*.zip filter=lfs diff=lfs merge=lfs -text +*.zst filter=lfs diff=lfs merge=lfs -text diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..57affb6 --- /dev/null +++ b/.gitignore @@ -0,0 +1 @@ +.osc diff --git a/pysnmp-5.0.28.tar.gz b/pysnmp-5.0.28.tar.gz new file mode 100644 index 0000000..17e513e --- /dev/null +++ b/pysnmp-5.0.28.tar.gz @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:404f84ff5d8b737d4b86cf078e5908b899ed22ca0d9d26a28d9b105f289d3476 +size 458256 diff --git a/pysnmp-6.2.4.tar.gz b/pysnmp-6.2.4.tar.gz new file mode 100644 index 0000000..3b13975 --- /dev/null +++ b/pysnmp-6.2.4.tar.gz @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:8b1346f561fdc53f13019c5ec2c108224b4935d5bb6d2c0133ca236bbae77665 +size 413802 diff --git a/pysnmp-7.1.1.tar.gz b/pysnmp-7.1.1.tar.gz new file mode 100644 index 0000000..b6c44aa --- /dev/null +++ b/pysnmp-7.1.1.tar.gz @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:151ecbbea3d54cdecebd4ddb74f565e18cb48b2c9471350bb1dd067ddd8b67b6 +size 429644 diff --git a/python-pysnmp.changes b/python-pysnmp.changes new file mode 100644 index 0000000..e775c6e --- /dev/null +++ b/python-pysnmp.changes @@ -0,0 +1,1373 @@ +------------------------------------------------------------------- +Thu Sep 12 17:46:06 UTC 2024 - Martin Hauke + +- Update to version 7.1.1 + * Reimplemented walkCmd and bulkWalkCmd. +- Update to version 7.1.0 + * Removed pyasn1.compat dependency. + * Switched to async DNS resolver. +- Update to version 7.0.3 + * The high-level API (hlapi) extended to cover lightweight SNMP + v1arch in hope to ease the use of packet-level SNMP API. + * The signature of the hlapi .sendNotification() call has changed + to accept *varBinds instead of a sequence of varBinds. +- Update to version 7.0.2 + * Fixed a duplicate item issue in bulkWalkCmd. +- Update to version 7.0.1 + * Many really old backward-compatibility code snippets removed. + Most importantly, everything related to (non-standard) UNIX + domain socket transport are gone. + * The MIB instrumentation API overhauled in backward incompatible + way: + + MIB instrumentation methods signatures simplified to accept + just var-binds (as var-arg), the rest of the parameters + packed into opaque kwargs + + CommandResponder application passes snmpEngine and optionally + user-supplied cbCtx object throughout the MIB instrumentation + methods. The goal is to let MIB objects access/modify whatever + custom Python objects they need while being called back. + * Cherry-picked many minor fixes from etingof/master branch. +- Update to version 7.0.0 + * Applied PEP8 recommended names. + This breaks backward compatibility. +- Update to version 6.2.6 + * Removed pyasn1.compat dependency. +- Update to version 6.2.5 + * Improved OrderedDict performance. + * User credentials changes are now reflected in the LCD. + * Other cleanup. + +------------------------------------------------------------------- +Mon Jul 29 08:33:51 UTC 2024 - Daniel Garcia + +- Update to version 6.2.4 + * Deleted more obsolete items. +- Update to version 6.2.3 + * Removed unused dependencies. +- Enable tests +- Get source from pypi, github tag doesn't have the latest version and + looks like the releases are not done in the github. + +------------------------------------------------------------------- +Sat Jul 20 09:33:35 UTC 2024 - Martin Hauke + +- Update to version 6.2.2 + * Cleaned up sync API leftover. + * Retired temporary sync API. + * Removed package postfix. A helper release to enable migration. + * Merged changes from 4.4.13. + * Fixed more access descriptors. + * Initial work to support pysmi-lextudio 1.3.0 and above. + * Removed package postfix. A helper release to enable migration. + * Restricted pysmi-lextudio version to 1.2.0 to avoid + breaking changes. + * Fixed walkCmd bug. + * Fixed bulkWalkCmd bug. + * Added sync oneliner back. + * Fix annotations. + * Added walkCmd() and bulkWalkCmd() to hlapi. + * Improved Slim class to support IPv6. + * Added some sync API based on asyncio. + * Added custom socket support in openServerMode. + * Fixed various bugs in RFC3414 error handling. + * Reverted some changes in 6.0.2 on asyncio dispatch. + * Deleted asyncore related bits. + * Simplified asyncio dispatch. + * Added ignoreNonIncreasingOid option to nextCmd and bulkCmd. + * Fixed a dispatch bug related to "Slim.close". + * Improved asyncio "runDispatcher" method to support timeout. + * Changed internal defaults to asyncio. + * Converted asyncore samples to asyncio. +- Update to version 5.1.0 + * Removed package postfix. A helper release to enable migration. +- Update to version 5.0.34 + Changes since 5.0.28 + * Fixed a v3 authentication issue when wrong user name is used. + * Fixed an import error with Python 3.12. + * Added timeout and retries to Slim class. + * Added experimental Python 3.12 support based on pyasyncore. + But all asyncore based API is deprecated and will be removed + in the next major release. + * Added pyasn1 0.5.1 support. + * Fix asyncio hlapi double awaitable returns. +- Drop patch: + * support-new-pyasn1.patch (not longer needed) + +------------------------------------------------------------------- +Thu Feb 1 08:12:53 UTC 2024 - Dirk Müller + +- use poetry-core for building + +------------------------------------------------------------------- +Tue Aug 1 06:20:01 UTC 2023 - Steve Kowalik + +- Switch to lextudio releases, and upgrade to 5.0.28: + * Fixed SNMP engine ID generation on Windows. + * SNMPv3 crypto operations that require external dependencies + made dependent on the optional external + package -- pysnmpcrypto. + * Added Slim class and simplified some examples. + * Fixed a #SNMP demo compatibility issue. + * Fixed passwordToKeySHA. + * Enabled Python 3.11 support. + * Switched to pyasn1/pyasn1 package. + * Removed legacy paddings in v3 packets. + * Changed web site to pysnmp.com. + * Inherited all changes made by Splunk team. +- Switch to pyproject macros. +- Add patch support-new-pyasn1.patch: + * Support pyasn1 0.5.0. + +------------------------------------------------------------------- +Sat Mar 14 09:11:57 UTC 2020 - Tomáš Chvátal + +- Fix build without python2 + +------------------------------------------------------------------- +Tue Sep 24 18:28:18 UTC 2019 - Martin Hauke + +- Update to version 4.4.12 + * Fixed broken SNMPv3 `msgFlag` initialization on authoritative + SNMP engine ID discovery. This bug causes secure communication + with peer SNMP engines to stall at SNMP engine ID discovery + procedure. + +------------------------------------------------------------------- +Tue Sep 10 11:39:16 UTC 2019 - Tomáš Chvátal + +- Update to 4.4.11: + - Added SNMPv3 USM master and localized keys support to LCD configuration + - Improved initial and runtime USM debugging + - Fixed a bug in USM configuration which did not allow the same user names + to be added under different security names + +------------------------------------------------------------------- +Wed Jul 31 20:44:55 UTC 2019 - Martin Hauke + +- Update to version 4.4.10 + * Reworked VACM access control function. Most important changes include: + + + Added subtree match negation support (vacmViewTreeFamilyType) + + Added subtree family mask support (vacmViewTreeFamilyMask) + + Added prefix content name matching support (vacmAccessContextMatch) + + Added key VACM tables caching for better `isAccessAllowed` lookup + performance + + One potential incompatibility may be caused by the `addContext()` call + which now needs to be made explicitly during low-level VACM configuration + rather than be a side effect of `addVacmAccess()` call. + + * Rebased MIB importing code onto `importlib` because `imp` is long + deprecated + * Received MIB objects resolution made more forgiving to errors, added + optional `ignoreErrors` parameter to `ObjectType.resolveWithMib()` to + control that behaviour. + * Fixed asyncore main loop to respect non-default timer resolution + * Fixed `.setTimerResolution()` behaviour of abstract main loop dispatcher + to update call intervals of the existing periodic dispatcher jobs + * Fixed `var-bindings` initialization to prevent pyasn1 encoder failures + with newer pyasn1 versions where `SequenceOf` type looses its default + initializer. + * Fixed crash on uninitialized component serialization left out in + SNMP v1 TRAP PDU to SNMPv2/3 TRAP PDU proxy translation routine. + +------------------------------------------------------------------- +Sat Feb 9 20:53:52 UTC 2019 - mardnh@gmx.de + +- Update to version 4.4.9 + * Made MIB loader ignoring file and directory access errors + * Added missing SNMP PDU error classes and their handling in + Command Responder + * Fixed crash on MIB load failure in case of directory access error + * Fixed socket transparency option (IPV6_TRANSPARENT) to make IPv6 + transparent operation functional + +------------------------------------------------------------------- +Thu Jan 10 08:22:22 UTC 2019 - mardnh@gmx.de + +- Update to version 4.4.8 + * Fixed Pythonized MIB load (in the source form) - made sure to + turn it into a code object prior to its execution + +- Update to version 4.4.7 + * Exposed ASN.1 `Null` type through `rfc1902` module for + convenience. + * Use `compile()` before `exec`'ing MIB modules to attach filename + to the stack frames (ultimately shown in traceback/debugger) + * Fixed hlapi/v3arch transport target caching to ensure transport + targets are different even if just timeout/retries options differ + * Fixed hlapi LCD configurator to include `contextName`. Prior to + this fix sending SNMPv3 TRAP with non-default `contextName` would + fail. + * Fixed possible duplicate key occurrence in the `OrderedDict` + following a race condition + * Fixed undefined name references in `inet_pton`/`inet_ntop` + substitute routines for IPv6 in `TRANSPORT-ADDRESS-MIB.py` + +------------------------------------------------------------------- +Tue Dec 4 12:52:53 UTC 2018 - Matej Cepl + +- Remove superfluous devel dependency for noarch package + +------------------------------------------------------------------- +Thu Nov 27 17:56:55 UTC 2018 - alexander_naumov@opensuse.org + +- Update to version 4.4.6 + * Improved package build and dependency tracking + * Fixed missing LICENSE from the tarball distribution + * Fixed CommandGeneratorLcdConfigurator.unconfigure() to fully + clean up internal caches, otherwise repetitive attempts to + configure the target would fail. + * Fix to tolerate possible duplicate enumerations in Bits and + IntegerSMI types. + * Fix to tolerate non-initialised entries in SNMP community table. + Once a bad entry sneaked into the SNMP community table, all + the subsequent SNMP v1/v2c operations failed. The fix ignores + incomplete SNMP community table entries in the course of + building indices. + +This is a bug fix release addressing a handful of accumulated bugs. + +------------------------------------------------------------------- +Thu Nov 1 13:01:37 UTC 2018 - Tomáš Chvátal + +- Use cryptodome not cryptodomex, to keep working + +------------------------------------------------------------------- +Mon Aug 6 17:56:28 UTC 2018 - mardnh@gmx.de + +- Update to version 4.4.5 + * Added PySnmpError.cause attribute holding parent exception tuple + * Fixed broken InetAddressType rendering caused by a pyasn1 regression + * Fixed typo in RFC1158 module + * Fixed possible infinite loop in GETBULK response PDU builder + * Fixed memory leak in the `config.delContext()` VACM management harness + * Fixed `Bits` class initialization when enumeration values are given + * Fixed crash caused by incoming SNMPv3 message requesting SNMPv1/v2c + security model + * Fixed out-of-scope OIDs leaking at the end of SNMP table at hlapi + `nextCmd` and `bulkCmd` calls when `lexicographicMode = False` + +------------------------------------------------------------------- +Fri Jun 29 13:17:52 UTC 2018 - mardnh@gmx.de + +- Fix license +- Update to 4.4.4: + * Copyright notice extended to the year 2018 + * Fixed short local key expansion at 3DES key localization + implementation. + +- Update to 4.4.3: + * Migrated references from SourceForge + * Added missing SHA2 support for Blumenthal key localization + * Fixed named bits handling at rfc1902.Bits + * Fixed missing SmiError exception class at pysnmp.proto.rfc1155 + * Fixed SNMP v1->v2c PDU proxy -- error-status & error-index fields + from v1 PDU get copied over to v2c PDU in addition to the exception + sentinels being set + +- Update to 4.4.2: + * The pysnmp version being used gets exposed to the MIB modules + via the `MibBuilder` instance + * The .setObjects() method of the SMI types now accepts + `append=False` parameter to let the caller adding more + than 255 elements over the course of multiple calls + * Added support for some more missing fields of SMIv2 MACRO types + * Example scripts rearranged in a way that IPv6 requirement is + clearly encoded in the script's name + * Fixed SNMPv2-SMI.NotificationType to expose .set/getReference() + instead of .set/getRevision() which should not be there in the + first place + * Fixed non-implied-OID encoding in SNMP table indices + * Fixed inconsistent SNMPv3 discovery and retrying algorithm + +- Update to 4.4.1: + * HMAC-SHA-2 Authentication Protocols support added (RFC-7860) + * The pycryptodome dependency replaced with pycryptodomex as + it is recommended by the upstream to avoid unwanted interference + with PyCrypto package should it also be installed + * Sphinx theme changed to Alabaster in the documentation + * Minor adjustments towards pyasn1 0.4.x compatibility + * Fixed ObjectIdentifier-into-ObjectIdentity casting at + rfc1902.ObjectType MIB resolution harness + * Fixed NetworkAddress object handling in SNMP table indices + * Fixed MIB lookup by module:object.indices MIB object with + InetAddressIPv{4,6} objects being in the index + * Fixed non-translated PDU being retries at CommandGenerator what + leads to wrong PDU version being sent and even a crash on + incompatible PDU/SNMP message combination + +- Update to 4.3.10: + * Refactored partial SNMP message decoding to make it less dependent + on unpublished pyasn1 API features. + * Fix to MibTableRow.setFromName() to keep the input parameter type when + it propagates to the return value. Before this fix + ObjectIdentity.prettyPrint() may crash when rendering malformed SNMP + table indices. + * Fixed NotificationReceiver to include SNMPv1 TRAP Message community + string into SNMPv2c/v3 TRAP PDU + * Fixed multiple bugs in SNMP table indices rendering, especially + the InetAddressIPv6 type which was severely broken. + * Fixed crashing Bits.prettyPrint() implementation + * Fixed crashing Bits.clone()/subtype() implementation + * Fixed leaking exceptions bubbling up from the asyncio and Twisted adapters + +------------------------------------------------------------------- +Fri Aug 25 15:20:56 UTC 2017 - jengelh@inai.de + +- Replace wording about aims. + +------------------------------------------------------------------- +Fri Aug 25 11:52:26 UTC 2017 - tbechtold@suse.com + +- update to 4.3.9: + - Deprecated UsmUserData initializaton parameters removed + - Adapted to pyasn1 API changes introduced by release 0.3.1 + - Fix to a crash happening on inbound SNMP message having non-initialized + fields + - Fix to (persistent SNMP engine ID) file writing on Windows + - Security fix to the bug introduced in 4.3.6: msgAuthoritativeEngineTime + stopped changing over time and was returning the same timestamp (process + start time). This fix makes it growing as it should. + * Fixed import error in legacy NotificationOriginator implementation + - More instrumentation hooks added addressing security failures + auditing needs. + - SNMP table indices correlation implemented within SMI framework. + The opaque InetAddress type implemented. INET-ADDRESS-MIB included + into the distribution. + - SNMP table indices resolution logic made more robust against + malformed indices. + - Fixes to *lexicographicMode* option documentation to make it + unambiguous. + - The `ErrorIndication` object is now derived from `Exception` so + that it could be raised in exceptions. + - The `errorIndication` values produced by various parts of + SNMP engine unified to be `ErrorIndication` instances. This fixes + an issue with Twisted. + - Embedded MIB modules rebuilt with the latest pysmi adding previously + missing attributes like `status`, `description` etc. + - Fixed potential SNMP engine crash on handling incoming message + at unsupported security level + - The getNext() and getBulk() calls of Twisted interface. + now support ignoreNonIncreasingOid option. + - TextualConvention is now a new-style class. + - Fix to accidentally reset error-status when building confirmed class + SNMPv1 PDU. + - Fix to possible infinite recursion in TextualConvention.prettyIn(). + - Fixed crash when attempting to report unsupported request/notification + PDU back to sender. + - Fix to low-level SNMP API example to accommodate changed pyasn1 + SEQUENCE supporting iterator protocol. + - The pyasn1 version dependency bumped (0.2.3), SEQUENCE/SEQUENCE OF + API calls adjusted to accommodate changed pyasn1 API (in part + of .setComponentBy*() kw flags). + - Fixed crash on SNMP engine's invalid message counter increment. + - Switched from now unmaintained PyCrypto to PyCryptodome. + - Switched to new-style classes. + - NotificationType now allows additional var-binds specified as + MIB objects. A side effect of this change is that additional + var-binds can only be added prior to .resolveMibObjects() is + run. + - Non-standard (but apparently used by many vendors) Reeder AES192/256 + key localization algorithm implemented and set as default for + usmAesCfb192Protocol and usmAesCfb256Protocol identifiers. + Original and more standard implementation can still be used + with the usmAesBlumenthalCfb192Protocol and + usmAesBlumenthalCfb192Protocol IDs respectively. + - TextualConvention.prettyOut() improved to produce prettier and + more SMI-compliant output. + - TextualConvention.prettyIn() implemented to handle DISPLAY-HINT + based value parsing. + - Fix to NotificationType to make additional var-binds overriding + MIB objects implicitly included through NOTIFICATION-TYPE OBJECTS. + - Fix to SNMP engine boots counter persistence on Python 3. + - Fix to Pythonized MIBs loading when only .pyc files are + present (e.g. py2exe/cx_freeze environments). + - Fix broken 3DES key localization and encryption procedures. + - Updated IP address for demo.snmplabs.com in examples. + - Missing index added to bundled RFC1213::atEntry MIB table. + - Twisted integration made Python3 compatible. + - Accommodated ASN.1 SEQUENCE iteration rules change in upcoming pyasn1 + version. + - Author's email changed, copyright extended to 2017. +- convert to singlespec +- Adjust Requires and BuildRequires according to setup.py + +------------------------------------------------------------------- +Sun Jul 31 19:14:02 UTC 2016 - mardnh@gmx.de + +- Update to version 4.3.2 + + Copyright notice added to non-trivial source code files. + + SNMP table row consistency check added. This change may break + valid SNMP SET operations on tables if RowStatus column is not + passed at the very end of var-binds. + + All SNMP counters now incremented via '+= 1' rather than 'x = x + 1' + to simplify their tracking by third-party code. + + Notification originator examples re-pointed to Notification Receiver + at demo.snmplabs.com. + + Two more execution observer points added: rfc2576.processIncomingMsg + and rfc3414.processIncomingMsg to give an insignt on security modules + internals. + + TEXTUAL-CONVENTION's DISPLAY-HINT text formatting reworked for better + performance and encoding accurancy of 'a' and 't' formats. + + WARNING: security fix to USM - extra user entry clone removed on + incoming message processing. It made USM accepting SNMPv3 TRAPs + from unknown SNMP engine IDs. + + Fix to snmpInvalidMsgs and snmpUnknownSecurityModels MIB symbols + import at SNMPv3 MP model. + + Fix to NotificationOriginator to cope with unspecified user callable. + + Fix to OctetString.prettyOut() to pretty-print Python 3 bytes without + 'b' qualifier. + + Fix to better pysmi import errors handling. + + Fix to missing next() in Python 2.5 at pysnmp.hlapi + +- Update to version 4.3.1 + + Added recursive resolution of ObjectIdentifier values at ObjectType + by converting it to ObjectIdentity. + + A bunch of convenience shortcuts to rfc1902.ObjectIdentity added + from rfc1902.ObjectType and rfc1902.NotificationType + (.addAsn1MibSource(), .addMibSource(), .loadMibs()) + + When pretty printing indices at rfc1902.ObjectType, quote only strings. + + SNMP overview and PySNMP hlapi tutorial added to documentation. + + Fix to __doc__ use in setup.py to make -O0 installation mode working. + + Fix to ObjectIdentity->ObjectIdentifier attributes handover + + Fixed crash at oneliner compatibility code on EOM response. + + Fixed crash in hlapi.transport module. + + Fixed OID resolution issues that roots at node 0 and 2. + + Fix to MIB builder to fail gracefully on corrupted MIB package encounter. + + Fix to docs distribution -- now the are Sphinx-buildable out-of-the-box. + + Source code re-linted + +------------------------------------------------------------------- +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 + +- GPL-2.0 license for the twisted backend + +------------------------------------------------------------------- +Sun Nov 24 20:56:12 UTC 2013 - p.drouand@gmail.com + +- Update to version 4.2.5 + + License updated to vanilla BSD 2 +Clause to ease package use + (http://opensource.org/licenses/BSD +2 +Clause). + + A dozen of lightweight Twisted +based example scripts replaced more + complex example implementations used previously. + + SNMP Proxy example apps separated into a larger set of more specialized + ones. + + Most of Command Generator examples re +pointed to a live SNMP Agent + at demo.snmplabs.com to ease experimentation and adoption. + + Multithreaded oneliner CommandGenerator example added. + + Packet +level SNMP API (pysnmp.proto.api) getErrorIndex() method can now + be instructed to ignore portentially malformed errorIndex SNMP packet + value what sometimes happens with buggy SNMP implementations. + + Standard SNMP Apps and built +in proxy now ignores malformed errorIndex + value. + + Built +in logging now includes timestamps. + + Multi +lingual capabilities of all CommandGenerator & NotificationOriginator + apps re +worked and improved. For instance it is now it's possible to run + getBulk() against a SNMPv1 Agent invoking built +in SNMP Proxy behind the + scene. + + The $PYSNMP_MIB_DIR & $PYSNMP_MIB_DIRS & $PYSNMP_MIB_PKGS path separator + made platform +specific. + + Change to rfc2576.v1tov2() logic: errorStatus = noSuchName is now + translated into rfc1905.noSuchObject exception value for *all* var +bindings + at once. Although RFC2576 does not suggest error +status +> v2c exception + translation, historically pysnmp used to perform it for a long time so we + can't easily stop doing that. + + Exception re +raising improved at MibInstrumController.flipFlopFsm() and + asynsock/twisted dispatchers so that original traceback is preserved. + + A single instance of transport dispatcher can now serve multiple + receivers (identified by IDs) chosen by a public data routing method. + + SnmpEngine.[un]registerTransportDispatcher() methods now accept optional + receiver ID token to be used by transport dispatcher's data router. This + allows for multiple SNMP engines registration with a single transport + dispatcher. + + Distribute is gone, switched to setuptools completely. + + The snmpCommunityTable row selection improved to follow RFC2576, clause + 5.2.1. + + Asyncore +based dispatcher attempts to use poll() whenever available + on the platform. It would help handling a really large number (>1024) + of file descriptors. + + AsynCommandGenerator.makeReadVarBinds() generalized into a new + makeVarBinds() method which replaces somewhat redundant code at setCmd() + and AsynNotificationOriginator.sendNotification(). + + AsynCommandGenerator.uncfgCmdGen() & AsynNotificationOriginator.uncfgCmdGen() + methods now accept optional authData parameter to remove specific entries + from LCD. This can be useful for modifying security parameters for + specific securityName. + + SNMP credentials management reworked to separate userName from securityName + in snmpCommunityEntry and usmUserEntry tables. Changes made to addV1System(), + addV3User() functions as well as to their oneliner's wrappers. + + The contextEngineId parameter of config.addV3User() and auth.UsmUserData() + renamed into securityEngineId as it's semantically correct + + Oneliner UsmUserData() and CommunityData() classes now support clone()'ing + to facilitate authentication data management in user applications. + + Oneliner transport target classes now support the getTransportInfo() + method that returns network addresses used on protocol level. + + The config.addSocketTransport() helper renamed into config.addTransport() + and improved by automatically instantiating compatible TransportDispatcher + making it dispatcher +agnostic. As an additional bonus, application may not + call registerTransportDispatcher() as it would be called by addTransport(). + + The SnmpV3MessageProcessingModel.getPeerEngineInfo() method is implemented + to communicate discovered peer SNMP engine information to SNMP apps what + can be used for fine usmUserTable configuration. + + AsynNotificationOriginator.cfgCmdGen() does not take into account + securityModel & securityLevel when reducing LCD access via addTrapUser(). + This improves LCD consistency on sparse add/del operatons but also + does not let you to configure different securityModels per securityname + at VACM though the cfgCmdGen() wrapper. + + MIB builder traceback formatting and reporting improved. + + SNMP Engine object now has a snmpEngineID attribute exposed. + + Fix to inet_ntop()/inet_pton() support on Windows at TRANSPORT +ADDRESS +MIB. + + Fix to usmUserSecurityName table column implementation + + automatic value + generation from index value removed. + + Fix and significant logic rework of snmpCommunityTable to make it working + in both Generator and Responder modes and better follow RFC2576 + requirements on sequential entries lookup and selection. As a side effect, + untagged snmpCommunityTable entries will *not* match tagged + snmpTargetAddrTable entries and vice versa. + + Fix to Twisted +based NotificationOriginator to make it serving INFORMs again. + + Fix to rfc2576.v1tov2() logic: errorStatus = noSuchName is now translated + into rfc1905.noSuchObject exception value for *all* var +bindings. Although + this is not mentioned in RFC, it looks as a more consistent approach. + + Fix of rounding error to base I/O dispatcher's next timer call calculation. + + Explicit twisted dispatcher's timer resolution (of 1 sec) removed to make + use of global default of 0.5 sec. + + Fix to twisted/udp non +default local endpoint binding features. Common + socket ('host', port) notation is now supported. + + Fix to Twisted +based transport to make it closing UDP port / UNIX pipe + on shutdown. + + Fix to Twisted +based dispatcher not to close transport on unregistration + at dispatcher as transports can potentially be reused elsewhere. + + Fix to asyncore +based transport to work only with AsynsockDispatcher's + socket map and not to touch default asyncore's one. The latter have caused + dispatcher/transport restarting issues. + + The delV3User() function improved to drop all rows from USM table that + were cloned from the target one. + + Fix to exceptions handling at MsgAndPduDispatcher.sendPdu() to avoid + sendPduHandle miss (followed by system crash) on cache expiration run. + + Break cyclic references at CommandResponder and NotificationReceiver apps + through close() method. + + Fix to octet string typing at 3DES codec (used to throw an exception). + + Fix to SnmpAdminString, SnmpTagList, SnmpTagValue types to make them + supporting UTF +8 initializers. + + Fix to v1/v2c message processing module which used to refer to a + bogus stateReference in some cases what causes SNMP engine crashes. + + Fix to IPv6 transport to zero ZoneID, FlowID and ScopeID components + sometimes coming along with incoming packet. + + Fix to SNMPv1 MP module to pass stateReference to registered app on + unconfirmed notifications reception (to let NotificationReceiver + Apps browsing request details). + (transport information at the moment) at SNMP engine. + + Asyncsock sockets now configured with SO_REUSEADDR option to fix possible + Windows error 10048. + + Gracefully handle malformed SnmpEngineID at USM coming from SNMPv3 header. + + Typos fixed in error +status constants at CommandResponder + + Missing import added to oneliner auth module. + + Cosmetic changes to v3arch example scripts. +- Change license; in changelog, BSD-2-Clause is explicit + +------------------------------------------------------------------- +Wed Apr 24 05:04:49 UTC 2013 - highwaystar.ru@gmail.com + +- update to 4.2.4 + Revision 4.2.4 + -------------- + - SNMPv3 high-level and native API examples reworked and extended to cover + many use cases. + - The missing functionality of NOTIFICATION-TYPE objects being looked up + at local Management Instrumentation and attached to TRAP/INFORM message + by Notification Originator is now fully implemented. + - The missing functionality of passing Response PDU contents of INFORM + request is now implemented at Notification Originator app. The return + value of NotificationOriginator.sendNotification is now a composite object + that includes errorStatus, errorIndex and varBinds. + - The missing functionality of passing lookupNames & lookupValues params + to Notification Originator is now implemented. It may make sense for + INFORMs. + - The missing functionality of passing contextName to oneliner + version of NotificationOriginator.sendNotification is now implemented. + - Oneliner example apps now include cases where non-default SNMP + ContextEngineId/ContextName/SecurityEngineId is used. + - The contextName parameter of SnmpContext.getMibInstrum made optional. + - AbstractMibInstrumController class added as a base class for all possible + kinds of Management Instrumentation controllers. + - Report package version on debugging code initialization. + - MibInstrumController.getMibBuilder() added. + - I/O sockets buffer sizes made configurable, minimum default is now + forced to be no less than 2**17 (to fit two huge datagrams). + - Catch possible exceptions on pyasn1 encoder invocation. + - VACM modules converted from a function into an object to let it keep + state (caches) in the future. + - Unnecessary *MibSource explicit initialization calls removed at MibBuilder. + - Example configuration for Net-SNMP's snmptrapd added. + - Cast additionalVarBinds into ObjectIdentifier type at + NotificationOriginator.sendNotification() + - Standard SNMPv3 Apps hardened to catch protocol-related exceptions and + report them as errorIndication's. + - Catch and mute possible failure of getsockname(), that seems to happen + on Windows only so far. + - Memory leak fixed at oneliner cache of already configured targets. + - Fixes to at AsynNotificationOriginator.sendNotification() to make + a) the notificationType param mandatory b)t e varBinds param really + optional + - Fixes to ContextEngineId/ContextName support at the oneliner API: now + both items should be passed to request PDU through *Cmd() request + initiation method, the items of authData object should be used only for + LCD configuration. + - Fix to MibVariable handling of the MIB, initializers. + - Fix to outgoing queue processing order at socket transport. Now + it's a FIFO discipline rather than LIFO. + - Fix to NotificationOriginator's additionalVarBinds parameter - it is + not mandatory anymore with the oneliner API. Also additionalVarBinds + defaulted value changed from None to () meaning no var-binds. + - Attempt to convert Windows style EOL into UNIX ones in MIB source + modules appeared to be unnecessary and even destructive to modules + data in some cases. So the convertion code removed altogether. + - Fix to isAccessAllowed() error handling at NotificationOriginator. System + used to crash on access denied condition. + - Fix to NotificationOriginator to make it use system uptime and trap OID + values from SNMP engine's instrumentation rather then from SNMP context. + - Fix a couple of bugs at MibTable* logic involved for table instances + creation. + - Fix to Management Instrumentation code to handle cases of non-initialized + or not-compliant-to-constraints Managed Objects Instances. + - Fix to Management Instrumentation code to make table row removal through + SNMP working again. Wrong method (instumClone) was probed at terminal + MIB nodes values instead of the right one (setValue). + + Revision 4.2.3 + -------------- + + - SECURITY FIX: USM subsystem did not verify securityLevel of a request + to an authoritative SNMP engineinbound against auth/priv protocols + configured for the user in question. That allowed unauthenticated/unciphered + access to pysnmp-based Agent even if USM user is configured to provide one. + - Oneliner [Asyn]CommandGenerator now supports optional keyword args + lookupNames, lookupValues that enable response OID / value looked up at + MIB and reported as a MibVariable container object carrying relevant + MIB info. + - Oneliner [Asyn]CommandGenerator now supports symbolic MIB object names to be + passed within a MibVariable container object which would do a deferred + MIB lookup for name resolution. This is a new and preferred API which + obsoletes the tuple-based one (it is still suppored though). + - Oneliner CommandGenerator's class attributes lexicographicMode, maxRows + and ignoreNonIncreasingOid moved to optional keyword args of nextGen() + and bulkGen() methods. + - IPv6/UDP and Local Domain Socket transport interfaces added to the + oneliner API. + - Mib Instrumentation subsystem re-worked to replace excessive + MibNode's smiCreate()/smiWrite()/smiDestroy() methods with + MibScalarInstance's getValue()/setValue() + - MibTree.readTest[Get]Next() reworked to be called uniformely so + user could tap on these methods at any level of the MIB tree. + - MibTableColumn.getNextNodeWithValue() unpublished API method obsoleted + and removed for clarity. + - Hex dumps of binary parts of the protocol added to ease system + operations analysis. + - SnmpEngineId autogeneration does not call DNS resolver but uses + local hostname not to depend upon local IP availability and performance. + - Example apps reworked, additional SNMPv3 auth/priv protocols and transports + added. + - Package version is now available as __init__.__version__ and it is + in-sync with distutils. + - Package meta-information updated. + - The __init__.py's made non-empty (rumors are that they may be optimized + out by package managers). + - Multiple fixes to UNIX domain socket transport to make it fully + operational again. + - Use sysUpTime value whenever it is included in Notification PDU, otheriwese + resort to SNMP engine uptime reading. + - SNMPv2c Message is now defined in rfc1901.py what matches standard + definition. + - Types defined within SNMPv1/v2c data structures (rfc1157.py/rfc1905.py) + moved to module scope to become accessible by wrapper routines + (v1.py/v2c.py). This is used for setting strictly typed default values + to corresponding SNMP data structures. + - The obsolete and unpublished MibInstrumController.readVarsFast() method + removed for API clarity. + - MibBuilder now distinguishes case of MIB modules filenames even if + underlying OS does not. + - LCD configuration caching is implemented at pysnmp.entity.rfc3413.config + that improves performance of repetitive calls by 10% and might hugely + improve NotificationOriginator's performance when working on a large + number of targets. + - A caching maps implemented at rfc2576 subsystem to speed-up communityName + to/from securityName resolution. The also makes transport tags processing + better compliant to the standard. + - Community and Transport tags processing changed at the oneliner interface + to make the whole mechanism more compliant with the standard. Most + importantly, it is now possible to tag authentication and transport + information separately. + - The NoSuchInstanceError exception class is no more inherits from + NoSuchObjectError to make class hierarchy closer to SNMP specification + which states that these errors are separate and independent. + - The Next & BulkCommandGenerator's split onto single-run and iterative + impementations. The former just process a single interaction and complete + while the latter run as many interactions as user callback function + indicates to. + - The pysnmp.entity.rfc3413.mibvar module is now obsolete by + pysnmp.entity.rfc3413.oneliner.mibvar featuring basically the same + features but within a stateful, dedicated object. + - Auth & target configuration container classes moved to their separate + modules at oneliner API. + - The notificationType parameter of AsynNotificationOriginator.sendNotification + made defaulted to reflect its optional nature. + - Oneliner UsmUserData, UdpTransportTarget, Udp6TransportTarget instances + are not hashable anymore as they are intended to act more like a data + structure than object. + - Built-in debugger now supports negating debugging categories. + - An async/getgen.py example script added. + - Fix to MIB data reading routine to make it working with possible + Windows end-of-line's. + - Fix to CommandGenerator's SNMPv3 engine autodiscovery algorithm + when retryCount is administratively set to 0. + - Fix to Notification Originator to make it communicating a single + sendPduHandle to an application even when multiple INFORMs are triggered + and processed by a single call by way of transport tagging feature. + - Fix to rfc2576:processIncomingMessage() to take SecurityModel into account + when lookup up SecurityName by CommunityName. This allows mixed SNMPv1/v2c + communication with the same target. + - Fix to internal MessageProcessing and SecurityModel timers so they become + dependant on system timer resolution. + - Fix to v1.PDUAPI.setDefaults() method that used to set wrongly typed + time-stamp component. + - Fix to IPv6 address handling to prevent system from crashing whilst + running Python3. + - Fix to SNMPv2 exception objects translation into SNMPv1 PDU and NEXT + OIDs calculation. + - Fix to MibTree class to properly report noSuchObject & noSuchInstance + SNMP special values. + - Fix to libsmi2pysnmp tool to make it working again in Python < 2.7 + - Fix to exception handling at decodeMessageVersion() caller to prevent + ASN.1 parsing errors crashing the whole app. + - Fix to GenericTrap type processing at rfc2576:v1Tov2c() which used to + crash the whole SNMP engine. + - Fix to [possibly uninizilaized] pyasn1 objects printouts at + MibInstrumController.__indexMib() + - Fix to maxSizeResponseScopedPDU calculation at rfc3414/service.py. + - Dedicated 'withmib' example set is obsolete and removed. + - Another SNMP proxy example app added (1to3.py). + - Fix to MIB modules loading code to make it using __import__() properly. + This also makes pysnmp working again with Python 3.3rc0. + - Typo fix to snmpInASNParseErrs MIB instance object. + - Typo fix to errind.EngineIdMismatch class and its instance. + + Revision 4.2.2 + -------------- + + - Oneliner CommandGenerator can now limit the number of SNMP table + rows returned by nextCmd()/bulkCmd() methods. + - Oneliner CommunityData configuration object can now be initialized + with community name only, security name will be chosen automatically. + - Oneliner LCD configuration routines reworked towards clarity. The + side-effect of this change is that repetitive oneliner call with the same + securityName and different configuration options will only honor + the first settings. Previous implementation would override older settings. + - Transport dispatcher now provides its own time expressed in + fractions of second. SNMP engine uses this notion of time for + handling requests timeout to make packet flow time bound + to async I/O core operations rather than to real time. + - The libsmi2pysnmp tool improved to handle incomplete SMI v1->v2 + conversion performed by smidump. The remaining core SMIv1 modules + excluded from the core MIB set. + - The pyasn1 constraint and enumeration objects put into ASN1-* + MIB modules what appears to be more in-line with SMI. Existing + MIB modules as well as libsmi2pysnmp tool corrected accordingly. + - SMIv1 MIB modules (including RFC1155 and RFC1213) were moved to + pysnmp-mibs as pysnmp is SMIv2-based. + - The MibBuilder.importSymbols() now takes optional kwargs and + push them into MIB modules globals(). This is to facilitate + passing user infomation, such as DB connection handler, to MIB + module namespace so it could be used by ManagedObjects implementations. + - When running on Python3, SMI will re-raise exceptions with the original + traceback for easier diagnostics. + - Out of PYTHONPATH MIB paths now supported. + - Added pyasn1 decoder failures diagnistics in debug mode. + - Fix to non-MT-safe class attributes at SNMPv3 MP & SEC modules. + - Fix to ContextName handling in bytes form whilst running Python3. Data + mismatch error would return otherwise. + - Fix to SNMPv3 MP peer engine ID discovery not to learn and use + user-specified ContextEngineId. + - Fix to socket.error processing at Py3 on Windows. + - Fix to oneliner GETNEXT/GETBULK implementation to properly support + ignoreNonIncreasingOIDs option. + - Fix to setEndOfMibError()/setNoSuchInstanceError() at v1 PDU not to + loose errorIndex. + - Fix to api.v2c.getVarBindTable() to ignore possible non-rectangular GETBULK + response tables. + - Fix to oneliner getnext/getbulk response table rectangulation procedure + to gracefully handle an empty column condition. + - Fix to legacy MibBuilder.getMibPath() to prevent it from missing + .egg-based components in path. + - Fix to oneliner configuration routine that used to implicitly + tag SNMPv1/v2c auth and transport LCD rows what resulted in + huge delays when processing incoming messages with large number + of peers configured. + - Fix to UDP6 transport handling at rfc2576 security module. + - Fix to SnmpEngineID value autogeneration (used to fail on Mac). + - SNMPv2-SMI.ObjectType.__repr__() fixed to do a repr() on its components. + - All SNMPv2-SMI.MibNode-based objects, once exported to a mibBuilder, will + carry an embedded label symbol. + - Exlicit repr() calls replaced with '%r' + - Fix to error processing at GETNEXT & GETBULK apps response handlers. + - Fix to libsmi2pysnmp to make it supporting long (256+) list of function + params. + - Fix to libsmi2pysnmp to support inheritance of MIB types. + +------------------------------------------------------------------- +Sun Nov 27 08:35:10 UTC 2011 - jfunk@funktronics.ca + +- Update to 4.2.1 + - Support string OIDs at one-liner API. + - Code quality of libsmi2pysnmp tool improved, MIBs re-built. + - SNMP-PROXY-MIB & SNMP-USER-BASED-SM-3DES-MIB added + - v1arch bulkgen.py example added + - Major overhawl for Python 2.4 -- 3.2 compatibility: + + get rid of old-style types + + drop string module usage + + switch to rich comparation + + drop explicit long integer type use + + map()/filter() replaced with list comprehension + + apply() replaced with */**args + + dictionary operations made 2K/3K compatible + + division operator made 2K/3K compatible + + sorting function now operates on key + + iterators returned by some funcs in py3k converted to lists + + exception syntax made 2K/3K compatible + + tuple function arguments resolved to scalars to become py3k compatible + + BER octetstream is now of type bytes (Py3k) or still string (Py2k) +- 4.1.16d + - Fix to SNMPv1 Trap PDU agentAddress setter shortcut method. +- 4.1.16c + - Missing module import fixed in privacy subsystem +- 4.1.16b + - Oneliner CommandGenerator can now optionally ignore non-increasing OIDs. + - Default CommandResponder now skips non-compliant (Counter64) values + when responding to a v1 Manager. + - Fix to state information handling at CommandResponder app. + - Fix to Twisted reactor shutdown condition. + - Fix to distutils dependencies syntax. +- 4.1.16a + - Extended Security Options (3DESEDE, AES192, AES256) privacy + protocols implemented. + - The error-indication codes moved from literals to objects for reliability + and clarity + - Fix to v1.TrapPDUAPI.getVarBinds() to address PDU component at the right + position. + - Fix to rfc1902.Bits initialization from named bits sequence. + - Fix to MIB builder by-extension module filtering code to cope with .pyw + files. + - Internal caches structure improved. + - Sync versions of oneliner apps split off async implementation for clarity. + - Randomize initial in various numeric sequences. + - MsgAndPduDsp expectResponse parameters passing reworked. + - GetNext/GetBulk response processing logic moved to getNextVarBinds() + - Changes towards performance improvement: + + all dict.has_key() & dict.get() invocations replaced with modern syntax + (this breaks compatibility with Python 2.1 and older). + + introduce the MibInstrumControlle.readVarsFast() method (which skips + the "testing" phase of MIB value readin) for dealing with internal + configuration (LCD). + + default debug.logger is now just a zero value instead of an object + what saves big on frequent calls + + SNMPv2-SMI columnar indices <-> index values convertion code optimized. + + pre-compute and re-use some of ASN.1 structures. + + avoid setting PDU defaults to save on unnecessary initialization. + + skip ASN.1 types verification where possible. + + at oneliner Command Generator, avoid looking up pure OID arguments + at MIB as it's pointless but takes time. + + cache MIB columnar objects instance ID <-> symbolic index representation + mapping +- 4.1.15a + - SNMP Proxy example added. + - End-of-MIB condition detection reworked what caused backward + incompatibility at v1arch GETNEXT API. Previous pysnmp versions + used value = None in var-binds as returned by getVarBindTable() + API method. This version uses rfc1905 exception values (v2c/v3) + or pyasn1 Null (v1). + Built-in GETNEXT/GETBULK apps now do not require user to track + end-of-mib conditions anymore -- this is now done automatically. + - CommandResponder API now supports async mode of operation. + - SNMP exception values now exported from rfc1905 module, and made + pretty printable. + - Lexicographic walking mode is now supported at oneliner CommandGenerator. + - ContextEngineId&ContextName parameters passing implemented at + v3arch oneliner API. + - Multiple instances of the same transport domain now supported. + - Initial snmpEngineId value generation improved not to accidentally + collide within an administrative domain. + - MibTableColumn instances now build value-to-column-instance map + to speedup by-value search. + - SNMPv2-CONF::AgentCapabilities macro implemented. + - The libsmi2pysnmp tool handles some more MACROs. + - Void access control module implemented to let apps disabling [default] VACM. + - Allow standard SNMP apps to choose access control method to use. + - Twisted-based CommandResponder example added. + - Fix/rework of Twisted GETNEXT/BULK CommandGenerator callback API to + make it simpler and uniform with other CommandGenerators + - Fix to SNMPv3 security module to store peer SNMP engine timeline + only if taken from an authenticated message. Prior to this fix + SNMP engine was not been protected from spoofing. + - Fix to $SMIPATH initialization at build-pysnmp-mib. + - Fix to maxSizeResponseScopedPDU calculation. + - Fix to Next/Bulk CommandGenerators to catch a non-increasing OID + error condition (what prevents looping). + - Fix to Opaque value tagging at rfc1155.Opaque type. + - Fix to handle (fail gracefully) zero-length user password. + - Fix to SNMP error propagation at Twisted driver (SF tracker ID #3054505). + - Fix to Agent-role snmpEngineId discovery procedure that allows + authenticated ReportPDU generation. + - Fix to SNMPv1 PDU handling at CommandResponder & NotificationReceiver + apps. + - Fix to CommandResponder app to skip Counter64 SMI values when responding + to SNMPv1 Manager. + - Fix to protocol translator code (rfc2576) to handle Counter64 type + in v2c-to-v1 PDU translation. + - Fix to non-response var-binds translation in rfc2576.v2ToV1(). + - Fix to wrong exceptions used in pysnmp/entity modules. + - Fix to noauth/nopriv security module so that it would not crash SNMP + engine if called accidentally. + - Fix to CommandResponder not to return out-of-range errorIndex along + with genErr + - Fix to GETBULK CommandResponder to do a by-column MIB walk, not by-raw. + - Fix to getVarBindTable() API function logic. + - Fix to example Manager scripts to use errorIndex when available. + - Fix to dummy encryptData()/decryptData() API + - Fix to oneliner GETBULK table collection code to make it stripping + uneven rows off table tail. + +------------------------------------------------------------------- +Fri Sep 17 00:00:40 UTC 2010 - jfunk@funktronics.ca + +- Fix required libsmi version + +------------------------------------------------------------------- +Tue Sep 14 22:17:17 UTC 2010 - jfunk@funktronics.ca + +- Update to 4.1.14a + - Fix to maxSizeResponseScopedPDU calculation at USM security module: now + more precise and robust against screwed values on input. + - Fix to MIB loading logic that used to load same-name modules at + disticts search paths on each loadModules() call. + - Fix to AsynsockDispatcher.runDispatcher() to make use of optional + non-default select() timeout value. + - AbstractTransportDispatcher now allows user application registering + multiple timer callbacks each with dedicated call period. + - Asynsock mainloop default idle period reduced to 0.5 sec for better + timer resolution. + - Fix to SNMPv1->SNMPv2c error status handling at proxy module. This + defect may have caused an infinite loop on a multiple var-bind + SNMPv1 GetNext operation. + - Fix to contextName processing at config.addV1System -- typo rendered + passed contextName not committed into LCD. + - Fix to unknown ContextName exception handling at CommandResponder App. + - config.addVacmUser() now accepts an optional contextName what makes + it usable for configuring multiple contextName-bound bases of Managed + Objects to SnmpEngine. + - MP pending states cache management re-worked so that SNMP engine will + now handle an unlimited number of pending request/responses. + - Fix to SNMP discovery procedure: include ContentName in SNMP discovery + messaging. + - Many fixes to AES crypto code that makes it actually working. + - Fix to SNMPv2-SMI createUndo operations. + - Fix to INFORM sending error handling at oneliner. + - Fix to mismatched response PDU handling at CommandGenerator application. + - Debug category 'app' (for Application) added to facilitate + Standard SNMP Applications debugging. + - The retryCount semantic of CommandGenerator application changed to include + sole retries and do not include initial request. Thus, retryCount=1 will + now send up to two packets, not just one as it used to be. + - Debugging printout now escapes non-printable characters. +- Revision 4.1.13a + - UDP over IPv6 transport implemented. + - Fix to MIB tree walking code that used to fail on table columns where + indices have identical leading parts. + - SNMPv1/v2c snmpCommunityTransportTag-based imcoming message filtering + implemented (rfc2576). +- Revision 4.1.12a + - API versioning retired (pysnmp.v4 -> pysnmp). + - MIB loading mechanics re-designed to allow ZIP import. + - MIB loader supports code objects (py[co]) + - Installer now uses setuptools for package management whenever available. + - The libsmi2pysnmp tool improved to build constraints of more than + 256 items (Python has a limit on the number of function params). + - Missing SNMPTrap PDU API implemented at proto.api.v2c, RFC2576 proxy + code reworked. + - Fix to sysUpTime OID at SNMPv2 TRAP PDU. +Revision 4.1.11a + - Twisted integration implemented. + - Attempt to use hashlib whenever available. + - Fix to oneliner Manager code on < Python 2.4. + - Let NotificationReceiver and CommandResponder Apps browsing request details + (transport information at the moment) at SNMP engine. + - Fix to config.addV1System() to allow multiple systems to co-exist in LCD. + - Fix to wrongly succeeding user-parameters-by-community-name searching code + in rfc2576 processIncomingMsg() method. + - Do sanity checking on PYSNMP_MODULE_ID, Groups and Notifications in + libsmi2pysnmp (SF bug #2122489). + - Fix to oneliner Notification Originator that sometimes used to send multiple + requests at once. + - Oneliners LCD names generation code reworked to avoid accidental clashes. + - Fix and re-work of sysUpTime value management in LCD. + - Fix to pending inform request data caching in mpmod/rfc2576.py -- previous + code led to cache data corruption on multple outstanding requests. + - In SMI configuration wrapper functions, catch access to non-configured + entries and raise an exception. + - Allow multuple callback timer functions in all transport dispatchers. + - Fix to libsmi2pysnmp code to preserve more underscored object names and + to guess the right type between indistinguishable ObjectGroup & + NotificationGroup + - Fix to MibScalarInstance value setting logic - previous code failed + when modifying the same OID multiple times within a single SET operation. + - Minor usability improvements to tools/build-pysnmp-mib. + - Made MIB objects unexport feature operational. + +--------------------------------------------------- +Tue Mar 23 13:30:13 CET 2010 - boris@steki.net + +- Changed package arch to "noarch" + +--------------------------------------------------- +Tue Mar 23 13:13:13 CET 2010 - boris@steki.net + +- Updated spec file - created subpackage utils +- Added required libsmi require statement and its minimum version + for utils sub package main package. + +------------------------------------------------------------------- +Mon Feb 16 2009 James Oakley - 4.1.10-1 + +- Update to 4.1.10a + - Internal MIB indexing method __indexMib() unmangled to facilitate + setting up mutex there for sharing MIB stuff between threads. + - Fixed broken IpAddress value handling in SET operation. + - Broken MibBuilder.unloadModules() method now works. + - Use getLabel() SMI object method when building MIB tree (in builder.py) + in addition to direct attribute access for clearer object protocol. + - The MIB building tools updated to match significantly improved + smidump tool (libsmi version > 0.4.5). + - Made libsmi2pysnmp tool optionally building MIB text fields into pysnmp + MIB code (enabled by default) and MibBuilder conditionally loading them + up (disabled by default). + - SnmpEngine and MsgAndPduDispatcher constructors now optionally + take msgAndPduDspr and mibInstrumController class instances + respectively to facilitate these objects sharing within a process. + - Unique integers, for various parts of the system, are now generated + by a nextid.py module. This fixes possible issues with duplicate + request IDs and handlers. + - Built-in MIBs re-generated to include text fields. +- 4.1.9a + - UNSTABLE ALPHA RELEASE. + - At onliner CommandGenerator, close transport on destruction to + prevent socket leak. Implicit async transports registration at + default asyncore's socket map has been disabled to avoid side + effects. + - Fix to rfc2576.v1ToV2c() PDU converter to perform noSuchName error code + translation. + - Fixes to Notification PDU convertion code at rfc2576 in part of + snmpTrapOID handling. + - Fix to nonRepeaters object use as sequence slicer (must be int) at + cmdrsp.CommandResponderApplication + - Make AsynsockDispatcher using its own socket map by default for + threading safety. This will break asyncore apps that rely on pysnmp + sharing the same socket map with them. A solution would be to either + set asyncore map to pysnmp (AsynsockDispatcher.setSocketMap()) or pass + pysnmp map (AsynsockDispatcher.getSocketMap()) to asyncore. + - Fix to response timeout roundup bug at CommandGenerator and + NotificationOriginator code. + - Oneline configuration classes made hashable to prevent memory leaks + when committing them into CommandGenerator/NotificationOriginator + internal repository. + - Security information is now released properly in all MP modules. + This might fix a significant memory leak. + - Typo fix to rfc3411 confirmed class PDU members. +- 4.1.8a + - UNSTABLE ALPHA RELEASE. + - SMI/dispatcher timeout convertion multiplier is actually 100 (1/100 sec) + rather than 1/1000. This fix affects timeouts specified through SMI. + - __repr__() implemented for UdpTransportTarget, CommunityData, UsmUserData + in oneliner module. + - Automatically initialize table index values on table management + operations (SF bug ID #1671989). + - Fix to carrier code: ignore BADFD socket error as it may happen upon + FD closure on n-1 select() event. + - Fix to MibBuilder.setMibPath() to preserve previously loaded modules + intact. Otherwise loadModules() called after setMibPath() might fail + with 'MIB file not found in search path' exception. + - Fix to oneliner classes that now invoke unconfiguration methods on + destruction. This might have caused memory leaks. + - Automatically initialize SNMP-USER-BASED-SM-MIB::UsmUserSecurityName + columnar object instance on creation, as stated in DESCRIPTION (SF + tracker ID #1620392). + - Fix to USM timeframe arithmetics (SF bug #1649032). + - VACM shortcuts merged into universal add/delVacmUser() to let notifications + and requests to co-exist for the same user. + - At oneliners, build LCD tables keys from a hashed mix of input parameters + to make sure these automatic entries won't interfere or exceed constraints + on keys values. + - Made use of notificationType parameter of the sendNotification method + in NotificationGenerator applications. This parameter used to be + ignored in the past. Note, that previously used (and ignored) syntax + has been changed in an incompatible way. + - Allow plain Python values in setCmd() and sendNotification() + methods in CommandGenerator and NotificationGenerator applications + respectively. + - Multi-target oneliner API-based example script added. + - Ignore more socket errors in datagram-type async socket code. + - AES cipher now supported (rfc3826). + - Fix to messed up tagIDs of noSuchInstance and noSuchObject types. + - SET Command Responder fixed to obscure access to non-existing variables + by returning notWritable error (SF bug #1764839). + - AsynsockDispatcher.setSocketMap() method added to facilitate pysnmp + transport integration into third-party asyncore-based applications. + - Fix to errorIndex generation at CommandResponder application, the value + should be a one-based. + +------------------------------------------------------------------- +Mon Apr 23 2007 James Oakley - 4.1.7-1 + +- Update to 4.1.7 + - Low-level debugging facility implemented + - Support UdpTransportTarget timeout and retries parameters in oneliner API + - Fix to snmpTrapOID construction at ...proxy.rfc2576.v1ToV2() + function + - Fix to MibViewController.getNodeName() to take MIB module name + into account (SF bug #1505847) + - Do explicit check for Counter32,Unsigned32,TimeTicks,Counter64 value types + in MibTableRow index convertion and in TextualConvention.prettyPrint() + methods (SF bug #1506341). Handle Bits in indices as RFC2578 suggests + - Apply read-create column status to libsmi2pysnmp-generated code + whenever MIB text specifies that (SF bug #1508955) + - Honor and apply DISPLAY-HINT specification when building TextualConvention + class at libsmi2pysnmp + - Managed Objects Instances files (smi/mibs/instances/) are now + double-underscore prefixed to make them imported explicitly by these + prefixed names. They used to be imported as a side-effect of + Managed Objects files import what is way too hackerish + - The libsmi2pysnmp now supports future libsmi bugfix that would generate + "ranges" subtree along with the legacy and ambiguous "range" one + - SMI support for fixed-length string indices implemented (SF bug #1584799, + - Managed Object Instances may now have smiRead, smiWrite, smiCreate methods + to support specific value mangling. These methods, if present, would be + invoked from SNMP [Agent] core instead of conventional clone() method. + The reason is to separate trivial value duplication from specific + Instance value mangling that may have Agent-specific side effects + (such as RowStatus) + - MIB table row destruction now works (SF bug #1555010) + - LCD unconfiguration functions for oneliners implemented (SF bug #1635270) + - unloadModules() and unexportSymbols() implemented at MibBuilder + - Notification type PDU proxy code fixed to produce symmetrical + convertion + - Various SNMP engine-internal caches expiration implemented + - SMI-level access control now takes effect only if AC object is + passed to MIB instrumentation API + - LCD management code now uses generic MIB instrumentation features + - Fix to oneliner manager code to have individual UdpSocketTransport + instance per each SnmpEngine. Multithreaded apps might fail otherwise. + (SF bug ID #1586420) + - Exclude the PYSNMP_MODULE_ID symbol from MIB view index, as it may get + resolved into OID label instead of actual MIB object name + - Memory leak fixed in indices.OidOrderedDict implementation + - Fix to VACM shortcuts to let notifications and requests to co-exist + for the same user otherwise + - Fix to ...oneliner.cmdgen.UsmUserData to support non-default cyphers + - USM now uses local notion of snmpEngineBoots/Time when authoritative + and cached estimate otherwise. Also, a security fix applied to to USM + time-window verification (SF bug #1649032) + - Fix to notification objects resolution code at + NotificationOriginator.sendNotification() + - Do not raise securityLevel for USM error reports that lacks user + information, as these reports could never be cyphered (SF bug #1624720) + - Non-default BULK PDU params now actually applied + - SnmpEngineID default value generation algorithmic function changed + to allow multiple SNMP engines running on the same host + - Documentation updated + - A handful of minor fixes applied (SourceForge tracker IDs #1537592, + +------------------------------------------------------------------- +Thu Jun 22 2006 James Oakley - 4.1.6-1 + +- Update + +------------------------------------------------------------------- +Wed Oct 19 2005 James Oakley - 4.1.4-ft.4 + +- Fix SNMPv1 requestid problem + +------------------------------------------------------------------- +Wed Oct 12 2005 James Oakley - 4.1.4-ft.3 + +- Build for SL10 + +------------------------------------------------------------------- +Wed Sep 28 2005 James Oakley - 4.1.4-ft.2 + +- Add requirements + diff --git a/python-pysnmp.spec b/python-pysnmp.spec new file mode 100644 index 0000000..7319bed --- /dev/null +++ b/python-pysnmp.spec @@ -0,0 +1,93 @@ +# +# spec file for package python-pysnmp +# +# Copyright (c) 2024 SUSE LLC +# +# All modifications and additions to the file contributed by third parties +# remain the property of their copyright owners, unless otherwise agreed +# upon. The license for this file, and modifications and additions to the +# file, is the same license as for the pristine package itself (unless the +# license for the pristine package is not an Open Source License, in which +# case the license is the MIT License). An "Open Source License" is a +# license that conforms to the Open Source Definition (Version 1.9) +# published by the Open Source Initiative. + +# Please submit bugfixes or comments via https://bugs.opensuse.org/ +# + + +Name: python-pysnmp +Version: 7.1.1 +Release: 0 +Summary: A pure-Python SNMPv1/v2c/v3 library +License: BSD-2-Clause +URL: https://github.com/lextudio/pysnmp +Source: https://files.pythonhosted.org/packages/source/p/pysnmp/pysnmp-%{version}.tar.gz +BuildRequires: %{python_module pip} +BuildRequires: %{python_module poetry-core} +BuildRequires: %{python_module pyasn1} +BuildRequires: %{python_module pysmi} +BuildRequires: %{python_module pytest-asyncio} +BuildRequires: %{python_module pytest} +BuildRequires: %{python_module wheel} +BuildRequires: fdupes +BuildRequires: net-snmp +BuildRequires: python-rpm-macros +Requires: python-pyasn1 >= 0.4.8 +Requires: python-pysmi +Requires: python-pysnmpcrypto +BuildArch: noarch +%python_subpackages + +%description +This project is a SNMP v1/v2c/v3 engine written in the Python +programming language. + + * Complete SNMPv1/v2c and SNMPv3 engine support + * Can act as Manager and/or Agent + * Manager and Agent side MIB support + * Asynchronous operations support + * Pure-Python implementation + * py2exe and .egg friendly + * Twisted binding + +%package -n python-pysnmp-doc +Summary: PySNMP documentation +Provides: %{python_module pysnmp-doc = %{version}} + +%description -n python-pysnmp-doc +PySNMP documentation and examples. + +%prep +%autosetup -p1 -n pysnmp-%{version} +# Remove uneeded files +find docs -name "\.*" -exec rm -Rf {} + + +%build +%pyproject_wheel + +%install +%pyproject_install +chmod -x docs/net-snmptrapd.conf docs/net-snmpd.conf +%python_expand %fdupes %{buildroot}%{$python_sitelib} + +%check +donttest="test_addAsn1MibSource" + +# Running tests with python -m to make it work with the import path +%{python_expand # +# Not running asyncio tests that requires network +$python -m pytest -v -m 'not asyncio' -k "not $donttest" +} + +%files %{python_files} +%license LICENSE.rst +%doc README.md docs examples +%{python_sitelib}/pysnmp +%{python_sitelib}/pysnmp-%{version}.dist-info + +%files -n python-pysnmp-doc +%license LICENSE.rst +%doc docs examples + +%changelog diff --git a/support-new-pyasn1.patch b/support-new-pyasn1.patch new file mode 100644 index 0000000..f7dfc9a --- /dev/null +++ b/support-new-pyasn1.patch @@ -0,0 +1,41 @@ +Index: pysnmp-5.0.28/pysnmp/proto/api/verdec.py +=================================================================== +--- pysnmp-5.0.28.orig/pysnmp/proto/api/verdec.py ++++ pysnmp-5.0.28/pysnmp/proto/api/verdec.py +@@ -6,19 +6,20 @@ + # + from pyasn1.type import univ + from pyasn1.codec.ber import decoder, eoo ++from pyasn1.codec.streaming import readFromStream + from pyasn1.error import PyAsn1Error + from pysnmp.proto.error import ProtocolError + + + def decodeMessageVersion(wholeMsg): + try: +- seq, wholeMsg = decoder.decode( ++ wholeMsg, seq = decoder.decode( + wholeMsg, asn1Spec=univ.Sequence(), +- recursiveFlag=False, substrateFun=lambda a, b, c: (a, b[:c]) ++ recursiveFlag=False, substrateFun=lambda a, b, c, d: readFromStream(b, c) + ) + ver, wholeMsg = decoder.decode( + wholeMsg, asn1Spec=univ.Integer(), +- recursiveFlag=False, substrateFun=lambda a, b, c: (a, b[:c]) ++ recursiveFlag=False, substrateFun=lambda a, b, c, d: readFromStream(b, c) + ) + if eoo.endOfOctets.isSameTypeWith(ver): + raise ProtocolError('EOO at SNMP version component') +Index: pysnmp-5.0.28/pyproject.toml +=================================================================== +--- pysnmp-5.0.28.orig/pyproject.toml ++++ pysnmp-5.0.28/pyproject.toml +@@ -27,7 +27,7 @@ include = ["docs", "tests", "examples"] + + [tool.poetry.dependencies] + python = "^3.7" +-pyasn1 = ">=0.4.8, <0.5.0" ++pyasn1 = "^0.5.0" + pysnmpcrypto = "^0.0.4" + pysmi-lextudio = "^1.0.4" +