From 26b6c3301124d153cda957a92f4ca930d8b983fb Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C5=A0t=C4=9Bp=C3=A1n=20=C5=A0igut?= Date: Thu, 11 Apr 2024 12:38:58 +0200 Subject: [PATCH 01/12] Import CI tests from RHEL MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit This is from RHEL distgit tests/PyYAML, directory Sanity/Smoke. The original commit hash: fd668cd6d20ca9c46d9bfa5ccf34f3a925317b25 Only necessary files were kept. Co-Authored-By: Lukas Zachar Co-Authored-By: Miro HronĨok --- .fmf/version | 1 + plan.fmf | 4 ++ tests/smoke/main.fmf | 5 +++ tests/smoke/pyyaml_dump.py | 3 ++ tests/smoke/pyyaml_load.py | 13 ++++++ tests/smoke/pyyaml_object.py | 24 ++++++++++ tests/smoke/pyyaml_parse.py | 9 ++++ tests/smoke/runtest.sh | 86 ++++++++++++++++++++++++++++++++++++ 8 files changed, 145 insertions(+) create mode 100644 .fmf/version create mode 100644 plan.fmf create mode 100644 tests/smoke/main.fmf create mode 100644 tests/smoke/pyyaml_dump.py create mode 100644 tests/smoke/pyyaml_load.py create mode 100644 tests/smoke/pyyaml_object.py create mode 100644 tests/smoke/pyyaml_parse.py create mode 100755 tests/smoke/runtest.sh diff --git a/.fmf/version b/.fmf/version new file mode 100644 index 0000000..d00491f --- /dev/null +++ b/.fmf/version @@ -0,0 +1 @@ +1 diff --git a/plan.fmf b/plan.fmf new file mode 100644 index 0000000..e6427de --- /dev/null +++ b/plan.fmf @@ -0,0 +1,4 @@ +discover: + how: fmf +execute: + how: tmt diff --git a/tests/smoke/main.fmf b/tests/smoke/main.fmf new file mode 100644 index 0000000..7d9c513 --- /dev/null +++ b/tests/smoke/main.fmf @@ -0,0 +1,5 @@ +test: ./runtest.sh +framework: beakerlib +require: + - python3-pyyaml +duration: 5m diff --git a/tests/smoke/pyyaml_dump.py b/tests/smoke/pyyaml_dump.py new file mode 100644 index 0000000..a6f4a6d --- /dev/null +++ b/tests/smoke/pyyaml_dump.py @@ -0,0 +1,3 @@ +#!/usr/bin/env python +import yaml +print(yaml.dump({'name': 'Silenthand Olleander', 'race': 'Human', 'traits': ['ONE_HAND', 'ONE_EYE']})) diff --git a/tests/smoke/pyyaml_load.py b/tests/smoke/pyyaml_load.py new file mode 100644 index 0000000..6bf48f2 --- /dev/null +++ b/tests/smoke/pyyaml_load.py @@ -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) diff --git a/tests/smoke/pyyaml_object.py b/tests/smoke/pyyaml_object.py new file mode 100644 index 0000000..b689c05 --- /dev/null +++ b/tests/smoke/pyyaml_object.py @@ -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)) diff --git a/tests/smoke/pyyaml_parse.py b/tests/smoke/pyyaml_parse.py new file mode 100644 index 0000000..3850b78 --- /dev/null +++ b/tests/smoke/pyyaml_parse.py @@ -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))) diff --git a/tests/smoke/runtest.sh b/tests/smoke/runtest.sh new file mode 100755 index 0000000..cef0e09 --- /dev/null +++ b/tests/smoke/runtest.sh @@ -0,0 +1,86 @@ +#!/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 +# +# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +# +# 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 + +PACKAGES=${PACKAGES:-"python3 python3-pyyaml"} +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)" + + +rlJournalStart + rlPhaseStartSetup + rlAssertRpm --all + set -o pipefail + rlRun "TmpDir=\$(mktemp -d)" 0 "Creating tmp directory" + + # 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]))')" + rlRun "cp py* $TmpDir" + rlRun "pushd $TmpDir" + + rlPhaseEnd + + rlPhaseStartTest "Running pyyaml_load.py" + rlRun "$PYTHON pyyaml_load.py | tee dump.log" 0 + rlAssertGrep "$PATTERN1" "dump.log" + rlPhaseEnd + + rlPhaseStartTest "Running pyyaml_dump.py" + rlRun "$PYTHON pyyaml_dump.py | tee dump.log" 0 + rlAssertGrep "$PATTERN3" "dump.log" + rlPhaseEnd + + rlPhaseStartTest "Running pyyaml_parse.py" + rlRun "$PYTHON pyyaml_parse.py | tee dump.log" 0 + rlAssertGrep "$PATTERN4" "dump.log" + rlPhaseEnd + + rlPhaseStartTest "Running pyyaml_object.py" + rlRun "$PYTHON pyyaml_object.py | tee dump.log" 0 + rlAssertGrep "$PATTERN5" "dump.log" + rlPhaseEnd + + rlPhaseStartCleanup + rlRun "popd" + rlRun "rm -r $TmpDir" 0 "Removing tmp directory" + rlPhaseEnd + +rlJournalPrintText +rlJournalEnd From b487804eb8c881857d55932d76a87bb9accf9ecc Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Luk=C3=A1=C5=A1=20Zachar?= Date: Thu, 11 Apr 2024 15:51:18 +0200 Subject: [PATCH 02/12] CI: Modernize runtest.sh --- tests/smoke/runtest.sh | 30 +++++++++--------------------- 1 file changed, 9 insertions(+), 21 deletions(-) diff --git a/tests/smoke/runtest.sh b/tests/smoke/runtest.sh index cef0e09..72451ed 100755 --- a/tests/smoke/runtest.sh +++ b/tests/smoke/runtest.sh @@ -28,7 +28,6 @@ # Include Beaker environment . /usr/share/beakerlib/beakerlib.sh || exit 1 -PACKAGES=${PACKAGES:-"python3 python3-pyyaml"} PYTHON=${PYTHON:-"python3"} PATTERN1="{'name': 'foo'} @@ -41,45 +40,34 @@ PATTERN4="a: 1 b: {c: 3, d: 4}" PATTERN5="Hero(name='Welthyr Syxgon', hp=1200, sp=0)" +set -o pipefail rlJournalStart rlPhaseStartSetup - rlAssertRpm --all - set -o pipefail - rlRun "TmpDir=\$(mktemp -d)" 0 "Creating tmp directory" - # 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]))')" - rlRun "cp py* $TmpDir" - rlRun "pushd $TmpDir" - rlPhaseEnd rlPhaseStartTest "Running pyyaml_load.py" - rlRun "$PYTHON pyyaml_load.py | tee dump.log" 0 - rlAssertGrep "$PATTERN1" "dump.log" + rlRun -s "$PYTHON pyyaml_load.py" + rlAssertGrep "$PATTERN1" "$rlRun_LOG" rlPhaseEnd rlPhaseStartTest "Running pyyaml_dump.py" - rlRun "$PYTHON pyyaml_dump.py | tee dump.log" 0 - rlAssertGrep "$PATTERN3" "dump.log" + rlRun -s "$PYTHON pyyaml_dump.py" + rlAssertGrep "$PATTERN3" "$rlRun_LOG" rlPhaseEnd rlPhaseStartTest "Running pyyaml_parse.py" - rlRun "$PYTHON pyyaml_parse.py | tee dump.log" 0 - rlAssertGrep "$PATTERN4" "dump.log" + rlRun -s "$PYTHON pyyaml_parse.py" + rlAssertGrep "$PATTERN4" "$rlRun_LOG" rlPhaseEnd rlPhaseStartTest "Running pyyaml_object.py" - rlRun "$PYTHON pyyaml_object.py | tee dump.log" 0 - rlAssertGrep "$PATTERN5" "dump.log" - rlPhaseEnd - - rlPhaseStartCleanup - rlRun "popd" - rlRun "rm -r $TmpDir" 0 "Removing tmp directory" + rlRun -s "$PYTHON pyyaml_object.py" + rlAssertGrep "$PATTERN5" "$rlRun_LOG" rlPhaseEnd rlJournalPrintText From 548d13b4068fd59005398a38e188776140885ae0 Mon Sep 17 00:00:00 2001 From: Python Maint Date: Fri, 7 Jun 2024 09:50:57 +0200 Subject: [PATCH 03/12] Rebuilt for Python 3.13 From a483094a536c70451bcb57e2715a7e44ea6e85db Mon Sep 17 00:00:00 2001 From: Fedora Release Engineering Date: Wed, 17 Jul 2024 15:09:13 +0000 Subject: [PATCH 04/12] Rebuilt for https://fedoraproject.org/wiki/Fedora_41_Mass_Rebuild From b879627e2a8f18c7f69b30a82001683943827501 Mon Sep 17 00:00:00 2001 From: Jonathan Wright Date: Tue, 31 Dec 2024 15:11:10 -0600 Subject: [PATCH 05/12] update to 6.0.2 --- .gitignore | 1 + 731.patch | 39 --------------------------------------- PyYAML.spec | 12 +++--------- sources | 2 +- 4 files changed, 5 insertions(+), 49 deletions(-) delete mode 100644 731.patch diff --git a/.gitignore b/.gitignore index eea8f48..2f06b37 100644 --- a/.gitignore +++ b/.gitignore @@ -22,3 +22,4 @@ PyYAML-3.09.tar.gz /6.0b1.tar.gz /6.0.tar.gz /6.0.1.tar.gz +/6.0.2.tar.gz diff --git a/731.patch b/731.patch deleted file mode 100644 index 4c924f4..0000000 --- a/731.patch +++ /dev/null @@ -1,39 +0,0 @@ -From 17dc5b6cd96dcfe64fd71789c771ca9b96d260e5 Mon Sep 17 00:00:00 2001 -From: "Andrew J. Hesford" -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 ---- - 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: diff --git a/PyYAML.spec b/PyYAML.spec index ead210f..3aaece1 100644 --- a/PyYAML.spec +++ b/PyYAML.spec @@ -1,5 +1,5 @@ Name: PyYAML -Version: 6.0.1 +Version: 6.0.2 Release: %autorelease Summary: YAML parser and emitter for Python @@ -8,13 +8,10 @@ License: MIT URL: https://github.com/yaml/pyyaml 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: libyaml-devel BuildRequires: python3-devel +BuildRequires: python3-pytest %global _description\ @@ -48,9 +45,6 @@ chmod a-x examples/yaml-highlight/yaml_hl.py # remove pre-generated file rm -rf ext/_yaml.c -# we have a patch for Cython 3 -sed -i 's/Cython<3.0/Cython/' pyproject.toml - %generate_buildrequires %pyproject_buildrequires @@ -66,7 +60,7 @@ sed -i 's/Cython<3.0/Cython/' pyproject.toml %check -%{py3_test_envvars} %{python3} tests/lib/test_all.py +%pytest %files -n python3-pyyaml -f %{pyproject_files} diff --git a/sources b/sources index e041a66..2695170 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -SHA512 (6.0.1.tar.gz) = 1c74a92a4ad7d47854dc7bcb2e89b3c8e0b14fa815c7dbfbc22b24480dbba6c81e971c77ee384c494a960914b95f06edf943d7431925a5ed674a0ba830d258e0 +SHA512 (6.0.2.tar.gz) = c72665131296762521d9ae4fc1c8619946f46ea16ad98b6b8e995828f2cdbd1ed61741fc2d646753f71d95a352b36562a1302f0cb646d5705652cd24b2f10b16 From bc3aaf960794d69474b85260faa0378dab44680f Mon Sep 17 00:00:00 2001 From: Fedora Release Engineering Date: Thu, 16 Jan 2025 08:55:12 +0000 Subject: [PATCH 06/12] Rebuilt for https://fedoraproject.org/wiki/Fedora_42_Mass_Rebuild From 1a65ed40195eea94f425c3b66e8e820e40322b29 Mon Sep 17 00:00:00 2001 From: Python Maint Date: Mon, 2 Jun 2025 22:53:19 +0200 Subject: [PATCH 07/12] Rebuilt for Python 3.14 From 53e5626e58a74f7a48fa4d74c6d1ae9e71785dd2 Mon Sep 17 00:00:00 2001 From: Fedora Release Engineering Date: Wed, 23 Jul 2025 15:56:40 +0000 Subject: [PATCH 08/12] Rebuilt for https://fedoraproject.org/wiki/Fedora_43_Mass_Rebuild From b879ba0bb0a239c854a3150cff42259d1a2740f5 Mon Sep 17 00:00:00 2001 From: Python Maint Date: Fri, 15 Aug 2025 15:14:28 +0200 Subject: [PATCH 09/12] Rebuilt for Python 3.14.0rc2 bytecode From 072a6204e15c201b341912abb10e6e471f0b683c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Miro=20Hron=C4=8Dok?= Date: Wed, 27 Aug 2025 13:06:26 +0200 Subject: [PATCH 10/12] Drop unneeded build dependency on python3-wheel Motivated by https://github.com/fedora-eln/eln/issues/284 --- 823.patch | 56 +++++++++++++++++++++++++++++++++++++++++++++++++++++ PyYAML.spec | 3 +++ 2 files changed, 59 insertions(+) create mode 100644 823.patch diff --git a/823.patch b/823.patch new file mode 100644 index 0000000..a0c3f29 --- /dev/null +++ b/823.patch @@ -0,0 +1,56 @@ +From 74e0c6ccc615fa38ee793899ca80f3351c10c60e Mon Sep 17 00:00:00 2001 +From: Henry Schreiner +Date: Tue, 13 Aug 2024 09:48:48 -0400 +Subject: [PATCH 1/2] fix: bdist_wheel was unmodified + +--- + setup.py | 7 ------- + 1 file changed, 7 deletions(-) + +diff --git a/setup.py b/setup.py +index 8040320fe..72018345c 100644 +--- a/setup.py ++++ b/setup.py +@@ -93,11 +93,6 @@ + if with_cython: + raise + +-try: +- from wheel.bdist_wheel import bdist_wheel +-except ImportError: +- bdist_wheel = None +- + + try: + from _pyyaml_pep517 import ActiveConfigSettings +@@ -325,8 +320,6 @@ def run(self): + 'build_ext': build_ext, + 'test': test, + } +-if bdist_wheel: +- cmdclass['bdist_wheel'] = bdist_wheel + + + if __name__ == '__main__': + +From bdc81567884bedab456f62ccfd3c1ec800c57e36 Mon Sep 17 00:00:00 2001 +From: Henry Schreiner +Date: Tue, 13 Aug 2024 09:50:19 -0400 +Subject: [PATCH 2/2] Update pyproject.toml + +--- + pyproject.toml | 1 - + 1 file changed, 1 deletion(-) + +diff --git a/pyproject.toml b/pyproject.toml +index d8e5b9695..00ce069c6 100644 +--- a/pyproject.toml ++++ b/pyproject.toml +@@ -1,7 +1,6 @@ + [build-system] + requires = [ + "setuptools", # FIXME: declare min/max setuptools versions? +- "wheel", + "Cython; python_version < '3.13'", + "Cython>=3.0; python_version >= '3.13'" + ] diff --git a/PyYAML.spec b/PyYAML.spec index 3aaece1..37b0c47 100644 --- a/PyYAML.spec +++ b/PyYAML.spec @@ -8,6 +8,9 @@ License: MIT URL: https://github.com/yaml/pyyaml Source: https://github.com/yaml/pyyaml/archive/%{version}.tar.gz +# Drop unneeded build dependency on python3-wheel +Patch: https://github.com/yaml/pyyaml/pull/823.patch + BuildRequires: gcc BuildRequires: libyaml-devel BuildRequires: python3-devel From 0437d4abe670382249ac506ff9f8a4215c384b08 Mon Sep 17 00:00:00 2001 From: Python Maint Date: Fri, 19 Sep 2025 14:51:38 +0200 Subject: [PATCH 11/12] Rebuilt for Python 3.14.0rc3 bytecode From f3965c2bb39376e90d69443ca3864fa9bb9f8e77 Mon Sep 17 00:00:00 2001 From: John Eckersberg Date: Tue, 30 Sep 2025 09:38:23 -0400 Subject: [PATCH 12/12] New upstream release 6.0.3 Resolves: rhbz#2398910 --- .gitignore | 1 + 823.patch | 56 ----------------------------------------------------- PyYAML.spec | 5 +---- sources | 2 +- 4 files changed, 3 insertions(+), 61 deletions(-) delete mode 100644 823.patch diff --git a/.gitignore b/.gitignore index 2f06b37..1966257 100644 --- a/.gitignore +++ b/.gitignore @@ -23,3 +23,4 @@ PyYAML-3.09.tar.gz /6.0.tar.gz /6.0.1.tar.gz /6.0.2.tar.gz +/6.0.3.tar.gz diff --git a/823.patch b/823.patch deleted file mode 100644 index a0c3f29..0000000 --- a/823.patch +++ /dev/null @@ -1,56 +0,0 @@ -From 74e0c6ccc615fa38ee793899ca80f3351c10c60e Mon Sep 17 00:00:00 2001 -From: Henry Schreiner -Date: Tue, 13 Aug 2024 09:48:48 -0400 -Subject: [PATCH 1/2] fix: bdist_wheel was unmodified - ---- - setup.py | 7 ------- - 1 file changed, 7 deletions(-) - -diff --git a/setup.py b/setup.py -index 8040320fe..72018345c 100644 ---- a/setup.py -+++ b/setup.py -@@ -93,11 +93,6 @@ - if with_cython: - raise - --try: -- from wheel.bdist_wheel import bdist_wheel --except ImportError: -- bdist_wheel = None -- - - try: - from _pyyaml_pep517 import ActiveConfigSettings -@@ -325,8 +320,6 @@ def run(self): - 'build_ext': build_ext, - 'test': test, - } --if bdist_wheel: -- cmdclass['bdist_wheel'] = bdist_wheel - - - if __name__ == '__main__': - -From bdc81567884bedab456f62ccfd3c1ec800c57e36 Mon Sep 17 00:00:00 2001 -From: Henry Schreiner -Date: Tue, 13 Aug 2024 09:50:19 -0400 -Subject: [PATCH 2/2] Update pyproject.toml - ---- - pyproject.toml | 1 - - 1 file changed, 1 deletion(-) - -diff --git a/pyproject.toml b/pyproject.toml -index d8e5b9695..00ce069c6 100644 ---- a/pyproject.toml -+++ b/pyproject.toml -@@ -1,7 +1,6 @@ - [build-system] - requires = [ - "setuptools", # FIXME: declare min/max setuptools versions? -- "wheel", - "Cython; python_version < '3.13'", - "Cython>=3.0; python_version >= '3.13'" - ] diff --git a/PyYAML.spec b/PyYAML.spec index 37b0c47..8cb2438 100644 --- a/PyYAML.spec +++ b/PyYAML.spec @@ -1,5 +1,5 @@ Name: PyYAML -Version: 6.0.2 +Version: 6.0.3 Release: %autorelease Summary: YAML parser and emitter for Python @@ -8,9 +8,6 @@ License: MIT URL: https://github.com/yaml/pyyaml Source: https://github.com/yaml/pyyaml/archive/%{version}.tar.gz -# Drop unneeded build dependency on python3-wheel -Patch: https://github.com/yaml/pyyaml/pull/823.patch - BuildRequires: gcc BuildRequires: libyaml-devel BuildRequires: python3-devel diff --git a/sources b/sources index 2695170..b7b81fd 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -SHA512 (6.0.2.tar.gz) = c72665131296762521d9ae4fc1c8619946f46ea16ad98b6b8e995828f2cdbd1ed61741fc2d646753f71d95a352b36562a1302f0cb646d5705652cd24b2f10b16 +SHA512 (6.0.3.tar.gz) = a0da43e32d127409ad61b11dc1d733b2e9c743977b3d72c05c81fc2ab183b40bc284452b0874dbeae1a736e1cd4a34f0df641ceefd5e9df38b3e53155fc5f633