import CS python-ruamel-yaml-clib-0.2.7-3.el9

This commit is contained in:
eabdullin 2024-03-28 11:31:02 +00:00
parent 003980e0fe
commit b8952db0d5
5 changed files with 168 additions and 39 deletions

2
.gitignore vendored
View File

@ -1 +1 @@
SOURCES/ruamel-yaml-clib-code-955989c1f022b95ca1f92bf0abd761ef8aa0b940.zip
SOURCES/ruamel-yaml-clib-code-fdd42e838e4d5199b0277fc21a920a744cdd5c9d.zip

View File

@ -1 +1 @@
907faea426e46eb3e74517d25bbf522ec5b0ca65 SOURCES/ruamel-yaml-clib-code-955989c1f022b95ca1f92bf0abd761ef8aa0b940.zip
ff23dd8a8266f256987fc42e1d7e88260409efc6 SOURCES/ruamel-yaml-clib-code-fdd42e838e4d5199b0277fc21a920a744cdd5c9d.zip

19
SOURCES/LICENSE-libyaml Normal file
View File

@ -0,0 +1,19 @@
Copyright (c) 2006 Kirill Simonov
Permission is hereby granted, free of charge, to any person obtaining a copy of
this software and associated documentation files (the "Software"), to deal in
the Software without restriction, including without limitation the rights to
use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies
of the Software, and to permit persons to whom the Software is furnished to do
so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.

View File

@ -0,0 +1,38 @@
diff -up ruamel-yaml-clib-code-85e484db2b7c37107e4edd2ae6fc380877bbc08e/_ruamel_yaml.pxd.s390x ruamel-yaml-clib-code-85e484db2b7c37107e4edd2ae6fc380877bbc08e/_ruamel_yaml.pxd
--- ruamel-yaml-clib-code-85e484db2b7c37107e4edd2ae6fc380877bbc08e/_ruamel_yaml.pxd.s390x 2022-05-11 17:33:41.727476439 +0200
+++ ruamel-yaml-clib-code-85e484db2b7c37107e4edd2ae6fc380877bbc08e/_ruamel_yaml.pxd 2022-05-11 17:34:34.197700039 +0200
@@ -86,10 +86,10 @@ cdef extern from "_ruamel_yaml.h":
YAML_MAPPING_END_EVENT
ctypedef int yaml_read_handler_t(void *data, char *buffer,
- int size, int *size_read) except 0
+ size_t size, size_t *size_read) except 0
ctypedef int yaml_write_handler_t(void *data, char *buffer,
- int size) except 0
+ size_t size) except 0
ctypedef struct yaml_mark_t:
int index
diff -up ruamel-yaml-clib-code-85e484db2b7c37107e4edd2ae6fc380877bbc08e/_ruamel_yaml.pyx.s390x ruamel-yaml-clib-code-85e484db2b7c37107e4edd2ae6fc380877bbc08e/_ruamel_yaml.pyx
--- ruamel-yaml-clib-code-85e484db2b7c37107e4edd2ae6fc380877bbc08e/_ruamel_yaml.pyx.s390x 2022-05-12 13:05:17.540913818 +0200
+++ ruamel-yaml-clib-code-85e484db2b7c37107e4edd2ae6fc380877bbc08e/_ruamel_yaml.pyx 2022-05-12 13:06:38.211269280 +0200
@@ -904,7 +904,7 @@ cdef class CParser:
raise error
return 1
-cdef int input_handler(void *data, char *buffer, int size, int *read) except 0:
+cdef int input_handler(void *data, char *buffer, size_t size, size_t *read) except 0:
cdef CParser parser
parser = <CParser>data
if parser.stream_cache is None:
@@ -1514,7 +1514,7 @@ cdef class CEmitter:
self.ascend_resolver()
return 1
-cdef int output_handler(void *data, char *buffer, int size) except 0:
+cdef int output_handler(void *data, char *buffer, size_t size) except 0:
cdef CEmitter emitter
emitter = <CEmitter>data
if emitter.dump_unicode == 0:
diff -up ruamel-yaml-clib-code-85e484db2b7c37107e4edd2ae6fc380877bbc08e/yaml.h.s390x ruamel-yaml-clib-code-85e484db2b7c37107e4edd2ae6fc380877bbc08e/yaml.h

