mirror of
https://github.com/gentoo-mirror/gentoo.git
synced 2026-08-24 18:58:08 -07:00
dev-python/tagpy: fix build with taglib-2
https://github.com/palfrey/tagpy/pull/16.patch enable py3.13 Add media-libs/taglib:= slot op, ABI break imminent Signed-off-by: Nicolas PARLANT <nicolas.parlant@parhuet.fr> Signed-off-by: Andreas Sturmlechner <asturm@gentoo.org>
This commit is contained in:
committed by
Andreas Sturmlechner
parent
fd10d6bfe7
commit
feba513420
235
dev-python/tagpy/files/tagpy-2022.1-fix-build-taglib2.patch
Normal file
235
dev-python/tagpy/files/tagpy-2022.1-fix-build-taglib2.patch
Normal file
@@ -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())
|
||||
;
|
||||
}
|
||||
|
||||
13
dev-python/tagpy/files/tagpy-2022.1-py3_13.patch
Normal file
13
dev-python/tagpy/files/tagpy-2022.1-py3_13.patch
Normal file
@@ -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());
|
||||
}
|
||||
};
|
||||
|
||||
39
dev-python/tagpy/tagpy-2022.1-r1.ebuild
Normal file
39
dev-python/tagpy/tagpy-2022.1-r1.ebuild
Normal file
@@ -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_{10..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
|
||||
Reference in New Issue
Block a user