Package: src:tagpy
Version: 2025.1-2
User: [email protected]
Usertags: python3.15
Tags: patch, ftbfs, forky, sid
Severity: important
Hi!
While rebuilding the python related packages against the Python 3.15rc2
version we found that tagpy fails to build from source [1].
The error is: error: no matching function for call to
‘boost::python::class_<TagLib::Ogg::File, boost::python::bases<TagLib::File>,
boost::noncopyable_::noncopyable>::def(const char [7], <unresolved overloaded function
type>)’
In order to fix it, I had to:
- Add a patch to set the signature to use, as there was a change int
he API with version 2.3.2, which added a new signature to
Ogg::File::packet.
- Add upstream patch da43ef17: Add 3.14, drop 3.9 [2].
I've applied these fixes in the sandbox [3] to verify that it builds
successfully, please consider applying them to support the upcoming 3.15
version.
Setting the severity to important for now. Once Python 3.15 is released,
it will be added to python3-defaults and this bug will become release
critical.
Happy hacking,
[1]: https://debusine.debian.net/debian/r-python-python3.15/artifact/4671454/
[2]:
https://github.com/palfrey/tagpy/commit/da43ef1785023f44a0ca38c0b8d544506c33352c
[3]: https://debusine.debian.net/debian/r-python-python3.15/
--
"Can you imagine what I would do if I could do all I can?" -- Sun Tzu
Saludos /\/\ /\ >< `/
Description: Fix build against taglib 2.3.2's new Ogg::File::packet() overload
taglib 2.3.2 added Ogg::File::packet(unsigned int, unsigned int), making
&cl::packet ambiguous. Cast to the single-argument overload explicitly.
Author: Maximiliano Curia <[email protected]>
Forwarded: not-needed
Last-Update: 2026-09-10
Index: tagpy/src/wrapper/rest.cpp
===================================================================
--- tagpy.orig/src/wrapper/rest.cpp
+++ tagpy/src/wrapper/rest.cpp
@@ -137,7 +137,7 @@ void exposeRest()
typedef Ogg::File cl;
class_<cl, bases<File>, boost::noncopyable>
("ogg_File", no_init)
- .DEF_SIMPLE_METHOD(packet)
+ .def("packet", (ByteVector (cl::*)(unsigned int)) &cl::packet)
.DEF_SIMPLE_METHOD(setPacket)
// MISSING: page headers
;
Description: Add 3.14, drop 3.9
setuptools >= 84 rejects string values for include_dirs/library_dirs/
extra_compile_args, use empty lists instead. Cherry-picked (setup.py hunk
only) from upstream commit da43ef1785023f44a0ca38c0b8d544506c33352c, not
in a released version.
Author: Tom Parker-Shemilt <[email protected]>
Origin: upstream, https://github.com/palfrey/tagpy/commit/da43ef1785023f44a0ca38c0b8d544506c33352c
Last-Update: 2026-09-10
Index: tagpy/setup.py
===================================================================
--- tagpy.orig/setup.py
+++ tagpy/setup.py
@@ -29,8 +29,8 @@ from setuptools import setup, Extension
def main():
- INCLUDE_DIRS = "" # conf["TAGLIB_INC_DIR"] + conf["BOOST_INC_DIR"]
- LIBRARY_DIRS = "" # conf["TAGLIB_LIB_DIR"] + conf["BOOST_LIB_DIR"]
+ INCLUDE_DIRS = [] # conf["TAGLIB_INC_DIR"] + conf["BOOST_INC_DIR"]
+ LIBRARY_DIRS = [] # conf["TAGLIB_LIB_DIR"] + conf["BOOST_LIB_DIR"]
boost_name = None
@@ -93,7 +93,7 @@ def main():
include_dirs=INCLUDE_DIRS,
library_dirs=LIBRARY_DIRS,
libraries=LIBRARIES,
- extra_compile_args="", # conf["CXXFLAGS"],
+ extra_compile_args=[], # conf["CXXFLAGS"],
),
],
)