commit:     87a88d8b829733826fda808a9b7fb843bcf5eb55
Author:     Quentin Retornaz <gentoo <AT> retornaz <DOT> com>
AuthorDate: Wed May  8 18:34:56 2024 +0000
Commit:     Sam James <sam <AT> gentoo <DOT> org>
CommitDate: Wed May  8 21:33:25 2024 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=87a88d8b

media-sound/whipper: update RDEPEND="dev-python/ruamel-yaml"

Closes: https://bugs.gentoo.org/930466

Signed-off-by: Quentin Retornaz <gentoo <AT> retornaz.com>
Closes: https://github.com/gentoo/gentoo/pull/36607
Signed-off-by: Sam James <sam <AT> gentoo.org>

 .../whipper/files/whipper-0.10.0-ruamel-yaml.patch | 109 +++++++++++++++++++++
 media-sound/whipper/whipper-0.10.0-r2.ebuild       |  56 +++++++++++
 2 files changed, 165 insertions(+)

diff --git a/media-sound/whipper/files/whipper-0.10.0-ruamel-yaml.patch 
b/media-sound/whipper/files/whipper-0.10.0-ruamel-yaml.patch
new file mode 100644
index 000000000000..206547e4b3e9
--- /dev/null
+++ b/media-sound/whipper/files/whipper-0.10.0-ruamel-yaml.patch
@@ -0,0 +1,109 @@
+From e0942417a1c267781a8b676789730457dcb2e6fa Mon Sep 17 00:00:00 2001
+From: Martin Weinelt <h...@darmstadt.ccc.de>
+Date: Sun, 20 Jun 2021 15:18:37 +0200
+Subject: [PATCH] Use custom YAML subclass to be compatible with
+ ruamel_yaml>=0.17
+
+Signed-off-by: Martin Weinelt <h...@darmstadt.ccc.de>
+---
+ whipper/common/yaml.py             | 18 ++++++++++++++++++
+ whipper/result/logger.py           | 11 ++++++-----
+ whipper/test/test_result_logger.py | 14 ++++++--------
+ 3 files changed, 30 insertions(+), 13 deletions(-)
+ create mode 100644 whipper/common/yaml.py
+
+diff --git a/whipper/common/yaml.py b/whipper/common/yaml.py
+new file mode 100644
+index 00000000..4edb0b36
+--- /dev/null
++++ b/whipper/common/yaml.py
+@@ -0,0 +1,18 @@
++from ruamel.yaml import YAML as ruamel_YAML
++from ruamel.yaml.compat import StringIO
++
++# 
https://yaml.readthedocs.io/en/latest/example.html#output-of-dump-as-a-string
++class YAML(ruamel_YAML):
++    def __init__(self, *args, **kwargs):
++        super().__init__()
++        self.width = 4000
++        self.default_flow_style = False
++
++    def dump(self, data, stream=None, **kw):
++        inefficient = False
++        if stream is None:
++            inefficient = True
++            stream = StringIO()
++        ruamel_YAML.dump(self, data, stream, **kw)
++        if inefficient:
++            return stream.getvalue()
+diff --git a/whipper/result/logger.py b/whipper/result/logger.py
+index b7043adc..f4471a00 100644
+--- a/whipper/result/logger.py
++++ b/whipper/result/logger.py
+@@ -1,12 +1,12 @@
+ import time
+ import hashlib
+ import re
+-import ruamel.yaml as yaml
+ from ruamel.yaml.comments import CommentedMap as OrderedDict
+ 
+ import whipper
+ 
+ from whipper.common import common
++from whipper.common.yaml import YAML
+ from whipper.result import result
+ 
+ 
+@@ -148,11 +148,12 @@ def logRip(self, ripResult, epoch):
+         data["EOF"] = "End of status report"
+         riplog["Conclusive status report"] = data
+ 
++        yaml = YAML(
++            typ="rt",
++            pure=True
++        )
+         riplog = yaml.dump(
+-            riplog,
+-            default_flow_style=False,
+-            width=4000,
+-            Dumper=yaml.RoundTripDumper
++            riplog
+         )
+         # Add a newline after the "Log creation date" line
+         riplog = re.sub(
+diff --git a/whipper/test/test_result_logger.py 
b/whipper/test/test_result_logger.py
+index 411b61af..98c89ab5 100644
+--- a/whipper/test/test_result_logger.py
++++ b/whipper/test/test_result_logger.py
+@@ -3,8 +3,8 @@
+ import os
+ import re
+ import unittest
+-import ruamel.yaml
+ 
++from whipper.common.yaml import YAML
+ from whipper.result.result import TrackResult, RipResult
+ from whipper.result.logger import WhipperLogger
+ 
+@@ -163,16 +163,14 @@ def testLogger(self):
+             ))
+         )
+ 
+-        yaml = ruamel.yaml.YAML()
++        yaml = YAML(
++            typ='rt',
++            pure=True
++        )
+         parsedLog = yaml.load(actual)
+         self.assertEqual(
+             actual,
+-            ruamel.yaml.dump(
+-                parsedLog,
+-                default_flow_style=False,
+-                width=4000,
+-                Dumper=ruamel.yaml.RoundTripDumper
+-            )
++            yaml.dump(parsedLog)
+         )
+         log_body = "\n".join(actualLines[:-1]).encode()
+         self.assertEqual(

diff --git a/media-sound/whipper/whipper-0.10.0-r2.ebuild 
b/media-sound/whipper/whipper-0.10.0-r2.ebuild
new file mode 100644
index 000000000000..4458574acf2f
--- /dev/null
+++ b/media-sound/whipper/whipper-0.10.0-r2.ebuild
@@ -0,0 +1,56 @@
+# Copyright 1999-2024 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=7
+
+DISTUTILS_USE_PEP517="setuptools"
+PYTHON_COMPAT=( python3_{10..12} )
+
+inherit distutils-r1
+
+DESCRIPTION="A Python CD-DA ripper preferring accuracy over speed (forked from 
morituri)"
+HOMEPAGE="https://github.com/whipper-team/whipper";
+SRC_URI="https://github.com/whipper-team/${PN}/archive/v${PV}.tar.gz -> 
${P}.tar.gz"
+
+LICENSE="GPL-3+"
+SLOT="0"
+KEYWORDS="~amd64 ~x86"
+
+DEPEND="
+       media-libs/libsndfile:=
+"
+RDEPEND="
+       ${DEPEND}
+       app-cdr/cdrdao
+       >=dev-libs/libcdio-paranoia-0.94_p2
+       dev-python/musicbrainzngs[${PYTHON_USEDEP}]
+       >=dev-python/pycdio-2.1.0[${PYTHON_USEDEP}]
+       dev-python/pygobject:3[${PYTHON_USEDEP}]
+       dev-python/discid[${PYTHON_USEDEP}]
+       dev-python/ruamel-yaml[${PYTHON_USEDEP}]
+       dev-python/setuptools[${PYTHON_USEDEP}]
+       media-libs/mutagen[${PYTHON_USEDEP}]
+       media-sound/sox[flac]
+"
+BDEPEND="
+       dev-python/setuptools-scm[${PYTHON_USEDEP}]
+       test? (
+               dev-python/twisted[${PYTHON_USEDEP}]
+       )
+"
+
+distutils_enable_tests unittest
+
+PATCHES=(
+       "${FILESDIR}/${PN}-0.7.0-cdparanoia-name-fix.patch"
+       "${FILESDIR}/${PN}-0.10.0-ruamel-yaml.patch"
+)
+
+python_prepare_all() {
+       # accurip test totally depends on network access
+       rm "${PN}"/test/test_common_accurip.py || die
+
+       export SETUPTOOLS_SCM_PRETEND_VERSION=${PV}
+
+       distutils-r1_python_prepare_all
+}

Reply via email to