Compare commits

...

No commits in common. 'c9' and 'i10c-beta' have entirely different histories.

2
.gitignore vendored

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

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

@ -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.

@ -0,0 +1,74 @@
diff --git a/_ruamel_yaml.pxd b/_ruamel_yaml.pxd
index d8dc3c6bdaa27055..9e63ba7e4be3e4af 100644
--- a/_ruamel_yaml.pxd
+++ b/_ruamel_yaml.pxd
@@ -1,16 +1,16 @@
cdef extern from "_ruamel_yaml.h":
- void malloc(int l)
- void memcpy(char *d, char *s, int l)
- int strlen(char *s)
+ void malloc(size_t l)
+ void memcpy(void *d, const void *s, size_t l)
+ size_t strlen(const char *s)
int PyString_CheckExact(object o)
int PyUnicode_CheckExact(object o)
char *PyString_AS_STRING(object o)
- int PyString_GET_SIZE(object o)
- object PyString_FromStringAndSize(char *v, int l)
- object PyUnicode_FromString(char *u)
- object PyUnicode_DecodeUTF8(char *u, int s, char *e)
+ Py_ssize_t PyString_GET_SIZE(object o)
+ object PyString_FromStringAndSize(char *v, Py_ssize_t l)
+ object PyUnicode_FromString(const char *u)
+ object PyUnicode_DecodeUTF8(const char *u, size_t s, const char *e)
object PyUnicode_AsUTF8String(object o)
int PY_MAJOR_VERSION
@@ -85,11 +85,11 @@ cdef extern from "_ruamel_yaml.h":
YAML_MAPPING_START_EVENT
YAML_MAPPING_END_EVENT
- ctypedef int yaml_read_handler_t(void *data, char *buffer,
- int size, int *size_read) except 0
+ ctypedef int yaml_read_handler_t(void *data, unsigned char *buffer,
+ size_t size, size_t *size_read) except 0
- ctypedef int yaml_write_handler_t(void *data, char *buffer,
- int size) except 0
+ ctypedef int yaml_write_handler_t(void *data, unsigned char *buffer,
+ size_t size) except 0
ctypedef struct yaml_mark_t:
int index
diff --git a/_ruamel_yaml.pyx b/_ruamel_yaml.pyx
index 4fd50e207b8d5100..20a796a30662c890 100644
--- a/_ruamel_yaml.pyx
+++ b/_ruamel_yaml.pyx
@@ -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, unsigned char *buffer, size_t size, size_t *read) except 0:
cdef CParser parser
parser = <CParser>data
if parser.stream_cache is None:
@@ -1514,13 +1514,13 @@ 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, unsigned char *buffer, size_t size) except 0:
cdef CEmitter emitter
emitter = <CEmitter>data
if emitter.dump_unicode == 0:
- value = PyString_FromStringAndSize(buffer, size)
+ value = PyString_FromStringAndSize(<char *>buffer, size)
else:
- value = PyUnicode_DecodeUTF8(buffer, size, 'strict')
+ value = PyUnicode_DecodeUTF8(<char *>buffer, size, 'strict')
emitter.stream.write(value)
return 1

@ -1,71 +1,158 @@
%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: 7%{?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
Patch1: 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.}
%description %{_description}
%package -n python3-%{pname}
%package -n python3-ruamel-yaml-clib
Summary: %{summary}
BuildRequires: python3-devel
BuildRequires: python3-setuptools
BuildRequires: python3-Cython
BuildRequires: %{py3_dist Cython}
Requires: python3-setuptools
# 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 -p1 -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
* Tue Nov 26 2024 MSVSphere Packaging Team <packager@msvsphere-os.ru> - 0.2.7-7
- Rebuilt for MSVSphere 10
* Mon Jun 24 2024 Troy Dawson <tdawson@redhat.com> - 0.2.7-7
- Bump release for June 2024 mass rebuild
* Thu Feb 01 2024 Florian Weimer <fweimer@redhat.com> - 0.2.7-6
- Update fix-typecasts-s390x.patch for GCC 14 compatibility (#2042422)
* Fri Jan 26 2024 Fedora Release Engineering <releng@fedoraproject.org> - 0.2.7-5
- Rebuilt for https://fedoraproject.org/wiki/Fedora_40_Mass_Rebuild
* Mon Jan 22 2024 Fedora Release Engineering <releng@fedoraproject.org> - 0.2.7-4
- Rebuilt for https://fedoraproject.org/wiki/Fedora_40_Mass_Rebuild
* Fri Jul 21 2023 Fedora Release Engineering <releng@fedoraproject.org> - 0.2.7-3
- Rebuilt for https://fedoraproject.org/wiki/Fedora_39_Mass_Rebuild
* Wed Jun 14 2023 Python Maint <python-maint@redhat.com> - 0.2.7-2
- Rebuilt for Python 3.12
* 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
* 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
* 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 Apr 16 2021 Mohan Boddu <mboddu@redhat.com> - 0.1.2-7
- Rebuilt for RHEL 9 BETA on Apr 15th 2021. Related: rhbz#1947937
* 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

Loading…
Cancel
Save