SHA256
1
0
forked from pool/python-pysmi

Accepting request 1206438 from devel:languages:python

- Update to 1.5.0:
  * Better formatting of texts in MIB documents.
  * Reworked on reserved Python keywords handling.
  * Fixed TEXTUAL-CONVENTION handling.
  * Fixed DEFVAL handling.
  * Added cyclic dependency detection.
  * Other fixes and improvements for real-world MIBs.
  * Implemented a better strict mode.
  * Fixed old Python version support.
  * Fixed mibdump crash.
  * Fixed a JSON output bug.
  * Updated MIB URLs.
  * Migrated to new asn1 repo.
  * Bumped minimal Python version to 3.7.
  * Introduced Jinja2 templates for code generation.
  * Introduced SNMP agent code hooks generation template.
- Switch to autosetup macros.
- Add patch support-new-pyasn1.patch:
  * Support new pyasn1 changes.

OBS-URL: https://build.opensuse.org/request/show/1206438
OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/python-pysmi?expand=0&rev=10
This commit is contained in:
Ana Guerrero 2024-10-09 20:12:57 +00:00 committed by Git OBS Bridge
commit 05566c48db
5 changed files with 112 additions and 16 deletions

View File

@ -1,3 +0,0 @@
version https://git-lfs.github.com/spec/v1
oid sha256:bd15a15020aee8376cab5be264c26330824a8b8164ed0195bd402dd59e4e8f7c
size 93985

3
pysmi-1.5.0.tar.gz Normal file
View File

@ -0,0 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:e42bcd3961de71d58186f7a7fa6adac133701ae74cd19e6376289d89593b0af2
size 124064

View File

@ -1,3 +1,26 @@
-------------------------------------------------------------------
Wed Oct 9 06:31:17 UTC 2024 - Steve Kowalik <steven.kowalik@suse.com>
- Update to 1.5.0:
* Better formatting of texts in MIB documents.
* Reworked on reserved Python keywords handling.
* Fixed TEXTUAL-CONVENTION handling.
* Fixed DEFVAL handling.
* Added cyclic dependency detection.
* Other fixes and improvements for real-world MIBs.
* Implemented a better strict mode.
* Fixed old Python version support.
* Fixed mibdump crash.
* Fixed a JSON output bug.
* Updated MIB URLs.
* Migrated to new asn1 repo.
* Bumped minimal Python version to 3.7.
* Introduced Jinja2 templates for code generation.
* Introduced SNMP agent code hooks generation template.
- Switch to autosetup macros.
- Add patch support-new-pyasn1.patch:
* Support new pyasn1 changes.
-------------------------------------------------------------------
Mon Feb 19 04:44:48 UTC 2024 - Steve Kowalik <steven.kowalik@suse.com>

View File