View File

@ -1,71 +1,143 @@
%global pypi_name ruamel.yaml.clib
%global pname ruamel-yaml-clib
%global commit fdd42e838e4d5199b0277fc21a920a744cdd5c9d
# This means version 0.1.2:
%global hash 955989c1f022b95ca1f92bf0abd761ef8aa0b940
Name: python-%{pname}
Version: 0.1.2
Release: 8%{?dist}.1
Name: python-ruamel-yaml-clib
Version: 0.2.7
Release: 3%{?dist}
Summary: C version of reader, parser and emitter for ruamel.yaml derived from libyaml
# SPDX
License: MIT
URL: https://bitbucket.org/ruamel/yaml.clib
Source0: https://sourceforge.net/code-snapshots/hg/r/ru/ruamel-yaml-clib/code/ruamel-yaml-clib-code-%{hash}.zip
URL: https://sourceforge.net/projects/ruamel-yaml-clib
Source0: https://sourceforge.net/code-snapshots/hg/r/ru/ruamel-yaml-clib/code/ruamel-yaml-clib-code-%{commit}.zip
# Include license file for bundled libyaml
# https://sourceforge.net/p/ruamel-yaml-clib/tickets/16/
# This should be fixed upstream in a future ruamel.yaml.clib release >0.2.7
Source1: https://github.com/yaml/libyaml/raw/0.1.7/LICENSE#/LICENSE-libyaml
Patch: fix-typecasts-s390x.patch
BuildRequires: gcc
BuildRequires: libyaml-devel
%description
It is the C based reader/scanner and emitter for ruamel.yaml.
%global _description %{expand:
It is the C based reader/scanner and emitter for ruamel.yaml.}
%package -n python3-%{pname}
%description %{_description}
%package -n python3-ruamel-yaml-clib
Summary: %{summary}
BuildRequires: python3-devel
BuildRequires: python3-setuptools
BuildRequires: python3-Cython
Requires: python3-setuptools
BuildRequires: python3-devel
BuildRequires: %{py3_dist Cython}
# Unfortunately, the circular dependency is intentional; the clib extension
# packaged here imports from ruamel.yaml, which in turn uses the extension for
# performance.
BuildRequires: python3-ruamel-yaml
Requires: python3-ruamel-yaml
%description -n python3-%{pname}
It is the C based reader/scanner and emitter for ruamel.yaml.
# Bundled sources from libyaml are:
# - config.h yaml.h yaml_private.h
# - api.c dumper.c emitter.c loader.c parser.c reader.c scanner.c writer.c
#
# Support building with an external/system copy of libyaml?
# https://sourceforge.net/p/ruamel-yaml-clib/tickets/15/
#
# Upstream replied:
#
# The copy is because there have been improvements where libyaml had not been
# maintained for several years. But that is minor reason to do that, as I am
# working on an alternative for clib.
#
# Version number from VERSION in config.h:
Provides: bundled(libyaml) = 0.1.7
%py_provides python3-ruamel.yaml.clib
%description -n python3-ruamel-yaml-clib %{_description}
%prep
%autosetup -n %{pname}-code-%{hash}
%autosetup -n ruamel-yaml-clib-code-%{commit}
# Force regenerating C files from Cython sources
rm -v $(grep -rl '/\* Generated by Cython')
cp -p '%{SOURCE1}' .
%generate_buildrequires
# Upstream has a tox.ini, but it is for a build-and-install check, not a test
# suite, so we do not use it to generate dependencies (-t).
%pyproject_buildrequires
%build
# cython refuses to cythonize a file in a directory that cannot be a Python module ¯\_(ツ)_/¯
# cython refuses to cythonize a file in a directory that cannot be a Python
# module ¯\_(ツ)_/¯
#
# Top-level structure seems to be incompatible with Cython 0.29.34
# ('ruamel-yaml-clib-code._ruamel_yaml' is not a valid module name)
# https://sourceforge.net/p/ruamel-yaml-clib/tickets/14/
mkdir ruamel.yaml.clib
mv *.pyx ruamel.yaml.clib
cythonize ruamel.yaml.clib/*.pyx
cythonize -3 ruamel.yaml.clib/*.pyx
mv ruamel.yaml.clib/* .
rmdir ruamel.yaml.clib
%py3_build
%pyproject_wheel
%install
%{__python3} setup.py install --single-version-externally-managed --skip-build --root $RPM_BUILD_ROOT
%pyproject_install
%pyproject_save_files _ruamel_yaml
%check
%py3_check_import _ruamel_yaml
%files -n python3-ruamel-yaml-clib -f %{pyproject_files}
# pyproject_files handles LICENSE; verify with “rpm -qL -p …”
# Remove the following once we no longer have a separate LICENSE-libyaml:
%license LICENSE LICENSE-libyaml
%files -n python3-%{pname}
%license LICENSE
%doc README.rst
%{python3_sitearch}/_ruamel_yaml.cpython-*
%{python3_sitearch}/%{pypi_name}-%{version}-py%{python3_version}.egg-info
%changelog
* Thu Sep 30 2021 Akira TAGOH <tagoh@redhat.com> - 0.1.2-8.1
- Add CI test.
Resolves: rhbz#2009159
* Fri Jul 21 2023 Fedora Release Engineering <releng@fedoraproject.org> - 0.2.7-3
- Rebuilt for https://fedoraproject.org/wiki/Fedora_39_Mass_Rebuild
* Tue Aug 10 2021 Mohan Boddu <mboddu@redhat.com> - 0.1.2-8
- Rebuilt for IMA sigs, glibc 2.34, aarch64 flags
Related: rhbz#1991688
* Wed Jun 14 2023 Python Maint <python-maint@redhat.com> - 0.2.7-2
- Rebuilt for Python 3.12
* Fri Apr 16 2021 Mohan Boddu <mboddu@redhat.com> - 0.1.2-7
- Rebuilt for RHEL 9 BETA on Apr 15th 2021. Related: rhbz#1947937
* Wed May 03 2023 Benjamin A. Beasley <code@musicinmybrain.net> - 0.2.7-1
- Update to 0.2.7
* Wed May 03 2023 Benjamin A. Beasley <code@musicinmybrain.net> - 0.2.6-5
- Confirm License is SPDX MIT
- Reduce macro indirection, etc.
- Drop unused manual runtime dependency on setuptools
- Add a note about the circular dependency with ruamel.yaml
- Stop numbering sources and patches
- Update URL (close RHBZ#1840610)
- Add an import-only “smoke test”
- Properly handle libyaml bundling
- Port to pyproject-rpm-macros (“new Python guidelines”)
- Add a link to the upstream issue for the Cython workaround
* Fri Jan 20 2023 Fedora Release Engineering <releng@fedoraproject.org> - 0.2.6-4
- Rebuilt for https://fedoraproject.org/wiki/Fedora_38_Mass_Rebuild
* Fri Jul 22 2022 Fedora Release Engineering <releng@fedoraproject.org> - 0.2.6-3
- Rebuilt for https://fedoraproject.org/wiki/Fedora_37_Mass_Rebuild
* Mon Jun 13 2022 Python Maint <python-maint@redhat.com> - 0.2.6-2
- Rebuilt for Python 3.11
* Tue May 10 2022 Jakub Čajka <jcajka@redhat.com> - 0.2.6-1
- Update to 0.2.6
- Fix for type demotion issues on s390x
- Resolves: BZ#2042422
* Fri Jan 21 2022 Fedora Release Engineering <releng@fedoraproject.org> - 0.1.2-9
- Rebuilt for https://fedoraproject.org/wiki/Fedora_36_Mass_Rebuild
* Fri Jul 23 2021 Fedora Release Engineering <releng@fedoraproject.org> - 0.1.2-8
- Rebuilt for https://fedoraproject.org/wiki/Fedora_35_Mass_Rebuild
* Fri Jun 04 2021 Python Maint <python-maint@redhat.com> - 0.1.2-7
- Rebuilt for Python 3.10
* Wed Jan 27 2021 Fedora Release Engineering <releng@fedoraproject.org> - 0.1.2-6
- Rebuilt for https://fedoraproject.org/wiki/Fedora_34_Mass_Rebuild