diff --git a/pysmi-0.3.4.tar.gz b/pysmi-0.3.4.tar.gz deleted file mode 100644 index 0109931..0000000 --- a/pysmi-0.3.4.tar.gz +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:bd15a15020aee8376cab5be264c26330824a8b8164ed0195bd402dd59e4e8f7c -size 93985 diff --git a/pysmi-1.5.0.tar.gz b/pysmi-1.5.0.tar.gz new file mode 100644 index 0000000..a1b9441 --- /dev/null +++ b/pysmi-1.5.0.tar.gz @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:e42bcd3961de71d58186f7a7fa6adac133701ae74cd19e6376289d89593b0af2 +size 124064 diff --git a/python-pysmi.changes b/python-pysmi.changes index 22db69d..c1cfc49 100644 --- a/python-pysmi.changes +++ b/python-pysmi.changes @@ -1,3 +1,26 @@ +------------------------------------------------------------------- +Wed Oct 9 06:31:17 UTC 2024 - Steve Kowalik + +- 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 diff --git a/python-pysmi.spec b/python-pysmi.spec index 99293fe..7bb805e 100644 --- a/python-pysmi.spec +++ b/python-pysmi.spec @@ -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 diff --git a/support-new-pyasn1.patch b/support-new-pyasn1.patch new file mode 100644 index 0000000..9656f14 --- /dev/null +++ b/support-new-pyasn1.patch @@ -0,0 +1,69 @@ +From 01d0774948da432f39c5a89622d676e91b8c47af Mon Sep 17 00:00:00 2001 +From: Steve Kowalik +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", + ) +