summaryrefslogtreecommitdiff
path: root/dev-python
diff options
context:
space:
mode:
authorLiguros - Gitlab CI/CD [develop] <gitlab@liguros.net>2024-12-28 06:48:44 +0000
committerLiguros - Gitlab CI/CD [develop] <gitlab@liguros.net>2024-12-28 06:48:44 +0000
commit6755ceb5710085dde2c6858873dde9fb3e73cbee (patch)
tree7e2e2e3c2256b241c072a0a926b682ac45f772b1 /dev-python
parent5a42dba63cb4192c31a4fa0ec58d1378cf0bbd5c (diff)
downloadbaldeagleos-repo-6755ceb5710085dde2c6858873dde9fb3e73cbee.tar.gz
baldeagleos-repo-6755ceb5710085dde2c6858873dde9fb3e73cbee.tar.xz
baldeagleos-repo-6755ceb5710085dde2c6858873dde9fb3e73cbee.zip
Adding metadata
Diffstat (limited to 'dev-python')
-rw-r--r--dev-python/clang/Manifest1
-rw-r--r--dev-python/clang/clang-20.0.0_pre20241227.ebuild53
-rw-r--r--dev-python/langdetect/Manifest2
-rw-r--r--dev-python/langdetect/files/langdetect-1.0.9-explicit-config.patch13
-rw-r--r--dev-python/langdetect/langdetect-1.0.9.ebuild4
-rw-r--r--dev-python/langdetect/metadata.xml10
-rw-r--r--dev-python/lit/Manifest1
-rw-r--r--dev-python/lit/lit-20.0.0_pre20241227.ebuild45
-rw-r--r--dev-python/tagpy/files/tagpy-2022.1-fix-build-taglib2.patch235
-rw-r--r--dev-python/tagpy/files/tagpy-2022.1-py3_13.patch13
-rw-r--r--dev-python/tagpy/tagpy-2022.1-r1.ebuild39
11 files changed, 396 insertions, 20 deletions
diff --git a/dev-python/clang/Manifest b/dev-python/clang/Manifest
index d3298cd16243..9d341938dab4 100644
--- a/dev-python/clang/Manifest
+++ b/dev-python/clang/Manifest
@@ -15,3 +15,4 @@ DIST llvm-project-19.1.6.src.tar.xz.sig 438 BLAKE2B 1791e98252ab78a9a762ef601ff9
DIST llvm-project-32f7f0010bca99ee4bd917f57272733fb2bf3bd9.tar.gz 223983502 BLAKE2B fd3e6b0b795abc42568ef98fa774d927029c18838a5d0f34eaa66c37976444a63f2fc5d883f3bf3a98533f51e387936f1c659230f31c757d26153425696a16cd SHA512 65a345ad5b77c627008f759947e5e9f28a62c8992d7146113e0446e5849feaf9088c15c8b22ca0824af5b927d6a417f5326258b489fb8ccea78ec9e0e0fe8fba
DIST llvm-project-49a5ad8e5714fd404210279303acc97b495d66d0.tar.gz 224456065 BLAKE2B 0077b9d37c479ac6190cc4b897cc35d6f1f3e6a772cd0620bcb1006afc19377e9968e38fb9d9adffe316e85290c9045deecbf9bf62b440c55968634b442edb31 SHA512 45d779eb27c230f656fda47c85127381cab8c8f7f75d77411c6960269f8aad5fa3c99c024a98ab8a349da1c88ad9d892cc82f91a6f344b791b281449031ae49a
DIST llvm-project-665d79f2e967a5eee6fff93685e45f50cf24cab2.tar.gz 224186302 BLAKE2B 6d4a02b6cfaf53324161c43ed02024f0fea0e7de25a9150cc0168602d7dff3f618026fa8318aa6e03904a9424afa1f12c5eb33bfdfa82e72210f34e5829a7804 SHA512 7482e176b1e2389b0dd0e67271cdb0489e9db0595874408156a034b40d336ecd960c63b89c237ca22eee3650880b0f08a97de14f8a17c918245915d422e568c9
+DIST llvm-project-ccfe0de0e1e37ed369c9bf89dd0188ba0afb2e9a.tar.gz 224396427 BLAKE2B 6e13c65d2ba83fdaf2db20a58b878106568406f07f9c2ceb47e4d2572fb041211384ed67c43801764060101ec4a1b04c18bf4097f37512d2751aa5860c1a8dc3 SHA512 ef4512b735568aaa627a7f4e9bac3fc4722db7a2b8bd1610faaf066856be9474fb297fd75b3c0dcc76f60ab35c3110fd329faad3e8d9b75e93844d56f41c03d1
diff --git a/dev-python/clang/clang-20.0.0_pre20241227.ebuild b/dev-python/clang/clang-20.0.0_pre20241227.ebuild
new file mode 100644
index 000000000000..023b77279789
--- /dev/null
+++ b/dev-python/clang/clang-20.0.0_pre20241227.ebuild
@@ -0,0 +1,53 @@
+# Copyright 1999-2024 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+PYTHON_COMPAT=( python3_{9,10,11,12,13} )
+inherit llvm.org python-r1
+
+DESCRIPTION="Python bindings for llvm-core/clang"
+HOMEPAGE="https://llvm.org/"
+
+LICENSE="Apache-2.0-with-LLVM-exceptions UoI-NCSA"
+SLOT="0"
+IUSE="test"
+RESTRICT="!test? ( test )"
+REQUIRED_USE="${PYTHON_REQUIRED_USE}"
+
+# The module is opening libclang.so directly, and doing some blasphemy
+# on top of it.
+DEPEND="
+ >=llvm-core/clang-${PV}:*
+ !llvm-core/llvm:0[clang(-),python(-)]
+ !llvm-core/clang:0[python(-)]
+"
+RDEPEND="
+ ${DEPEND}
+ ${PYTHON_DEPS}
+"
+BDEPEND="
+ ${PYTHON_DEPS}
+ test? (
+ llvm-core/clang:${LLVM_MAJOR}
+ )
+"
+
+LLVM_COMPONENTS=( clang/bindings/python )
+llvm.org_set_globals
+
+python_test() {
+ # tests rely on results from a specific clang version, so override
+ # the search path
+ local -x CLANG_LIBRARY_PATH=${BROOT}/usr/lib/llvm/${LLVM_MAJOR}/$(get_libdir)
+ local -x CLANG_NO_DEFAULT_CONFIG=1
+ "${EPYTHON}" -m unittest discover -v || die "Tests fail with ${EPYTHON}"
+}
+
+src_test() {
+ python_foreach_impl python_test
+}
+
+src_install() {
+ python_foreach_impl python_domodule clang
+}
diff --git a/dev-python/langdetect/Manifest b/dev-python/langdetect/Manifest
index a11d7c268c91..37a64204a00a 100644
--- a/dev-python/langdetect/Manifest
+++ b/dev-python/langdetect/Manifest
@@ -1 +1,3 @@
DIST langdetect-1.0.9.tar.gz 981474 BLAKE2B ea8a9c3f16a2987c080742473bff4f2c1503f53fb3c2b40b0b1d6212bb6133ea22dce7864ffcfb8968c3a46b157d45cb3e2cf6f84bdbed0266cc716a853b032c SHA512 7558d674c47b080c79e43a00a25d2c7f77188cf60bea2cecb3bebb803d75e1aa42b43c74bd26ea1b541f4cb927421908882cbec01a91f0913984217e71ccc8db
+EBUILD langdetect-1.0.9.ebuild 494 BLAKE2B 9b3521c5721afa49a58e0c35267f7d82bb56bd7e1d6d3152be0d36cd220180a526cb20b90b1113fbf0fff4a512137570f0b3bcf864498b7b7cc00403cb61ca27 SHA512 16d311400bf84a5f04e15f3da4b68b2810e4b005009f4d03dc8a487176dfc294403c976c412c83dcfa8084a49ef7b7d5389b43fb2ba446ce107ce4595e3558c6
+MISC metadata.xml 457 BLAKE2B 630128a3e982b6d60cc7b9f74c79fcb5ee47a71a02c73a50af9da8cedb6fad8e20a7f74b881e5b25c6483b92c9edbd56552cd38b2d9cbfa8b3eb4530facea969 SHA512 674f4f5cd809c6c77bc14e0f5687fa972bef14bdfa0b3343c5d66b7163eef1906eb87d060c8288732f825de71dce291ad0b841a5f2f0dd230f957b5687e45d45
diff --git a/dev-python/langdetect/files/langdetect-1.0.9-explicit-config.patch b/dev-python/langdetect/files/langdetect-1.0.9-explicit-config.patch
deleted file mode 100644
index 637368d2f237..000000000000
--- a/dev-python/langdetect/files/langdetect-1.0.9-explicit-config.patch
+++ /dev/null
@@ -1,13 +0,0 @@
-Fix "Package 'langdetect.profiles' is absent from the `packages` configuration."
-
---- a/setup.py
-+++ b/setup.py
-@@ -18,7 +18,7 @@ setup(
- author_email='michal.danilak@gmail.com',
- url='https://github.com/Mimino666/langdetect',
- keywords='language detection library',
-- packages=['langdetect', 'langdetect.utils', 'langdetect.tests'],
-+ packages=['langdetect', 'langdetect.utils', 'langdetect.tests', 'langdetect.profiles'],
- include_package_data=True,
- install_requires=['six'],
- license='MIT',
diff --git a/dev-python/langdetect/langdetect-1.0.9.ebuild b/dev-python/langdetect/langdetect-1.0.9.ebuild
index eb2586280d80..56733bbffc48 100644
--- a/dev-python/langdetect/langdetect-1.0.9.ebuild
+++ b/dev-python/langdetect/langdetect-1.0.9.ebuild
@@ -1,4 +1,4 @@
-# Copyright 2022-2024 Gentoo Authors
+# Copyright 2022 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=8
@@ -19,6 +19,4 @@ KEYWORDS="~amd64"
RDEPEND="dev-python/six[${PYTHON_USEDEP}]"
-PATCHES=( "${FILESDIR}/${P}-explicit-config.patch" )
-
distutils_enable_tests unittest
diff --git a/dev-python/langdetect/metadata.xml b/dev-python/langdetect/metadata.xml
index c0f74ac187e2..020e07f2a3dd 100644
--- a/dev-python/langdetect/metadata.xml
+++ b/dev-python/langdetect/metadata.xml
@@ -2,9 +2,11 @@
<!DOCTYPE pkgmetadata SYSTEM "https://liguros.gitlab.io/dtd/metadata.dtd">
<pkgmetadata>
<maintainer type="person">
- <email>pastalian46@gmail.com</email>
- <name>Takuya Wakazono</name>
+ <email>marcin.deranek@slonko.net</email>
+ <name>Marcin Deranek</name>
</maintainer>
-
- <origin>gentoo-guru-overlay</origin>
+ <upstream>
+ <bugs-to>https://github.com/Mimino666/langdetect/issues</bugs-to>
+ </upstream>
+ <origin>slonko-overlay</origin>
</pkgmetadata> \ No newline at end of file
diff --git a/dev-python/lit/Manifest b/dev-python/lit/Manifest
index d3298cd16243..9d341938dab4 100644
--- a/dev-python/lit/Manifest
+++ b/dev-python/lit/Manifest
@@ -15,3 +15,4 @@ DIST llvm-project-19.1.6.src.tar.xz.sig 438 BLAKE2B 1791e98252ab78a9a762ef601ff9
DIST llvm-project-32f7f0010bca99ee4bd917f57272733fb2bf3bd9.tar.gz 223983502 BLAKE2B fd3e6b0b795abc42568ef98fa774d927029c18838a5d0f34eaa66c37976444a63f2fc5d883f3bf3a98533f51e387936f1c659230f31c757d26153425696a16cd SHA512 65a345ad5b77c627008f759947e5e9f28a62c8992d7146113e0446e5849feaf9088c15c8b22ca0824af5b927d6a417f5326258b489fb8ccea78ec9e0e0fe8fba
DIST llvm-project-49a5ad8e5714fd404210279303acc97b495d66d0.tar.gz 224456065 BLAKE2B 0077b9d37c479ac6190cc4b897cc35d6f1f3e6a772cd0620bcb1006afc19377e9968e38fb9d9adffe316e85290c9045deecbf9bf62b440c55968634b442edb31 SHA512 45d779eb27c230f656fda47c85127381cab8c8f7f75d77411c6960269f8aad5fa3c99c024a98ab8a349da1c88ad9d892cc82f91a6f344b791b281449031ae49a
DIST llvm-project-665d79f2e967a5eee6fff93685e45f50cf24cab2.tar.gz 224186302 BLAKE2B 6d4a02b6cfaf53324161c43ed02024f0fea0e7de25a9150cc0168602d7dff3f618026fa8318aa6e03904a9424afa1f12c5eb33bfdfa82e72210f34e5829a7804 SHA512 7482e176b1e2389b0dd0e67271cdb0489e9db0595874408156a034b40d336ecd960c63b89c237ca22eee3650880b0f08a97de14f8a17c918245915d422e568c9
+DIST llvm-project-ccfe0de0e1e37ed369c9bf89dd0188ba0afb2e9a.tar.gz 224396427 BLAKE2B 6e13c65d2ba83fdaf2db20a58b878106568406f07f9c2ceb47e4d2572fb041211384ed67c43801764060101ec4a1b04c18bf4097f37512d2751aa5860c1a8dc3 SHA512 ef4512b735568aaa627a7f4e9bac3fc4722db7a2b8bd1610faaf066856be9474fb297fd75b3c0dcc76f60ab35c3110fd329faad3e8d9b75e93844d56f41c03d1
diff --git a/dev-python/lit/lit-20.0.0_pre20241227.ebuild b/dev-python/lit/lit-20.0.0_pre20241227.ebuild
new file mode 100644
index 000000000000..277d267df2b8
--- /dev/null
+++ b/dev-python/lit/lit-20.0.0_pre20241227.ebuild
@@ -0,0 +1,45 @@
+# Copyright 1999-2024 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+DISTUTILS_USE_PEP517=setuptools
+PYTHON_COMPAT=( python3_{9,10,11,12,13} )
+
+inherit distutils-r1 llvm.org
+
+DESCRIPTION="A stand-alone install of the LLVM suite testing tool"
+HOMEPAGE="https://llvm.org/"
+
+LICENSE="Apache-2.0-with-LLVM-exceptions UoI-NCSA"
+SLOT="0"
+IUSE="test"
+RESTRICT="!test? ( test )"
+
+# Tests require 'FileCheck' and 'not' utilities (from llvm)
+BDEPEND="
+ test? (
+ dev-python/psutil[${PYTHON_USEDEP}]
+ llvm-core/llvm
+ )
+"
+
+LLVM_COMPONENTS=( llvm/utils/lit )
+llvm.org_set_globals
+
+# TODO: move the manpage generation here (from llvm-core/llvm)
+
+src_prepare() {
+ # flaky test
+ # https://github.com/llvm/llvm-project/issues/72022
+ rm tests/progress-bar.py || die
+
+ cd "${WORKDIR}" || die
+ distutils-r1_src_prepare
+}
+
+python_test() {
+ local -x LIT_PRESERVES_TMP=1
+ local litflags=$(get_lit_flags)
+ ./lit.py ${litflags//;/ } tests || die
+}
diff --git a/dev-python/tagpy/files/tagpy-2022.1-fix-build-taglib2.patch b/dev-python/tagpy/files/tagpy-2022.1-fix-build-taglib2.patch
new file mode 100644
index 000000000000..05512cbbc7f2
--- /dev/null
+++ b/dev-python/tagpy/files/tagpy-2022.1-fix-build-taglib2.patch
@@ -0,0 +1,235 @@
+https://github.com/palfrey/tagpy/pull/16.patch
+diff --git a/src/wrapper/basics.cpp b/src/wrapper/basics.cpp
+index b84f672..d58f7e0 100644
+--- a/src/wrapper/basics.cpp
++++ b/src/wrapper/basics.cpp
+@@ -80,15 +80,15 @@ namespace
+ String album() const { return this->get_override("album")(); }
+ String comment() const { return this->get_override("comment")(); }
+ String genre() const { return this->get_override("genre")(); }
+- TagLib::uint year() const { return this->get_override("year")(); }
+- TagLib::uint track() const { return this->get_override("track")(); }
++ uint year() const { return this->get_override("year")(); }
++ uint track() const { return this->get_override("track")(); }
+ void setTitle(const String &v) const { this->get_override("setTitle")(v); }
+ void setArtist(const String &v) const { this->get_override("setArtist")(v); }
+ void setAlbum(const String &v) const { this->get_override("setAlbum")(v); }
+ void setComment(const String &v) const { this->get_override("setComment")(v); }
+ void setGenre(const String &v) const { this->get_override("setGenre")(v); }
+- void setYear(TagLib::uint i) const { this->get_override("setYear")(i); }
+- void setTrack(TagLib::uint i) const { this->get_override("setTrack")(i); }
++ void setYear(uint i) const { this->get_override("setYear")(i); }
++ void setTrack(uint i) const { this->get_override("setTrack")(i); }
+ };
+
+
+@@ -169,7 +169,7 @@ BOOST_PYTHON_MODULE(_tagpy)
+ {
+ typedef AudioProperties cl;
+ class_<AudioPropertiesWrap, boost::noncopyable>("AudioProperties", no_init)
+- .add_property("length", &cl::length)
++ .add_property("length", &cl::lengthInSeconds)
+ .add_property("bitrate", &cl::bitrate)
+ .add_property("sampleRate", &cl::sampleRate)
+ .add_property("channels", &cl::channels)
+diff --git a/src/wrapper/common.hpp b/src/wrapper/common.hpp
+index 2fbdf74..febaa16 100644
+--- a/src/wrapper/common.hpp
++++ b/src/wrapper/common.hpp
+@@ -129,7 +129,7 @@ namespace {
+ // List
+ // -------------------------------------------------------------
+ template<typename Value>
+- Value &List_getitem(List<Value> &l, TagLib::uint i)
++ Value &List_getitem(List<Value> &l, uint i)
+ {
+ if (i >= l.size())
+ {
+@@ -140,7 +140,7 @@ namespace {
+ }
+
+ template<typename Value>
+- void List_setitem(List<Value> &l, TagLib::uint i, Value v)
++ void List_setitem(List<Value> &l, uint i, Value v)
+ {
+ if (i >= l.size())
+ {
+@@ -177,7 +177,7 @@ namespace {
+ // PointerList
+ // -------------------------------------------------------------
+ template<typename Value>
+- Value *&PointerList_getitem(List<Value *> &l, TagLib::uint i)
++ Value *&PointerList_getitem(List<Value *> &l, uint i)
+ {
+ if (i >= l.size())
+ {
+@@ -188,7 +188,7 @@ namespace {
+ }
+
+ template<typename Value>
+- void PointerList_setitem(List<Value *> &l, TagLib::uint i, auto_ptr<Value> v)
++ void PointerList_setitem(List<Value *> &l, uint i, auto_ptr<Value> v)
+ {
+ if (i >= l.size())
+ {
+diff --git a/src/wrapper/id3.cpp b/src/wrapper/id3.cpp
+index cc0eb53..74d5923 100644
+--- a/src/wrapper/id3.cpp
++++ b/src/wrapper/id3.cpp
+@@ -58,7 +58,7 @@ namespace
+
+ void id3v2_Tag_addFrame(ID3v2::Tag &t, ID3v2::Frame *f)
+ {
+- ID3v2::Frame *f_clone = ID3v2::FrameFactory::instance()->createFrame(f->render());
++ ID3v2::Frame *f_clone = ID3v2::FrameFactory::instance()->createFrame(f->render(), t.header());
+ t.addFrame(f_clone);
+ }
+
+@@ -71,7 +71,7 @@ namespace
+ #define MF_OL(MF, MIN, MAX) \
+ BOOST_PYTHON_MEMBER_FUNCTION_OVERLOADS(MF##_overloads, MF, MIN, MAX);
+
+- MF_OL(createFrame, 1, 2);
++ MF_OL(createFrame, 2, 2);
+ MF_OL(volumeAdjustmentIndex, 0, 1);
+ MF_OL(volumeAdjustment, 0, 1);
+ MF_OL(peakVolume, 0, 1);
+@@ -121,15 +121,12 @@ void exposeID3()
+ {
+ typedef ID3v2::FrameFactory cl;
+
+- ID3v2::Frame *(ID3v2::FrameFactory::*cf1)(const ByteVector &, bool) const
+- = &cl::createFrame;
+- ID3v2::Frame *(ID3v2::FrameFactory::*cf2)(const ByteVector &, TagLib::uint) const
++ ID3v2::Frame *(ID3v2::FrameFactory::*cf)(const ByteVector &, const ID3v2::Header *) const
+ = &cl::createFrame;
+
+ class_<ID3v2::FrameFactory, boost::noncopyable>
+ ("id3v2_FrameFactory", no_init)
+- .def("createFrame", cf1, return_value_policy<manage_new_object>())
+- .def("createFrame", cf2, createFrame_overloads()[return_value_policy<manage_new_object>()])
++ .def("createFrame", cf, createFrame_overloads()[return_value_policy<manage_new_object>()])
+ .def("instance", &cl::instance,
+ return_value_policy<reference_existing_object>())
+ .staticmethod("instance")
+@@ -150,10 +147,10 @@ void exposeID3()
+ .DEF_SIMPLE_METHOD(render)
+
+ .def("headerSize",
+- (TagLib::uint (*)())
++ (uint (*)())
+ &ID3v2::Frame::headerSize)
+ .def("headerSize",
+- (TagLib::uint (*)(TagLib::uint))
++ (uint (*)(uint))
+ &ID3v2::Frame::headerSize)
+ // MISSING: textDelimiter
+ ;
+@@ -210,7 +207,6 @@ void exposeID3()
+ class_<cl, boost::noncopyable, bases<Tag> >("id3v2_Tag")
+ .def("header", &ID3v2::Tag::header, return_internal_reference<>())
+ .def("extendedHeader", &ID3v2::Tag::extendedHeader, return_internal_reference<>())
+- .def("footer", &ID3v2::Tag::footer, return_internal_reference<>())
+
+ .def("frameListMap", &ID3v2::Tag::frameListMap, return_internal_reference<>())
+ .def("frameList", fl1, return_internal_reference<>())
+@@ -224,7 +220,7 @@ void exposeID3()
+ // Commented out following comment at:
+ // https://github.com/inducer/tagpy/commit/fb6d9a95f8ed1b0f347a82569a13e60a75c7e6d6
+ // .DEF_OVERLOADED_METHOD(render, ByteVector (cl::*)() const)
+- .DEF_OVERLOADED_METHOD(render, ByteVector (cl::*)(int) const)
++ .DEF_OVERLOADED_METHOD(render, ByteVector (cl::*)(ID3v2::Version) const)
+ #else
+ .def("render", (ByteVector (cl::*)() const) &cl::render)
+ #endif
+@@ -323,7 +319,6 @@ void exposeID3()
+ ("id3v2_RelativeVolumeFrame", init<const ByteVector &>())
+ // MISSING: Empty constructor, gives symbol errors
+ .def("channels", id3v2_rvf_channels)
+- .DEF_SIMPLE_METHOD(setChannelType)
+ .DEF_OVERLOADED_METHOD(volumeAdjustmentIndex, short (cl::*)(cl::ChannelType) const)
+ .DEF_OVERLOADED_METHOD(setVolumeAdjustmentIndex, void (cl::*)(short, cl::ChannelType))
+ .DEF_OVERLOADED_METHOD(volumeAdjustment, float (cl::*)(cl::ChannelType) const)
+@@ -424,7 +419,7 @@ void exposeID3()
+ .def(init<const char *, ID3v2::FrameFactory *, optional<bool, AudioProperties::ReadStyle> >())
+ .def("save",
+ #if (TAGPY_TAGLIB_HEX_VERSION >= 0x10800)
+- (bool (MPEG::File::*)(int, bool, int))
++ (bool (MPEG::File::*)(int, TagLib::File::StripTags, TagLib::ID3v2::Version, TagLib::File::DuplicateTags))
+ #else
+ (bool (MPEG::File::*)(int, bool))
+ #endif
+@@ -444,7 +439,6 @@ void exposeID3()
+ .def("strip",
+ (bool (cl::*)(int)) &cl::strip,
+ strip_overloads())
+- .DEF_SIMPLE_METHOD(setID3v2FrameFactory)
+ .DEF_SIMPLE_METHOD(firstFrameOffset)
+ .DEF_SIMPLE_METHOD(nextFrameOffset)
+ .DEF_SIMPLE_METHOD(previousFrameOffset)
+diff --git a/src/wrapper/rest.cpp b/src/wrapper/rest.cpp
+index 0a94bc8..dd843bf 100644
+--- a/src/wrapper/rest.cpp
++++ b/src/wrapper/rest.cpp
+@@ -51,7 +51,7 @@ namespace
+ // Ogg
+ // -------------------------------------------------------------
+ MF_OL(addField, 2, 3);
+- MF_OL(removeField, 1, 2);
++ MF_OL(removeFields, 1, 2);
+ MF_OL(render, 0, 1);
+
+ // -------------------------------------------------------------
+@@ -62,7 +62,6 @@ namespace
+ // -------------------------------------------------------------
+ // MPC
+ // -------------------------------------------------------------
+- MF_OL(remove, 0, 1);
+ //MF_OL(ID3v1Tag, 0, 1);
+ MF_OL(APETag, 0, 1);
+
+@@ -90,8 +89,8 @@ void exposeRest()
+ return_internal_reference<>())
+ .DEF_SIMPLE_METHOD(vendorID)
+ .DEF_OVERLOADED_METHOD(addField, void (cl::*)(const String &, const String &, bool))
+- .DEF_OVERLOADED_METHOD(removeField, void (cl::*)(const String &, const String &))
+- .DEF_OVERLOADED_METHOD(removeField, void (cl::*)(const String &, const String &))
++ .DEF_OVERLOADED_METHOD(removeFields, void (cl::*)(const String &, const String &))
++ .DEF_OVERLOADED_METHOD(removeFields, void (cl::*)(const String &, const String &))
+ .DEF_OVERLOADED_METHOD(render, ByteVector (cl::*)(bool) const)
+ ;
+ }
+@@ -159,10 +158,10 @@ void exposeRest()
+ .def(init<const String &, const StringList &>())
+ .def(init<const cl &>())
+ .DEF_SIMPLE_METHOD(key)
+- .DEF_SIMPLE_METHOD(value)
++ .DEF_SIMPLE_METHOD(binaryData)
+ .DEF_SIMPLE_METHOD(size)
+ .DEF_SIMPLE_METHOD(toString)
+- .DEF_SIMPLE_METHOD(toStringList)
++ .DEF_SIMPLE_METHOD(values)
+ .DEF_SIMPLE_METHOD(render)
+ .DEF_SIMPLE_METHOD(parse)
+ .DEF_SIMPLE_METHOD(setReadOnly)
+@@ -207,9 +206,6 @@ void exposeRest()
+ (Ogg::XiphComment *(FLAC::File::*)(bool))
+ &FLAC::File::xiphComment,
+ xiphComment_overloads()[return_internal_reference<>()])
+- .DEF_SIMPLE_METHOD(setID3v2FrameFactory)
+- .DEF_SIMPLE_METHOD(streamInfoData)
+- .DEF_SIMPLE_METHOD(streamLength)
+ ;
+ }
+
+@@ -238,8 +234,8 @@ void exposeRest()
+ APETag_overloads()[return_internal_reference<>()])
+ .def("remove",
+ (void (cl::*)(int))
+- &cl::remove,
+- remove_overloads())
++ &cl::strip,
++ strip_overloads())
+ ;
+ }
+
diff --git a/dev-python/tagpy/files/tagpy-2022.1-py3_13.patch b/dev-python/tagpy/files/tagpy-2022.1-py3_13.patch
new file mode 100644
index 000000000000..f415260daac5
--- /dev/null
+++ b/dev-python/tagpy/files/tagpy-2022.1-py3_13.patch
@@ -0,0 +1,13 @@
+diff --git a/src/wrapper/basics.cpp b/src/wrapper/basics.cpp
+index b84f672..ba037dc 100644
+--- a/src/wrapper/basics.cpp
++++ b/src/wrapper/basics.cpp
+@@ -51,7 +51,7 @@ namespace
+ {
+ static PyObject *convert(ByteVector const& s)
+ {
+- return PyUnicode_FromStringAndSize(s.data(), s.size());
++ return PyBytes_FromStringAndSize(s.data(), s.size());
+ }
+ };
+
diff --git a/dev-python/tagpy/tagpy-2022.1-r1.ebuild b/dev-python/tagpy/tagpy-2022.1-r1.ebuild
new file mode 100644
index 000000000000..d23f9e3076e4
--- /dev/null
+++ b/dev-python/tagpy/tagpy-2022.1-r1.ebuild
@@ -0,0 +1,39 @@
+# Copyright 1999-2024 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+DISTUTILS_EXT=1
+DISTUTILS_USE_PEP517=setuptools
+PYTHON_COMPAT=( python3_{9,10,11,12,13} )
+
+inherit distutils-r1
+
+DESCRIPTION="Python Bindings for TagLib"
+HOMEPAGE="
+ https://github.com/palfrey/tagpy/
+ https://pypi.org/project/tagpy/
+"
+SRC_URI="
+ https://github.com/palfrey/tagpy/archive/v${PV}.tar.gz
+ -> ${P}.gh.tar.gz
+"
+
+LICENSE="BSD"
+SLOT="0"
+KEYWORDS="~amd64 ~ppc ~ppc64 ~sparc ~x86"
+
+DEPEND="
+ dev-libs/boost:=[python,${PYTHON_USEDEP}]
+ media-libs/taglib:=
+"
+RDEPEND="
+ ${DEPEND}
+"
+
+PATCHES=(
+ "${FILESDIR}"/${P}-py3_13.patch
+ "${FILESDIR}"/${P}-fix-build-taglib2.patch
+)
+
+distutils_enable_tests pytest