Upstream tag: 0.38.0 Upstream commit: a07560dd Commit authored by Packit automation (https://packit.dev/)
219 lines
9.8 KiB
RPMSpec
219 lines
9.8 KiB
RPMSpec
%global desc %{expand:
|
|
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.}
|
|
|
|
|
|
%global base_version 0.38.0
|
|
#global prerelease rc1
|
|
|
|
%global package_version %{base_version}%{?prerelease:~%{prerelease}}
|
|
%global pypi_version %{base_version}%{?prerelease}
|
|
|
|
|
|
Name: python-specfile
|
|
Version: %{package_version}
|
|
Release: 1%{?dist}
|
|
|
|
Summary: A library for parsing and manipulating RPM spec files
|
|
License: MIT
|
|
URL: https://github.com/packit/specfile
|
|
|
|
Source0: %{pypi_source specfile %{pypi_version}}
|
|
|
|
BuildArch: noarch
|
|
|
|
BuildRequires: python%{python3_pkgversion}-devel
|
|
BuildRequires: %{py3_dist setuptools setuptools-scm}
|
|
BuildRequires: %{py3_dist importlib-metadata dataclasses rpm typing-extensions}
|
|
BuildRequires: %{py3_dist flexmock pytest}
|
|
BuildRequires: git-core
|
|
|
|
|
|
%description
|
|
%{desc}
|
|
|
|
|
|
%package -n python%{python3_pkgversion}-specfile
|
|
Summary: %{summary}
|
|
|
|
|
|
%description -n python%{python3_pkgversion}-specfile
|
|
%{desc}
|
|
|
|
|
|
%prep
|
|
%autosetup -p1 -n specfile-%{pypi_version}
|
|
# Remove bundled egg-info
|
|
rm -rf specfile.egg-info
|
|
|
|
|
|
%build
|
|
%py3_build
|
|
|
|
|
|
%install
|
|
%py3_install
|
|
|
|
|
|
%check
|
|
%pytest --verbose tests/unit tests/integration
|
|
|
|
|
|
%files -n python%{python3_pkgversion}-specfile
|
|
%license LICENSE
|
|
%doc README.md
|
|
%{python3_sitelib}/specfile
|
|
%{python3_sitelib}/specfile-%{version}-py%{python3_version}.egg-info
|
|
|
|
|
|
%changelog
|
|
* Thu Jan 08 2026 Packit <hello@packit.dev> - 0.38.0-1
|
|
- A bug leading to incorrect EVR expansion has been fixed. (#492)
|
|
- Prevented side-effects during condition evaluation that could occur when expanding macros that manipulate other macros, leading to misinterpreted validity of condition branches. (#499)
|
|
|
|
* 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)
|
|
|
|
* 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
|
|
|
|
* Thu Nov 14 2024 Packit <hello@packit.dev> - 0.32.6-1
|
|
- New minor release for testing in CBS Koji
|
|
- Resolves: rhbz#2318011
|
|
|
|
* Sat Oct 26 2024 Packit <hello@packit.dev> - 0.32.5-1
|
|
- We have fixed our parser to take in account the deprecations introduced in Python 3.8 (#420)
|
|
|
|
* Mon Sep 30 2024 Packit <hello@packit.dev> - 0.32.3-1
|
|
- specfile can now handle multi-line tag values (enclosed in a macro body, e.g. `%%shrink`). (#412)
|
|
- Resolves: rhbz#2299289
|
|
|
|
* Sun Sep 15 2024 Packit <hello@packit.dev> - 0.32.2-1
|
|
- Explicitly invalidate the global parse hash when a SpecParser instance is created to prevent this issue. (#409)
|
|
|
|
* Mon Jul 29 2024 Packit <hello@packit.dev> - 0.32.1-1
|
|
- Fixed two issues related to condition parsing. (#405)
|
|
|
|
* Mon Jul 22 2024 Packit <hello@packit.dev> - 0.32.0-1
|
|
- It is now possible to bump a release in a manner similar to `rpmdev-bumpspec` using `Specfile.bump_release()` method. (#399)
|
|
|
|
* Tue Jul 09 2024 Packit <hello@packit.dev> - 0.31.0-1
|
|
- Value of a `Tag` no longer includes trailing whitespace (if any). (#393)
|
|
- specfile now tries to expand macros before processing conditions to be able to resolve conditional expressions defined by macros, for example OpenSUSE Tumbleweed defines `%%ifpython3` macro as `%%if "%%{python_flavor}" == "python3"`. (#394)
|
|
- Resolves: rhbz#2294393
|
|
|
|
* Wed Jun 26 2024 Packit <hello@packit.dev> - 0.30.0-1
|
|
- Fixed an exception that occured when accessing the `Specfile.has_autochangelog` property while having unparseable lines (e.g. lines ending with unescaped `%`) in `%%changelog`. (#387)
|
|
|
|
* Thu Jun 06 2024 Packit <hello@packit.dev> - 0.29.0-1
|
|
- Improved compatibility with RPM 4.20 (alpha version is currently in Fedora Rawhide). (#380)
|
|
|
|
* Thu May 23 2024 Packit <hello@packit.dev> - 0.28.3-1
|
|
- Fixed several minor issues such as processing seemingly commented-out macro definitions (e.g. `#%%global prerel rc1`) and treating `SourceLicense` tag as a source. (#374, #376)
|
|
- Made `EVR`, `NEVR` and `NEVRA` objects comparable. (#379)
|
|
|
|
* Sun Mar 17 2024 Packit <hello@packit.dev> - 0.28.0-1
|
|
- A trailing newline is no longer added to spec files without one upon saving. (#353)
|
|
|
|
* Fri Jan 19 2024 Packit <hello@packit.dev> - 0.27.0-1
|
|
- Improved handling of commented-out macro definitions and fixed related logic in `Specfile.update_value()`. (#338)
|
|
|
|
* Mon Nov 20 2023 Packit <hello@packit.dev> - 0.25.0-1
|
|
- There is a new method, `Specfile.update_version()`, that allows updating spec file version even if it is a pre-release. (#317)
|
|
|
|
* Mon Nov 06 2023 Packit <hello@packit.dev> - 0.24.0-1
|
|
- Improved type annotations for `UserList` subclasses. (#299)
|
|
- Macro definitions gained a new `commented_out` property indicating that a macro definition is commented out. Another new property, `comment_out_style`, determines if it is achieved by using a `%%dnl` (discard next line) directive (e.g. `%%dnl %%global prerelease beta2`) or by replacing the starting `%` with `#` (e.g. `#global prerelease beta2`). (#298)
|
|
|
|
* Mon Oct 30 2023 Packit <hello@packit.dev> - 0.23.0-1
|
|
- Sources now have a `valid` property that indicates whether a source is valid in the current context, meaning it is not present in a false branch of any condition. (#295)
|
|
|
|
* Fri Oct 06 2023 Packit <hello@packit.dev> - 0.22.1-1
|
|
- Removed dependency on setuptools-scm-git-archive. (#290)
|
|
|
|
* Fri Aug 11 2023 Nikola Forró <nforro@redhat.com> - 0.21.0-1
|
|
- `specfile` no longer tracebacks when some sources are missing and can't be _emulated_. In such case the spec file is parsed without them at the cost of `%%setup` and `%%patch` macros potentially expanding differently than with the sources present. (#271)
|
|
- Specfile's license in RPM spec file is now confirmed to be SPDX compatible. (#269)
|
|
|
|
* Mon Jul 31 2023 Packit <hello@packit.dev> - 0.20.2-1
|
|
- Fixed Packit config to work properly with `propose-downstream` and `pull-from-upstream` jobs. (#261)
|
|
|
|
* Fri Oct 07 2022 Packit <hello@packit.dev> - 0.7.0-1
|
|
- It is now possible to filter changelog entries by specifying lower bound EVR, upper bound EVR or both. (#104)
|
|
- Added support for filenames specified in source URL fragments, for example: `https://example.com/foo/1.0/download.cgi#/%{name}-%{version}.tar.gz` (#100)
|
|
|
|
* Thu Aug 25 2022 Packit <hello@packit.dev> - 0.6.0-1
|
|
- Switched to our own implementation of working with `%changelog` timestamps and removed dependency on arrow (#88)
|
|
- Fixed requires of EPEL 8 rpm (#86)
|
|
|
|
* Wed Aug 10 2022 Packit <hello@packit.dev> - 0.5.1-1
|
|
- Added new `%conf` section (#74)
|
|
- Switched to rpm-py-installer (#75)
|
|
- Fixed detecting extended timestamp format in `%changelog` (#77, #81)
|
|
|
|
* Fri Jul 22 2022 Packit <hello@packit.dev> - 0.5.0-1
|
|
- Strict optional typing is now enforced (#68)
|
|
- Fixed deduplication of tag names (#69)
|
|
- Sources and patches can now be removed by number (#69)
|
|
- Number of digits in a source number is now expressed the same way as packit does it (#69)
|
|
- Empty lines are now compressed when deleting tags (#69)
|
|
- Added convenience property for getting texts of tag comments (#69)
|
|
- Added convenience method for adding a patch (#69)
|
|
|
|
* Tue Jun 21 2022 Packit <hello@packit.dev> - 0.4.0-1
|
|
- Added convenience properties for most used tags (#63)
|
|
- Hardened linting by ignoring only specific mypy errors (#64)
|
|
- Fixed list of valid tag names and ensured newly added tags are not part of a condition block (#66)
|
|
- Initial patch number and its default number of digits are now honored (#66)
|
|
- Fixed a bug in `%prep` macro stringification (#67)
|
|
|
|
* Mon May 16 2022 Packit <hello@packit.dev> - 0.3.0-1
|
|
- Made `Sources` a `MutableSequence` (#36)
|
|
- Started using consistent terminology for source numbers and added the option to insert a source with a specific number (#47)
|
|
- Added support for implicit source numbering (#48)
|
|
- Documented sources and `%prep` macros in README (#49)
|
|
- Implemented high-level manipulation of version and release (#54)
|
|
- Added support for `* Mon May 16 2022 John Doe <packager@example.com> - 0.3.0-1.fc35
|
|
- local build` (#56)
|
|
- Added `remote` property to sources and enabled addition of `Sources` (#59)
|
|
- Implemented mid-level manipulation of `%prep` section, including modification of `%prep` macros (#37, #52)
|
|
|
|
|
|
* Wed Mar 30 2022 Nikola Forró <nforro@redhat.com> - 0.2.0-1
|
|
- New upstream release 0.2.0
|
|
|
|
* Mon Feb 21 2022 Nikola Forró <nforro@redhat.com> - 0.1.1-1
|
|
- New upstream release 0.1.1
|
|
|
|
* Tue Feb 08 2022 Nikola Forró <nforro@redhat.com> - 0.1.0-1
|
|
- Initial package
|