Blame python-ruamel-yaml-clib.spec

de3c2f
%global commit 85e484db2b7c37107e4edd2ae6fc380877bbc08e
Miro Hrončok 4d7ab8
de3c2f
Name:           python-ruamel-yaml-clib
Jakub Čajka 6d0cc7
Version:        0.2.6
8bbacc
Release:        5%{?dist}
Chandan Kumar (raukadah) 72bcb8
Summary:        C version of reader, parser and emitter for ruamel.yaml derived from libyaml
Chandan Kumar (raukadah) 72bcb8
8bbacc
# SPDX
Chandan Kumar (raukadah) 72bcb8
License:        MIT
0b72a5
URL:            https://sourceforge.net/projects/ruamel-yaml-clib
a8b60c
Source0:        https://sourceforge.net/code-snapshots/hg/r/ru/ruamel-yaml-clib/code/ruamel-yaml-clib-code-%{commit}.zip
a8b60c
# Include license file for bundled libyaml
a8b60c
# https://sourceforge.net/p/ruamel-yaml-clib/tickets/16/
a8b60c
# This should be fixed upstream in a future ruamel.yaml.clib release >0.2.7
a8b60c
Source1:        https://github.com/yaml/libyaml/raw/0.1.7/LICENSE#/LICENSE-libyaml
a9345a
Patch:          fix-typecasts-s390x.patch
Chandan Kumar (raukadah) 72bcb8
Chandan Kumar (raukadah) 72bcb8
BuildRequires:  gcc
Chandan Kumar (raukadah) 72bcb8
cf6219
%global _description %{expand:
cf6219
It is the C based reader/scanner and emitter for ruamel.yaml.}
cf6219
cf6219
%description %{_description}
Chandan Kumar (raukadah) 72bcb8
de3c2f
%package -n     python3-ruamel-yaml-clib
Chandan Kumar (raukadah) 72bcb8
Summary:        %{summary}
cf6219
Chandan Kumar (raukadah) 72bcb8
BuildRequires:  python3-devel
cf6219
BuildRequires:  %{py3_dist Cython}
Chandan Kumar (raukadah) 72bcb8
279b58
# Unfortunately, the circular dependency is intentional; the clib extension
279b58
# packaged here imports from ruamel.yaml, which in turn uses the extension for
279b58
# performance.
7e7f12
BuildRequires:  python3-ruamel-yaml
Miro Hrončok ede868
Requires:       python3-ruamel-yaml
Chandan Kumar (raukadah) 72bcb8
a8b60c
# Bundled sources from libyaml are:
a8b60c
#   - config.h yaml.h yaml_private.h
a8b60c
#   - api.c dumper.c emitter.c loader.c parser.c reader.c scanner.c writer.c
a8b60c
#
a8b60c
# Support building with an external/system copy of libyaml?
a8b60c
# https://sourceforge.net/p/ruamel-yaml-clib/tickets/15/
a8b60c
#
a8b60c
# Upstream replied:
a8b60c
#
a8b60c
#   The copy is because there have been improvements where libyaml had not been
a8b60c
#   maintained for several years. But that is minor reason to do that, as I am
a8b60c
#   working on an alternative for clib.
a8b60c
#
a8b60c
# Version number from VERSION in config.h:
a8b60c
Provides:       bundled(libyaml) = 0.1.7
a8b60c
cf6219
%py_provides python3-ruamel.yaml.clib
cf6219
cf6219
%description -n python3-ruamel-yaml-clib %{_description}
Chandan Kumar (raukadah) 72bcb8
Chandan Kumar (raukadah) 72bcb8
%prep
de3c2f
%autosetup -n ruamel-yaml-clib-code-%{commit}
Miro Hrončok 4d7ab8
# Force regenerating C files from Cython sources
Miro Hrončok 4d7ab8
rm -v $(grep -rl '/\* Generated by Cython')
a8b60c
cp -p '%{SOURCE1}' .
Chandan Kumar (raukadah) 72bcb8
cf6219
%generate_buildrequires
cf6219
# Upstream has a tox.ini, but it is for a build-and-install check, not a test
cf6219
# suite, so we do not use it to generate dependencies (-t).
cf6219
%pyproject_buildrequires
cf6219
Chandan Kumar (raukadah) 72bcb8
%build
f307e2
# cython refuses to cythonize a file in a directory that cannot be a Python
f307e2
# module ¯\_(ツ)_/¯
f307e2
#
f307e2
# Top-level structure seems to be incompatible with Cython 0.29.34
f307e2
# ('ruamel-yaml-clib-code._ruamel_yaml' is not a valid module name)
f307e2
# https://sourceforge.net/p/ruamel-yaml-clib/tickets/14/
Miro Hrončok 4d7ab8
mkdir ruamel.yaml.clib
Miro Hrončok 4d7ab8
mv *.pyx ruamel.yaml.clib
Jakub Čajka 6d0cc7
cythonize -3 ruamel.yaml.clib/*.pyx
Miro Hrončok 4d7ab8
mv ruamel.yaml.clib/* .
Miro Hrončok 4d7ab8
rmdir ruamel.yaml.clib
Miro Hrončok 4d7ab8
cf6219
%pyproject_wheel
Chandan Kumar (raukadah) 72bcb8
Chandan Kumar (raukadah) 72bcb8
%install
cf6219
%pyproject_install
cf6219
%pyproject_save_files _ruamel_yaml
Chandan Kumar (raukadah) 72bcb8
7e7f12
%check
7e7f12
%py3_check_import _ruamel_yaml
7e7f12
cf6219
%files -n python3-ruamel-yaml-clib -f %{pyproject_files}
cf6219
# pyproject_files handles LICENSE; verify with “rpm -qL -p …”
cf6219
# Remove the following once we no longer have a separate LICENSE-libyaml:
a8b60c
%license LICENSE LICENSE-libyaml
cf6219
Chandan Kumar (raukadah) 72bcb8
%doc README.rst
Chandan Kumar (raukadah) 72bcb8
Chandan Kumar (raukadah) 72bcb8
%changelog
8bbacc
* Wed May 03 2023 Benjamin A. Beasley <code@musicinmybrain.net> - 0.2.6-5
8bbacc
- Confirm License is SPDX MIT
de3c2f
- Reduce macro indirection, etc.
68ed5a
- Drop unused manual runtime dependency on setuptools
279b58
- Add a note about the circular dependency with ruamel.yaml
a9345a
- Stop numbering sources and patches
0b72a5
- Update URL (close RHBZ#1840610)
7e7f12
- Add an import-only “smoke test”
a8b60c
- Properly handle libyaml bundling
cf6219
- Port to pyproject-rpm-macros (“new Python guidelines”)
f307e2
- Add a link to the upstream issue for the Cython workaround
8bbacc
Fedora Release Engineering fd87b7
* Fri Jan 20 2023 Fedora Release Engineering <releng@fedoraproject.org> - 0.2.6-4
Fedora Release Engineering fd87b7
- Rebuilt for https://fedoraproject.org/wiki/Fedora_38_Mass_Rebuild
Fedora Release Engineering fd87b7
Fedora Release Engineering b0b38e
* Fri Jul 22 2022 Fedora Release Engineering <releng@fedoraproject.org> - 0.2.6-3
Fedora Release Engineering b0b38e
- Rebuilt for https://fedoraproject.org/wiki/Fedora_37_Mass_Rebuild
Fedora Release Engineering b0b38e
Python Maint bff2c3
* Mon Jun 13 2022 Python Maint <python-maint@redhat.com> - 0.2.6-2
Python Maint bff2c3
- Rebuilt for Python 3.11
Python Maint bff2c3
Jakub Čajka 6d0cc7
* Tue May 10 2022 Jakub Čajka <jcajka@redhat.com> - 0.2.6-1
Jakub Čajka 6d0cc7
- Update to 0.2.6
Jakub Čajka 6d0cc7
- Fix for type demotion issues on s390x
Jakub Čajka 6d0cc7
- Resolves: BZ#2042422
Jakub Čajka 6d0cc7
Fedora Release Engineering 62e145
* Fri Jan 21 2022 Fedora Release Engineering <releng@fedoraproject.org> - 0.1.2-9
Fedora Release Engineering 62e145
- Rebuilt for https://fedoraproject.org/wiki/Fedora_36_Mass_Rebuild
Fedora Release Engineering 62e145
Fedora Release Engineering 66c783
* Fri Jul 23 2021 Fedora Release Engineering <releng@fedoraproject.org> - 0.1.2-8
Fedora Release Engineering 66c783
- Rebuilt for https://fedoraproject.org/wiki/Fedora_35_Mass_Rebuild
Fedora Release Engineering 66c783
Python Maint f2bcae
* Fri Jun 04 2021 Python Maint <python-maint@redhat.com> - 0.1.2-7
Python Maint f2bcae
- Rebuilt for Python 3.10
Python Maint f2bcae
Fedora Release Engineering f3f133
* Wed Jan 27 2021 Fedora Release Engineering <releng@fedoraproject.org> - 0.1.2-6
Fedora Release Engineering f3f133
- Rebuilt for https://fedoraproject.org/wiki/Fedora_34_Mass_Rebuild
Fedora Release Engineering f3f133
Miro Hrončok 4d7ab8
* Thu Nov 12 2020 Miro Hrončok <mhroncok@redhat.com> - 0.1.2-5
Miro Hrončok 4d7ab8
- Force regenerating C files from Cython sources
Miro Hrončok ede868
- Require python3-ruamel-yaml
Miro Hrončok 4d7ab8
Fedora Release Engineering 0be324
* Wed Jul 29 2020 Fedora Release Engineering <releng@fedoraproject.org> - 0.1.2-4
Fedora Release Engineering 0be324
- Rebuilt for https://fedoraproject.org/wiki/Fedora_33_Mass_Rebuild
Fedora Release Engineering 0be324
Miro Hrončok d6a5d7
* Tue May 26 2020 Miro Hrončok <mhroncok@redhat.com> - 0.1.2-3
Miro Hrončok d6a5d7
- Rebuilt for Python 3.9
Miro Hrončok d6a5d7
Fedora Release Engineering 218834
* Thu Jan 30 2020 Fedora Release Engineering <releng@fedoraproject.org> - 0.1.2-2
Fedora Release Engineering 218834
- Rebuilt for https://fedoraproject.org/wiki/Fedora_32_Mass_Rebuild
Fedora Release Engineering 218834
Chandan Kumar (raukadah) 72bcb8
* Fri Aug 30 2019 Chandan Kumar <raukadah@gmail.com> - 0.1.2-1
Chandan Kumar (raukadah) 72bcb8
- Initial package