From d4da18b35306da7c1997ecee9d806ad9da17b51e660aa281347a86a26fca2a8d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Pablo=20Su=C3=A1rez=20Hern=C3=A1ndez?= Date: Thu, 13 Nov 2025 12:30:23 +0000 Subject: [PATCH 1/2] Remove explicit set of __brp_python_bytecompile macro in the spec --- saltbundlepy-pyasn1.changes | 5 +++++ saltbundlepy-pyasn1.spec | 4 ---- 2 files changed, 5 insertions(+), 4 deletions(-) diff --git a/saltbundlepy-pyasn1.changes b/saltbundlepy-pyasn1.changes index a6977b2..f7b8488 100644 --- a/saltbundlepy-pyasn1.changes +++ b/saltbundlepy-pyasn1.changes @@ -1,3 +1,8 @@ +------------------------------------------------------------------- +Thu Oct 2 10:58:04 UTC 2025 - Victor Zhestkov + +- Remove explicit set of __brp_python_bytecompile macro in the spec + ------------------------------------------------------------------- Thu Dec 14 15:47:32 UTC 2023 - Victor Zhestkov diff --git a/saltbundlepy-pyasn1.spec b/saltbundlepy-pyasn1.spec index de78cec..44d3842 100644 --- a/saltbundlepy-pyasn1.spec +++ b/saltbundlepy-pyasn1.spec @@ -19,10 +19,6 @@ %{?!saltbundlepy_module:%define saltbundlepy_module() saltbundlepy-%{**}} %define pythons saltbundlepy -# Disable python bytecompile for all distros -# It's called explicitly in the spec -%global __brp_python_bytecompile %{nil} - Name: saltbundlepy-pyasn1 Version: 0.5.0 Release: 0 -- 2.51.1 From 131b4dca048e07a4cd25ff6d8f182576f66526f7bbfbee74412f6de049cba365 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Pablo=20Su=C3=A1rez=20Hern=C3=A1ndez?= Date: Thu, 13 Nov 2025 12:31:16 +0000 Subject: [PATCH 2/2] Align older changelog entries to avoid errors --- saltbundlepy-pyasn1.changes | 369 +++++++++++++++++------------------- 1 file changed, 178 insertions(+), 191 deletions(-) diff --git a/saltbundlepy-pyasn1.changes b/saltbundlepy-pyasn1.changes index f7b8488..4e70fee 100644 --- a/saltbundlepy-pyasn1.changes +++ b/saltbundlepy-pyasn1.changes @@ -34,11 +34,11 @@ Thu Dec 14 15:47:32 UTC 2023 - Victor Zhestkov * Many bugfixes all around, see CHANGES.rst - Update to 0.4.5 - * Debug logging refactored for more efficiency when disabled and for more - functionality when in use. Specifically, the global LOG object can easily - be used from any function/method, not just from codec main loop as it used + * Debug logging refactored for more efficiency when disabled and for more + functionality when in use. Specifically, the global LOG object can easily + be used from any function/method, not just from codec main loop as it used to be. - * More debug logging added to BER family of codecs to ease encoding problems + * More debug logging added to BER family of codecs to ease encoding problems troubleshooting. * Copyright notice extended to the year 2019 * Fixed defaulted constructed SEQUENCE component initialization. @@ -141,121 +141,115 @@ Tue Sep 19 07:32:21 UTC 2017 - michael@stroeder.com Thu Sep 7 09:24:51 UTC 2017 - michael@stroeder.com - updated to upstream release 0.3.4 + Revision 0.3.4, released 07-09-2017 -Revision 0.3.4, released 07-09-2017 ------------------------------------ + * Fixed Native encoder to handle SEQUENCE/SET objects without + the componentType property + * Added missing component-less SEQUENCE/SET objects dict duck-typing support + * Fixed unnecessary duplicate tags detection at NamesType.tagMap + * Fixed crash at SEQUENCE and SEQUENCE OF CER encoder when running + in schemaless mode + * Fixed Character types instantiation from OctetString type -- double + unicode decoding may have scrambled the data -- Fixed Native encoder to handle SEQUENCE/SET objects without - the componentType property -- Added missing component-less SEQUENCE/SET objects dict duck-typing support -- Fixed unnecessary duplicate tags detection at NamesType.tagMap -- Fixed crash at SEQUENCE and SEQUENCE OF CER encoder when running - in schemaless mode -- Fixed Character types instantiation from OctetString type -- double - unicode decoding may have scrambled the data + Revision 0.3.3, released 27-08-2017 -Revision 0.3.3, released 27-08-2017 ------------------------------------ - -- Improved ASN.1 types instantiation performance -- Improved BER/CER/DER decoder performance by not unconditionally casting - substrate into str/bytes. -- Fixed exponential index size growth bug when building ambiguous - NamedTypes tree -- Fixed constructed types decoding failure at BER codec if running - in schema-less mode -- Fixed crash on prettyPrint'ing a SEQUENCE with no defined components -- Fixed SetOf ordering at CER/DER encoder -- Fixed crash on conditional binascii module import -- Fix to TagSet hash value build + * Improved ASN.1 types instantiation performance + * Improved BER/CER/DER decoder performance by not unconditionally casting + substrate into str/bytes. + * Fixed exponential index size growth bug when building ambiguous + NamedTypes tree + * Fixed constructed types decoding failure at BER codec if running + in schema-less mode + * Fixed crash on prettyPrint'ing a SEQUENCE with no defined components + * Fixed SetOf ordering at CER/DER encoder + * Fixed crash on conditional binascii module import + * Fix to TagSet hash value build ------------------------------------------------------------------- Tue Aug 15 17:32:13 UTC 2017 - michael@stroeder.com - updated to upstream release 0.3.2 + Revision 0.3.2, released 04-08-2017 -Revision 0.3.2, released 04-08-2017 ------------------------------------ - -- Fixed SequenceOf/SetOf types initialization syntax to remain - backward compatible with pyasn1 0.2.* -- Rectified thread safety issues by moving lazy, run-time computation - into object initializer. -- Fixed .isValue property to return True for empty SetOf/SequenceOf - objects -- Fixed GeneralizedTime/UTCTime CER/DER codecs to actually get invoked -- Fixed DER/CER encoders handling optional SEQUENCE/SET fields containing - nested SEQUENCE/SET with optional fields. -- Fixed crash in SequenceOf/SetOf pretty printing and decoding (in some - cases) -- Fixed documentation markup issues. + * Fixed SequenceOf/SetOf types initialization syntax to remain + backward compatible with pyasn1 0.2.* + * Rectified thread safety issues by moving lazy, run-time computation + into object initializer. + * Fixed .isValue property to return True for empty SetOf/SequenceOf + objects + * Fixed GeneralizedTime/UTCTime CER/DER codecs to actually get invoked + * Fixed DER/CER encoders handling optional SEQUENCE/SET fields containing + nested SEQUENCE/SET with optional fields. + * Fixed crash in SequenceOf/SetOf pretty printing and decoding (in some + cases) + * Fixed documentation markup issues. ------------------------------------------------------------------- Sat Jul 29 21:01:20 UTC 2017 - michael@stroeder.com - updated to upstream release 0.3.1 + Revision 0.3.1, released 26-07-2017 + + * ASN.1 types __init__(), .clone() and .subtype() signatures + refactored into keyword arguments to simplify their signatures. + * ASN.1 types initialization refactored to minimize the use of + relatively expensive isNoValue() call + * Lazily pre-populate list of values of Sequence/Set/Choice types + * NamedTypes comparison made more efficient + * More efficient constraints computation and code clean up + * The __getitem__() implementation of some ASN.1 types & tag object + refactored for better performance + * BER/CER/DER value encoders refactored to produce either tuple of + bytes or octet-stream depending on what is more optimal + * Reduced the frequency of expensive isinstance() calls + * Tag-related classes optimized, refactored into properties and + documented. + * The NamedValues implementation refactored to mimic Python dict, its use + in ASN.1 types refactored into properties and better documented. + WARNING: this change introduces a deviation from original API. + * NamedType family of classes overhauled, optimized and documented. + * The `componentType` attribute of constructed ASN.1 types turned + read-only on instances. + * Sequence/Set DER/CER/DER decoder optimized to skip the case of + reordered components handling when not necessary. + * Tags and constraints-related getter methods refactored into read-only + instance attributes. + * The .hasValue() method refactored into .isValue property. All ASN.1 + objects now support them, not just scalars. + * The Real.{isInfinity, isPlusInfinity, isMinusInfinity} methods + refactored into properties and renamed into IsInf, IsPlusInf and isMinusInf + * The end-of-octets type refactored to ensure it is a singleton. Codecs + changed to rely on that for better performance. + * Codecs lookup made more efficient at BER/CER/DER decoder main loop by + assigning `typeId` to every ASN.1 type, not just ambiguous ones. + * The .getComponent*() methods of constructed ASN.1 types changed + to lazily instantiate underlying type rather than return `None`. + This should simplify its API as initialization like `X[0][1] = 2` becomes + possible. + WARNING: this change introduces a deviation from the original API. + * The .setComponent*() methods of SetOf/SequenceOf types changed not + to allow uninitialized "holes" inside the sequences of their components. + They now behave similarly to Python lists. + WARNING: this change introduces a deviation from the original API. + * Default and optional components en/decoding of Constructed type + refactored towards better efficiency and more control. + * OctetsString and Any decoder optimized to avoid creating ASN.1 + objects for chunks of substrate. Instead they now join substrate + chunks together and create ASN.1 object from it just once. + * The GeneralizedTime and UTCTime types now support to/from Python + datetime object conversion. + * Unit tests added for the `compat` sub-package. + * Fixed BitString named bits initialization bug. + * Fixed non-functional tag cache (when running Python 2) at DER decoder. + * Fixed chunked encoding restriction on DER encoder. + * Fixed SET components ordering at DER encoder. + * Fixed BIT STRING & OCTET STRING encoding to be always non-chunked (e.g. + primitive) at DER encoder + * Fixed `compat.integer.from_bytes()` behaviour on empty input. + - do not ship doc/source/ -Revision 0.3.1, released 26-07-2017 ------------------------------------ - -- ASN.1 types __init__(), .clone() and .subtype() signatures - refactored into keyword arguments to simplify their signatures. -- ASN.1 types initialization refactored to minimize the use of - relatively expensive isNoValue() call -- Lazily pre-populate list of values of Sequence/Set/Choice types -- NamedTypes comparison made more efficient -- More efficient constraints computation and code clean up -- The __getitem__() implementation of some ASN.1 types & tag object - refactored for better performance -- BER/CER/DER value encoders refactored to produce either tuple of - bytes or octet-stream depending on what is more optimal -- Reduced the frequency of expensive isinstance() calls -- Tag-related classes optimized, refactored into properties and - documented. -- The NamedValues implementation refactored to mimic Python dict, its use - in ASN.1 types refactored into properties and better documented. - WARNING: this change introduces a deviation from original API. -- NamedType family of classes overhauled, optimized and documented. -- The `componentType` attribute of constructed ASN.1 types turned - read-only on instances. -- Sequence/Set DER/CER/DER decoder optimized to skip the case of - reordered components handling when not necessary. -- Tags and constraints-related getter methods refactored into read-only - instance attributes. -- The .hasValue() method refactored into .isValue property. All ASN.1 - objects now support them, not just scalars. -- The Real.{isInfinity, isPlusInfinity, isMinusInfinity} methods - refactored into properties and renamed into IsInf, IsPlusInf and isMinusInf -- The end-of-octets type refactored to ensure it is a singleton. Codecs - changed to rely on that for better performance. -- Codecs lookup made more efficient at BER/CER/DER decoder main loop by - assigning `typeId` to every ASN.1 type, not just ambiguous ones. -- The .getComponent*() methods of constructed ASN.1 types changed - to lazily instantiate underlying type rather than return `None`. - This should simplify its API as initialization like `X[0][1] = 2` becomes - possible. - WARNING: this change introduces a deviation from the original API. -- The .setComponent*() methods of SetOf/SequenceOf types changed not - to allow uninitialized "holes" inside the sequences of their components. - They now behave similarly to Python lists. - WARNING: this change introduces a deviation from the original API. -- Default and optional components en/decoding of Constructed type - refactored towards better efficiency and more control. -- OctetsString and Any decoder optimized to avoid creating ASN.1 - objects for chunks of substrate. Instead they now join substrate - chunks together and create ASN.1 object from it just once. -- The GeneralizedTime and UTCTime types now support to/from Python - datetime object conversion. -- Unit tests added for the `compat` sub-package. -- Fixed BitString named bits initialization bug. -- Fixed non-functional tag cache (when running Python 2) at DER decoder. -- Fixed chunked encoding restriction on DER encoder. -- Fixed SET components ordering at DER encoder. -- Fixed BIT STRING & OCTET STRING encoding to be always non-chunked (e.g. - primitive) at DER encoder -- Fixed `compat.integer.from_bytes()` behaviour on empty input. - ------------------------------------------------------------------- Mon Jun 19 05:38:49 UTC 2017 - okurz@suse.com @@ -275,100 +269,93 @@ Thu Mar 16 13:42:52 UTC 2017 - tbechtold@suse.com Mon Mar 6 13:28:21 UTC 2017 - michael@stroeder.com - updated to upstream release 0.2.3 + Revision 0.2.3, released 25-02-2017 -Revision 0.2.3, released 25-02-2017 ------------------------------------ - -- Improved SEQUENCE/SET/CHOICE decoding performance by maintaining a single shared - NamedType object for all instances of SEQUENCE/SET object. -- Improved INTEGER encoding/decoding by switching to Python's built-in - integer serialization functions. -- Improved BitString performance by rebasing it onto Python int type and leveraging - fast Integer serialization functions. -- BitString type usability improved in many ways: for example bitshifting and - numeric operation on BitString is now possible. -- Minor ObjectIdentifier type performance optimization. -- ASN.1 character types refactored to keep unicode contents internally - (rather than serialized octet stream) and duck-type it directly. -- ASN.1 OctetString initialized from a Python object performs bytes() - on it when running on Python 3 (used to do str() which is probably - less logical). -- Missing support for NoValue.__sizeof__ added. -- Added checks to make sure SEQUENCE/SET components being assigned - match the prototypes. -- Setter methods for constructed types consistently accept matchTags - and matchConstraints flags to control the strictness of inner - components compatibility verification. Previously, these checks - were tied to verifyConstraints flag, now they are all independent. -- General documentation improvements here and there. -- Fix to __reversed__() magic to make it returning an iterator. -- Test suite simplified and unified. -- The __all__ variable added to most of the Python modules. -- The "test" directory renamed into "tests" not to collide with - the "test" module. + * Improved SEQUENCE/SET/CHOICE decoding performance by maintaining a single shared + NamedType object for all instances of SEQUENCE/SET object. + * Improved INTEGER encoding/decoding by switching to Python's built-in + integer serialization functions. + * Improved BitString performance by rebasing it onto Python int type and leveraging + fast Integer serialization functions. + * BitString type usability improved in many ways: for example bitshifting and + numeric operation on BitString is now possible. + * Minor ObjectIdentifier type performance optimization. + * ASN.1 character types refactored to keep unicode contents internally + (rather than serialized octet stream) and duck-type it directly. + * ASN.1 OctetString initialized from a Python object performs bytes() + on it when running on Python 3 (used to do str() which is probably + less logical). + * Missing support for NoValue.__sizeof__ added. + * Added checks to make sure SEQUENCE/SET components being assigned + match the prototypes. + * Setter methods for constructed types consistently accept matchTags + and matchConstraints flags to control the strictness of inner + components compatibility verification. Previously, these checks + were tied to verifyConstraints flag, now they are all independent. + * General documentation improvements here and there. + * Fix to __reversed__() magic to make it returning an iterator. + * Test suite simplified and unified. + * The __all__ variable added to most of the Python modules. + * The "test" directory renamed into "tests" not to collide with + the "test" module. ------------------------------------------------------------------- Tue Feb 7 07:35:04 UTC 2017 - michael@stroeder.com - updated to upstream release 0.2.2 with security fixes -- updated project and source URLs and list of doc files + Revision 0.2.2, released 07-02-2017 -Revision 0.2.2, released 07-02-2017 ------------------------------------ + * FIX TO A SECURITY WEAKNESS: define length only decoders could have successfully + processed indefinite length serialization. + * FIX TO A SECURITY WEAKNESS: canonical decoders (CER/DER) may have successfully + consumed non-canonical variations of (otherwise valid) serialization. + * Broken Enumerated subtyping fixed. -- FIX TO A SECURITY WEAKNESS: define length only decoders could have successfully - processed indefinite length serialization. -- FIX TO A SECURITY WEAKNESS: canonical decoders (CER/DER) may have successfully - consumed non-canonical variations of (otherwise valid) serialization. -- Broken Enumerated subtyping fixed. + Revision 0.2.1, released 05-02-2017 -Revision 0.2.1, released 05-02-2017 ------------------------------------ + * FIX TO A SECURITY WEAKNESS: BER decoder improperly cached long tags. + * New "native" codec implemented to transform pyasn1 types to Python built-in types and back. + * Switched to new-style classes. + * Sphinx documentation added. + * BitString improvements: + simple string of binary digits is now supported as initializer + default str() yields string of binary digits (used to yield str(tuple()) + binValue and hexValue initializers added + .asNumbers(), .asOctets() and asInteger() representation added + * Components of constructed ASN.1 types can now be populated with + uninitialized ASN.1 objects by assigning either noValue sentinel or + setupComponent() function return in addition to now-legacy None sentinel. + This should improve code readability. + * NoValue class improved to become a singleton and catch more kinds + of access to it. + * Compatibility wrappers str2octs() and oct2strs() fixed to run over + iso-8859-1 encoding. + * Integer changed to emit Real instance if division produces a float. + * True division operation now supported by Integer type. + * The __contains__(), __reverse__() methods implemented for container types + * Iterator protocol support implemented for all container types. + Warning, warning, warning: this change may potentially affect backward + compatibility when: + user class overrides __getitem__() without overriding __iter__() + when user code iterates over SEQUENCE object to get its components (now keys will be yielded) -- FIX TO A SECURITY WEAKNESS: BER decoder improperly cached long tags. -- New "native" codec implemented to transform pyasn1 types to Python built-in types and back. -- Switched to new-style classes. -- Sphinx documentation added. -- BitString improvements: + * Almost complete Python list and dict protocols added to SequenceOf/SetOf and + Sequence/Set respectively + * Fix to divmod operation implementation in Integer type. + * Fix to IntegerDecoder's precomputed value map on Python 3. + * Fix to base ASN.1 types to run in "unicode_literals" mode. + * Fix to composite constraints "+" operands ordering (AbstractConstraintSet.__radd__) + * Fix to constraints merge in .subtype() -- on merge existing constraints are + expanded to accommodate new constraints, not the other way round. When existing + constraints are wrapped in ConstraintsIntersection composite, additional + constraints being added on subtyping effectively further narrow the set of + allowed values, which aligns well with the notion of subtyping. + * Fix to NamedTypes methods to handle .getTagMap() returning None + * Fix to Set/Sequence.setDefaultComponents() to return self + * Copyright notice added to non-trivial source code files. + * Author's email changed, copyright extended to 2017 - * simple string of binary digits is now supported as initializer - * default str() yields string of binary digits (used to yield str(tuple()) - * binValue and hexValue initializers added - * .asNumbers(), .asOctets() and asInteger() representation added - -- Components of constructed ASN.1 types can now be populated with - uninitialized ASN.1 objects by assigning either noValue sentinel or - setupComponent() function return in addition to now-legacy None sentinel. - This should improve code readability. -- NoValue class improved to become a singleton and catch more kinds - of access to it. -- Compatibility wrappers str2octs() and oct2strs() fixed to run over - iso-8859-1 encoding. -- Integer changed to emit Real instance if division produces a float. -- True division operation now supported by Integer type. -- The __contains__(), __reverse__() methods implemented for container types -- Iterator protocol support implemented for all container types. - Warning, warning, warning: this change may potentially affect backward - compatibility when: - - * user class overrides __getitem__() without overriding __iter__() - * when user code iterates over SEQUENCE object to get its components (now keys will be yielded) - -- Almost complete Python list and dict protocols added to SequenceOf/SetOf and - Sequence/Set respectively -- Fix to divmod operation implementation in Integer type. -- Fix to IntegerDecoder's precomputed value map on Python 3. -- Fix to base ASN.1 types to run in "unicode_literals" mode. -- Fix to composite constraints "+" operands ordering (AbstractConstraintSet.__radd__) -- Fix to constraints merge in .subtype() -- on merge existing constraints are - expanded to accommodate new constraints, not the other way round. When existing - constraints are wrapped in ConstraintsIntersection composite, additional - constraints being added on subtyping effectively further narrow the set of - allowed values, which aligns well with the notion of subtyping. -- Fix to NamedTypes methods to handle .getTagMap() returning None -- Fix to Set/Sequence.setDefaultComponents() to return self -- Copyright notice added to non-trivial source code files. -- Author's email changed, copyright extended to 2017 + - updated project and source URLs and list of doc files ------------------------------------------------------------------- Tue Oct 6 11:18:26 UTC 2015 - hpj@urpla.net @@ -406,10 +393,10 @@ Sat Jul 4 20:42:15 UTC 2015 - michael@stroeder.com - When comparing ASN.1 types, by-tag and/or by-constraints matching can now be performed with the isSuperTypeOf()/isSameTypeWith() optional flags. - - Constructed types now verify their consistency by invoking + - Constructed types now verify their consistency by invoking isSameTypeWith(matchTags=True, matchConstraints=False) and isSuperTypeOf(matchTags=False, matchConstraints=True) for each of their - components rather than isSuperTypeOf() as it used to be. Constriants check + components rather than isSuperTypeOf() as it used to be. Constriants check could be enforced to isSameTypeWith() with the strictConstraints=True constructed classes attribute. - Constructed types can now be initialized with new .setComponents() method @@ -417,7 +404,7 @@ Sat Jul 4 20:42:15 UTC 2015 - michael@stroeder.com reflect this change. - NamedTypes() and NamedValues() made comparable. - Test coverage extended to cover pyasn1 types __repr__() function. - - The abs(Integer()) & abs(Real()) operation now returns respective pyasn1 + - The abs(Integer()) & abs(Real()) operation now returns respective pyasn1 type, not a Python type. - More Python magic methods implementations added to Integer & Real classes (e.g. __pos__, __neg__, __round__, __floor__, __ceil__, __trunc__) @@ -474,7 +461,7 @@ Tue May 7 08:23:39 UTC 2013 - michael@stroeder.com marker is now detected by both tag and value. Otherwise zero values may interfere with end-of-octets marker. - Fix to decoder to fail in cases where tagFormat indicates inappropriate - format for the type (e.g. BOOLEAN is always PRIMITIVE, SET is always + format for the type (e.g. BOOLEAN is always PRIMITIVE, SET is always CONSTRUCTED and OCTET STRING is either of the two) - Fix to REAL type encoder to force primitive encoding form encoding. - Fix to CHOICE decoder to handle explicitly tagged, indefinite length @@ -556,7 +543,7 @@ Tue Nov 8 06:25:13 UTC 2011 - highwaystar.ru@gmail.com * Hex/bin string initializer to OctetString object reworked (in a backward-incompatible manner) * Fixed float() infinity compatibility issue (affects 2.5 and earlier) - * Fixed a bug/typo at Boolean CER encoder + * Fixed a bug/typo at Boolean CER encoder * Major overhawl for Python 2.4 -- 3.2 compatibility + get rid of old-style types + drop string module usage -- 2.51.1