From d457f68fb48818a21550b2f94807f4ab3a32c48d Mon Sep 17 00:00:00 2001 From: fkolwa <47077340+FKolwa@users.noreply.github.com> Date: Tue, 7 Nov 2023 15:59:45 +0100 Subject: [PATCH] Update version to 0.2.7 Resolves: RHEL-12717 --- .gitignore | 1 + LICENSE-libyaml | 19 +++++ fix-typecasts-s390x.patch | 38 +++++++++ python-ruamel-yaml-clib.spec | 146 ++++++++++++++++++++++++++--------- sources | 2 +- 5 files changed, 168 insertions(+), 38 deletions(-) create mode 100644 LICENSE-libyaml create mode 100644 fix-typecasts-s390x.patch diff --git a/.gitignore b/.gitignore index 1c4a4b3..0dd72fa 100644 --- a/.gitignore +++ b/.gitignore @@ -1,2 +1,3 @@ /ruamel.yaml.clib-0.1.2.tar.gz /ruamel-yaml-clib-code-955989c1f022b95ca1f92bf0abd761ef8aa0b940.zip +/ruamel-yaml-clib-code-fdd42e838e4d5199b0277fc21a920a744cdd5c9d.zip diff --git a/LICENSE-libyaml b/LICENSE-libyaml new file mode 100644 index 0000000..050ced2 --- /dev/null +++ b/LICENSE-libyaml @@ -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. diff --git a/fix-typecasts-s390x.patch b/fix-typecasts-s390x.patch new file mode 100644 index 0000000..0a38063 --- /dev/null +++ b/fix-typecasts-s390x.patch @@ -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 = 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 = data + if emitter.dump_unicode == 0: +diff -up ruamel-yaml-clib-code-85e484db2b7c37107e4edd2ae6fc380877bbc08e/yaml.h.s390x ruamel-yaml-clib-code-85e484db2b7c37107e4edd2ae6fc380877bbc08e/yaml.h diff --git a/python-ruamel-yaml-clib.spec b/python-ruamel-yaml-clib.spec index 190f5ed..a0ba5d2 100644 --- a/python-ruamel-yaml-clib.spec +++ b/python-ruamel-yaml-clib.spec @@ -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 - 0.1.2-8.1 -- Add CI test. - Resolves: rhbz#2009159 +* Fri Jul 21 2023 Fedora Release Engineering - 0.2.7-3 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_39_Mass_Rebuild -* Tue Aug 10 2021 Mohan Boddu - 0.1.2-8 -- Rebuilt for IMA sigs, glibc 2.34, aarch64 flags - Related: rhbz#1991688 +* Wed Jun 14 2023 Python Maint - 0.2.7-2 +- Rebuilt for Python 3.12 -* Fri Apr 16 2021 Mohan Boddu - 0.1.2-7 -- Rebuilt for RHEL 9 BETA on Apr 15th 2021. Related: rhbz#1947937 +* Wed May 03 2023 Benjamin A. Beasley - 0.2.7-1 +- Update to 0.2.7 + +* Wed May 03 2023 Benjamin A. Beasley - 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 - 0.2.6-4 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_38_Mass_Rebuild + +* Fri Jul 22 2022 Fedora Release Engineering - 0.2.6-3 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_37_Mass_Rebuild + +* Mon Jun 13 2022 Python Maint - 0.2.6-2 +- Rebuilt for Python 3.11 + +* Tue May 10 2022 Jakub Čajka - 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 - 0.1.2-9 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_36_Mass_Rebuild + +* Fri Jul 23 2021 Fedora Release Engineering - 0.1.2-8 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_35_Mass_Rebuild + +* Fri Jun 04 2021 Python Maint - 0.1.2-7 +- Rebuilt for Python 3.10 * Wed Jan 27 2021 Fedora Release Engineering - 0.1.2-6 - Rebuilt for https://fedoraproject.org/wiki/Fedora_34_Mass_Rebuild diff --git a/sources b/sources index c4c4d35..605a509 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -SHA512 (ruamel-yaml-clib-code-955989c1f022b95ca1f92bf0abd761ef8aa0b940.zip) = a2032af5c677c5ebadd8c8289bd0fa926cbb07e0a289d95893dc7f0e38d6387cf3798046727627c6574ede84828054eabf6262b4f5a490072e8902c85c6c6b06 +SHA512 (ruamel-yaml-clib-code-fdd42e838e4d5199b0277fc21a920a744cdd5c9d.zip) = 7040eacf8028e0a8ffb189f32f6f1e591223c46f5bcc16638d336ef9bd51c4a06e4e7aac63499fcccf35f63b211323ce279a21d6188ca9307e137786b34b7d66