@ -31,23 +31,31 @@
%bcond_with test
%endif
Name: python-pysmi%{psuffix}
Version: 0.3.4
Version: 1.5.0
Release: 0
Summary: SNMP SMI/MIB Parser
License: BSD-2-Clause
URL: http://pysmi.sourceforge.net/
URL: https://github.com/lextudio/pysmi
Source: https://files.pythonhosted.org/packages/source/p/pysmi/pysmi-%{version}.tar.gz
# PATCH-FIX-UPSTREAM gh#lextudio/pysmi#5
Patch0: support-new-pyasn1.patch
BuildRequires: %{python_module base >= 3.8}
BuildRequires: %{python_module pip}
BuildRequires: %{python_module ply}
BuildRequires: %{python_module setuptools}
BuildRequires: %{python_module wheel}
BuildRequires: %{python_module poetry-core}
BuildRequires: fdupes
BuildRequires: python-rpm-macros >= 20210929
BuildRequires: python-rpm-macros
%if %{with test}
BuildRequires: %{python_module Jinja2 >= 3.1}
BuildRequires: %{python_module ply >= 3.11}
BuildRequires: %{python_module pyasn1}
BuildRequires: %{python_module pysmi = %{version}}
BuildRequires: %{python_module pysnmp}
BuildRequires: %{python_module pytest}
BuildRequires: %{python_module requests >= 2.26}
%endif
Requires: python-ply
Requires: python-Jinja2 >= 3.1
Requires: python-ply >= 3.11
Requires: python-requests >= 2.26
%if %{with libalternatives}
BuildRequires: alts
Requires: alts
@ -62,10 +70,8 @@ BuildArch: noarch
A pure-Python implementation of SNMP/SMI MIB parsing and conversion library.
Can produce PySNMP MIB modules.
Documentation: http://pysmi.sf.net
%prep
%setup -q -n pysmi-%{version}
%autosetup -p1 -n pysmi-%{version}
%build
%pyproject_wheel
@ -73,8 +79,6 @@ Documentation: http://pysmi.sf.net
%install
%if !%{with test}
%pyproject_install
mv %{buildroot}%{_bindir}/mibdump.py %{buildroot}%{_bindir}/mibdump
mv %{buildroot}%{_bindir}/mibcopy.py %{buildroot}%{_bindir}/mibcopy
%python_clone -a %{buildroot}%{_bindir}/mibdump
%python_clone -a %{buildroot}%{_bindir}/mibcopy
%python_expand %fdupes %{buildroot}%{$python_sitelib}
@ -98,7 +102,7 @@ mv %{buildroot}%{_bindir}/mibcopy.py %{buildroot}%{_bindir}/mibcopy
%files %{python_files}
%license LICENSE.rst
%doc README.md CHANGES.rst
%doc README.md examples/*
%{python_sitelib}/pysmi
%{python_sitelib}/pysmi-%{version}.dist-info
%python_alternative %{_bindir}/mibdump

69
support-new-pyasn1.patch Normal file
View File

@ -0,0 +1,69 @@
From 01d0774948da432f39c5a89622d676e91b8c47af Mon Sep 17 00:00:00 2001
From: Steve Kowalik <steven@wedontsleep.org>
Date: Wed, 9 Oct 2024 17:20:45 +1100
Subject: [PATCH] Remove use of str2octs from pyasn1
pyasn1 has been removing all Python 2 code from its codebase, and the
octets module has been removed from 0.6.1 onwards. Since we only support
Python 3.8, we can remove it and just encode to bytes.
---
tests/test_objecttype_smiv2_pysnmp.py | 11 +++++------
1 file changed, 5 insertions(+), 6 deletions(-)
diff --git a/tests/test_objecttype_smiv2_pysnmp.py b/tests/test_objecttype_smiv2_pysnmp.py
index fdec37e..b374332 100644
--- a/tests/test_objecttype_smiv2_pysnmp.py
+++ b/tests/test_objecttype_smiv2_pysnmp.py
@@ -13,7 +13,6 @@
except ImportError:
import unittest
-from pyasn1.compat.octets import str2octs
from pysmi.parser.smi import parserFactory
from pysmi.codegen.pysnmp import PySnmpCodeGen
from pysmi.codegen.symtable import SymtableCodeGen
@@ -75,7 +74,7 @@ def testObjectTypeStatus(self):
# TODO:revisit
# def testObjectTypeReference(self):
# self.assertEqual(
- # self.ctx['testObjectType'].getReference(), str2octs('ABC'),
+ # self.ctx['testObjectType'].getReference(), 'ABC'.encode('iso-8859-1'),
# 'bad REFERENCE'
# )
@@ -335,7 +334,7 @@ def setUp(self):
# TODO: pyasn1 does not like OctetString.defaultValue
def testObjectTypeSyntax(self):
self.assertEqual(
- self.ctx["testObjectType"].getSyntax(), str2octs("test value"), "bad DEFVAL"
+ self.ctx["testObjectType"].getSyntax(), "test value".encode('iso-8859-1'), "bad DEFVAL"
)
@@ -374,7 +373,7 @@ def setUp(self):
def testObjectTypeSyntax(self):
self.assertEqual(
self.ctx["testObjectType"].getSyntax(),
- str2octs("\\ntest\nvalue\\"),
+ "\\ntest\nvalue\\".encode('iso-8859-1'),
"bad DEFVAL",
)
@@ -488,7 +487,7 @@ def setUp(self):
def testObjectTypeSyntax(self):
self.assertEqual(
self.ctx["testObjectType"].getSyntax().clone(""),
- str2octs(""),
+ "".encode('iso-8859-1'),
"bad size constrained SYNTAX",
)
@@ -526,7 +525,7 @@ def setUp(self):
def testObjectTypeSyntax(self):
self.assertEqual(
self.ctx["testObjectType"].getSyntax().clone(("set",)),
- str2octs("@"),
+ "@".encode('iso-8859-1'),
"bad BITS SYNTAX",
)