A library for parsing and manipulating RPM spec files
Repositories
Extras
Description
Python library for parsing and manipulating RPM spec files.
Main focus is on modifying existing spec files, any change should result
in a minimal diff.
* Sat Nov 01 2025 Arkady L. Shane <tigro@msvsphere-os.ru> - 0.37.1-1
- Rebuilt for MSVSphere
* Fri Oct 03 2025 Packit <hello@packit.dev> - 0.37.1-1
- We have solved a FutureWarning in our codebase. (#485)
* Fri Sep 05 2025 Packit <hello@packit.dev> - 0.37.0-1
- Added support for Elbrus E2K CPU architectures. (#484)
* Fri May 30 2025 Packit <hello@packit.dev> - 0.36.0-1
- We have fixed a bug that caused specfile to traceback when section names with conditional macro expansions containing spaces were present in the spec file. (#476)
* Fri May 16 2025 Packit <hello@packit.dev> - 0.35.1-1
- We have fixed a bug that caused changes to get lost when a spec file passed as a path was replaced or deleted. (#470)
* Sun Apr 13 2025 Packit <hello@packit.dev> - 0.35.0-1
- Added support for creating Specfile instances from file objects and strings. (#458)
- The `context_management` type stubs now use `ParamSpec` from `typing_extensions` to support Python < 3.10. (#466)
* Tue Mar 18 2025 Packit <hello@packit.dev> - 0.34.2-1
- context_management: add a type stub override to fix typing. Type checkers like mypy and pyright can now correctly determine the types for `.sources()`, `.sections()`, and the other `Specfile` methods that return context managers. (#457)
* Fri Feb 07 2025 Packit <hello@packit.dev> - 0.34.1-1
- Removed the usage of a walrus operator for Python 3.6 compatibility. (#450)
* Mon Jan 27 2025 Packit <hello@packit.dev> - 0.34.0-1
- Added support for detached (open)SUSE style changelogs (#444)
- Resolves: rhbz#2342178
* Mon Dec 16 2024 Packit <hello@packit.dev> - 0.33.0-1
- There is a new convenience method `Sections.get_or_create()` that allows you to manipulate a section
without checking if it exists first. If a section doesn't exist, it will be appended to the end. (#441)
For example, this will work properly even on spec files without `%changelog`:
```
with spec.sections() as sections:
changelog = sections.get_or_create("changelog")
changelog[:] = ["%autochangelog"]
```
- Resolves: rhbz#2332288