Compare commits
15 commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
f3965c2bb3 | ||
|
|
0437d4abe6 | ||
|
|
072a6204e1 | ||
|
|
b879ba0bb0 | ||
|
|
53e5626e58 | ||
|
|
1a65ed4019 | ||
|
|
bc3aaf9607 | ||
|
|
b879627e2a | ||
|
|
a483094a53 | ||
|
|
548d13b406 | ||
|
|
b487804eb8 | ||
|
|
26b6c33011 | ||
|
|
a32a024c18 | ||
|
|
dddf41e8cf | ||
|
|
bcfb1cb86e |
12 changed files with 140 additions and 49 deletions
1
.fmf/version
Normal file
1
.fmf/version
Normal file
|
|
@ -0,0 +1 @@
|
||||||
|
1
|
||||||
2
.gitignore
vendored
2
.gitignore
vendored
|
|
@ -22,3 +22,5 @@ PyYAML-3.09.tar.gz
|
||||||
/6.0b1.tar.gz
|
/6.0b1.tar.gz
|
||||||
/6.0.tar.gz
|
/6.0.tar.gz
|
||||||
/6.0.1.tar.gz
|
/6.0.1.tar.gz
|
||||||
|
/6.0.2.tar.gz
|
||||||
|
/6.0.3.tar.gz
|
||||||
|
|
|
||||||
39
731.patch
39
731.patch
|
|
@ -1,39 +0,0 @@
|
||||||
From 17dc5b6cd96dcfe64fd71789c771ca9b96d260e5 Mon Sep 17 00:00:00 2001
|
|
||||||
From: "Andrew J. Hesford" <ajh@sideband.org>
|
|
||||||
Date: Fri, 21 Jul 2023 09:50:00 -0400
|
|
||||||
Subject: [PATCH] Fix builds with Cython 3
|
|
||||||
|
|
||||||
This is a *de minimis* fix for building with Cython 3. Recent Cython<3
|
|
||||||
releases provided `Cython.Distutils.build_ext` as an alias to
|
|
||||||
`Cython.Distutils.old_build_ext.old_build_ext`; Cython 3 drops this
|
|
||||||
alias and instead uses a wholly new `Cython.Distutils.build_ext` that
|
|
||||||
does not provide the `cython_sources` function used in `setup.py`.
|
|
||||||
|
|
||||||
Explicitly importing `old_build_ext` preserves the existing behavior for
|
|
||||||
recent Cython<3 and uses the correct behavior for Cython 3. Should the
|
|
||||||
import fail (*e.g.*, because the version of Cython available predates
|
|
||||||
the availability of `old_build_ext`), the import falls back to just
|
|
||||||
`Cython.Distutils.build_ext`.
|
|
||||||
|
|
||||||
Signed-off-by: Andrew J. Hesford <ajh@sideband.org>
|
|
||||||
---
|
|
||||||
setup.py | 6 +++++-
|
|
||||||
1 file changed, 5 insertions(+), 1 deletion(-)
|
|
||||||
|
|
||||||
diff --git a/setup.py b/setup.py
|
|
||||||
index 944e7fa2..462b1e95 100644
|
|
||||||
--- a/setup.py
|
|
||||||
+++ b/setup.py
|
|
||||||
@@ -82,7 +82,11 @@
|
|
||||||
with_cython = True
|
|
||||||
try:
|
|
||||||
from Cython.Distutils.extension import Extension as _Extension
|
|
||||||
- from Cython.Distutils import build_ext as _build_ext
|
|
||||||
+ try:
|
|
||||||
+ from Cython.Distutils.old_build_ext import old_build_ext as _build_ext
|
|
||||||
+ except ImportError:
|
|
||||||
+ from Cython.Distutils import build_ext as _build_ext
|
|
||||||
+
|
|
||||||
with_cython = True
|
|
||||||
except ImportError:
|
|
||||||
if with_cython:
|
|
||||||
13
PyYAML.spec
13
PyYAML.spec
|
|
@ -1,19 +1,17 @@
|
||||||
Name: PyYAML
|
Name: PyYAML
|
||||||
Version: 6.0.1
|
Version: 6.0.3
|
||||||
Release: %autorelease
|
Release: %autorelease
|
||||||
Summary: YAML parser and emitter for Python
|
Summary: YAML parser and emitter for Python
|
||||||
|
|
||||||
|
# SPDX
|
||||||
License: MIT
|
License: MIT
|
||||||
URL: https://github.com/yaml/pyyaml
|
URL: https://github.com/yaml/pyyaml
|
||||||
Source: https://github.com/yaml/pyyaml/archive/%{version}.tar.gz
|
Source: https://github.com/yaml/pyyaml/archive/%{version}.tar.gz
|
||||||
|
|
||||||
# Fix build with Cython 3
|
|
||||||
# Proposed upstream but refused (upstream does not want Cython 3)
|
|
||||||
Patch: https://github.com/yaml/pyyaml/pull/731.patch
|
|
||||||
|
|
||||||
BuildRequires: gcc
|
BuildRequires: gcc
|
||||||
BuildRequires: libyaml-devel
|
BuildRequires: libyaml-devel
|
||||||
BuildRequires: python3-devel
|
BuildRequires: python3-devel
|
||||||
|
BuildRequires: python3-pytest
|
||||||
|
|
||||||
|
|
||||||
%global _description\
|
%global _description\
|
||||||
|
|
@ -47,9 +45,6 @@ chmod a-x examples/yaml-highlight/yaml_hl.py
|
||||||
# remove pre-generated file
|
# remove pre-generated file
|
||||||
rm -rf ext/_yaml.c
|
rm -rf ext/_yaml.c
|
||||||
|
|
||||||
# we have a patch for Cython 3
|
|
||||||
sed -i 's/Cython<3.0/Cython/' pyproject.toml
|
|
||||||
|
|
||||||
|
|
||||||
%generate_buildrequires
|
%generate_buildrequires
|
||||||
%pyproject_buildrequires
|
%pyproject_buildrequires
|
||||||
|
|
@ -65,7 +60,7 @@ sed -i 's/Cython<3.0/Cython/' pyproject.toml
|
||||||
|
|
||||||
|
|
||||||
%check
|
%check
|
||||||
%{py3_test_envvars} %{python3} tests/lib/test_all.py
|
%pytest
|
||||||
|
|
||||||
|
|
||||||
%files -n python3-pyyaml -f %{pyproject_files}
|
%files -n python3-pyyaml -f %{pyproject_files}
|
||||||
|
|
|
||||||
4
plan.fmf
Normal file
4
plan.fmf
Normal file
|
|
@ -0,0 +1,4 @@
|
||||||
|
discover:
|
||||||
|
how: fmf
|
||||||
|
execute:
|
||||||
|
how: tmt
|
||||||
2
sources
2
sources
|
|
@ -1 +1 @@
|
||||||
SHA512 (6.0.1.tar.gz) = 1c74a92a4ad7d47854dc7bcb2e89b3c8e0b14fa815c7dbfbc22b24480dbba6c81e971c77ee384c494a960914b95f06edf943d7431925a5ed674a0ba830d258e0
|
SHA512 (6.0.3.tar.gz) = a0da43e32d127409ad61b11dc1d733b2e9c743977b3d72c05c81fc2ab183b40bc284452b0874dbeae1a736e1cd4a34f0df641ceefd5e9df38b3e53155fc5f633
|
||||||
|
|
|
||||||
5
tests/smoke/main.fmf
Normal file
5
tests/smoke/main.fmf
Normal file
|
|
@ -0,0 +1,5 @@
|
||||||
|
test: ./runtest.sh
|
||||||
|
framework: beakerlib
|
||||||
|
require:
|
||||||
|
- python3-pyyaml
|
||||||
|
duration: 5m
|
||||||
3
tests/smoke/pyyaml_dump.py
Normal file
3
tests/smoke/pyyaml_dump.py
Normal file
|
|
@ -0,0 +1,3 @@
|
||||||
|
#!/usr/bin/env python
|
||||||
|
import yaml
|
||||||
|
print(yaml.dump({'name': 'Silenthand Olleander', 'race': 'Human', 'traits': ['ONE_HAND', 'ONE_EYE']}))
|
||||||
13
tests/smoke/pyyaml_load.py
Normal file
13
tests/smoke/pyyaml_load.py
Normal file
|
|
@ -0,0 +1,13 @@
|
||||||
|
#!/usr/bin/env python
|
||||||
|
import yaml
|
||||||
|
documents = """
|
||||||
|
---
|
||||||
|
name: foo
|
||||||
|
---
|
||||||
|
name: bar
|
||||||
|
---
|
||||||
|
name: foobar
|
||||||
|
"""
|
||||||
|
|
||||||
|
for data in yaml.load_all(documents, Loader=yaml.SafeLoader):
|
||||||
|
print(data)
|
||||||
24
tests/smoke/pyyaml_object.py
Normal file
24
tests/smoke/pyyaml_object.py
Normal file
|
|
@ -0,0 +1,24 @@
|
||||||
|
import yaml
|
||||||
|
class Hero:
|
||||||
|
def __init__(self, name, hp, sp):
|
||||||
|
self.name = name
|
||||||
|
self.hp = hp
|
||||||
|
self.sp = sp
|
||||||
|
def __repr__(self):
|
||||||
|
return "%s(name=%r, hp=%r, sp=%r)" % (
|
||||||
|
self.__class__.__name__, self.name, self.hp, self.sp)
|
||||||
|
|
||||||
|
STRING = """
|
||||||
|
!!python/object:__main__.Hero
|
||||||
|
name: Welthyr Syxgon
|
||||||
|
hp: 1200
|
||||||
|
sp: 0
|
||||||
|
"""
|
||||||
|
|
||||||
|
try:
|
||||||
|
yaml.load(STRING, Loader=yaml.SafeLoader)
|
||||||
|
raise RuntimeError("Didn't raise exception")
|
||||||
|
except yaml.constructor.ConstructorError:
|
||||||
|
pass
|
||||||
|
|
||||||
|
print(yaml.unsafe_load(STRING))
|
||||||
9
tests/smoke/pyyaml_parse.py
Normal file
9
tests/smoke/pyyaml_parse.py
Normal file
|
|
@ -0,0 +1,9 @@
|
||||||
|
#!/usr/bin/env python
|
||||||
|
import yaml
|
||||||
|
document = """
|
||||||
|
a: 1
|
||||||
|
b:
|
||||||
|
c: 3
|
||||||
|
d: 4
|
||||||
|
"""
|
||||||
|
print(yaml.dump(yaml.load(document, Loader=yaml.SafeLoader)))
|
||||||
74
tests/smoke/runtest.sh
Executable file
74
tests/smoke/runtest.sh
Executable file
|
|
@ -0,0 +1,74 @@
|
||||||
|
#!/bin/bash
|
||||||
|
# vim: dict+=/usr/share/beakerlib/dictionary.vim cpt=.,w,b,u,t,i,k
|
||||||
|
# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||||
|
#
|
||||||
|
# runtest.sh of /CoreOS/PyYAML/Sanity/Smoke
|
||||||
|
# Description: Smoke test for this component
|
||||||
|
# Author: Stepan Sigut <ssigut@redhat.com>
|
||||||
|
#
|
||||||
|
# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||||
|
#
|
||||||
|
# Copyright (c) 2016 Red Hat, Inc.
|
||||||
|
#
|
||||||
|
# This program is free software: you can redistribute it and/or
|
||||||
|
# modify it under the terms of the GNU General Public License as
|
||||||
|
# published by the Free Software Foundation, either version 2 of
|
||||||
|
# the License, or (at your option) any later version.
|
||||||
|
#
|
||||||
|
# This program is distributed in the hope that it will be
|
||||||
|
# useful, but WITHOUT ANY WARRANTY; without even the implied
|
||||||
|
# warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
|
||||||
|
# PURPOSE. See the GNU General Public License for more details.
|
||||||
|
#
|
||||||
|
# You should have received a copy of the GNU General Public License
|
||||||
|
# along with this program. If not, see http://www.gnu.org/licenses/.
|
||||||
|
#
|
||||||
|
# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||||
|
|
||||||
|
# Include Beaker environment
|
||||||
|
. /usr/share/beakerlib/beakerlib.sh || exit 1
|
||||||
|
|
||||||
|
PYTHON=${PYTHON:-"python3"}
|
||||||
|
|
||||||
|
PATTERN1="{'name': 'foo'}
|
||||||
|
{'name': 'bar'}
|
||||||
|
{'name': 'foobar'}"
|
||||||
|
PATTERN3="name: Silenthand Olleander
|
||||||
|
race: Human
|
||||||
|
traits: [ONE_HAND, ONE_EYE]"
|
||||||
|
PATTERN4="a: 1
|
||||||
|
b: {c: 3, d: 4}"
|
||||||
|
PATTERN5="Hero(name='Welthyr Syxgon', hp=1200, sp=0)"
|
||||||
|
|
||||||
|
set -o pipefail
|
||||||
|
|
||||||
|
rlJournalStart
|
||||||
|
rlPhaseStartSetup
|
||||||
|
# export python's MAJOR and MINOR version
|
||||||
|
rlRun "export $($PYTHON -c \
|
||||||
|
'import sys; print("MAJOR={0} MINOR={1}".format(\
|
||||||
|
sys.version_info[0],sys.version_info[1]))')"
|
||||||
|
rlPhaseEnd
|
||||||
|
|
||||||
|
rlPhaseStartTest "Running pyyaml_load.py"
|
||||||
|
rlRun -s "$PYTHON pyyaml_load.py"
|
||||||
|
rlAssertGrep "$PATTERN1" "$rlRun_LOG"
|
||||||
|
rlPhaseEnd
|
||||||
|
|
||||||
|
rlPhaseStartTest "Running pyyaml_dump.py"
|
||||||
|
rlRun -s "$PYTHON pyyaml_dump.py"
|
||||||
|
rlAssertGrep "$PATTERN3" "$rlRun_LOG"
|
||||||
|
rlPhaseEnd
|
||||||
|
|
||||||
|
rlPhaseStartTest "Running pyyaml_parse.py"
|
||||||
|
rlRun -s "$PYTHON pyyaml_parse.py"
|
||||||
|
rlAssertGrep "$PATTERN4" "$rlRun_LOG"
|
||||||
|
rlPhaseEnd
|
||||||
|
|
||||||
|
rlPhaseStartTest "Running pyyaml_object.py"
|
||||||
|
rlRun -s "$PYTHON pyyaml_object.py"
|
||||||
|
rlAssertGrep "$PATTERN5" "$rlRun_LOG"
|
||||||
|
rlPhaseEnd
|
||||||
|
|
||||||
|
rlJournalPrintText
|
||||||
|
rlJournalEnd
|
||||||
Loading…
Add table
Add a link
Reference in a new issue