Control: forwarded -1 https://github.com/savonet/ocaml-taglib/issues/12
Hi, On Fri, 10 Jan 2025 12:44:42 -0500 Boyuan Yang <by...@debian.org> wrote: > Source: ocaml-taglib > Version: 0.3.10-3 > Severity: important > User: debian-multime...@lists.debian.org > Usertags: taglib2.0 > > The package fails to build with taglib 2.0.2 from Debian experimental. > There are API breakages between taglib 1.x and taglib 2.x, and > some manual tweaks may be necessary. > > Related build logs: > > dh_auto_build -O--buildsystem=ocaml_dune > dune build -j 8 -p taglib > File "src/dune", line 8, characters 9-21: > 8 | (names taglib_stubs) > ^^^^^^^^^^^^ > (cd _build/default/src && /usr/bin/x86_64-linux-gnu-gcc -fPIC > -I/usr/include/taglib -g -I /usr/lib/x86_64-linux-gnu/ocaml/5.2.0 -I > /usr/lib/x86_64-linux-gnu/ocaml/5.2.0/unix -o taglib_stubs.o -c taglib_stubs.cc) > taglib_stubs.cc: In function ‘value caml_taglib_file_new(value, value)’: > taglib_stubs.cc:231:18: error: ‘create’ is not a member of ‘TagLib::FileRef’ > 231 | f = FileRef::create(filename); > | ^~~~~~ > taglib_stubs.cc: In function ‘value > caml_taglib_audioproperties_get_int(value, value)’: > taglib_stubs.cc:502:23: warning: ‘virtual int > TagLib::AudioProperties::length() const’ is deprecated > [-Wdeprecated-declarations] > 502 | tmp = prop->length(); > | ~~~~~~~~~~~~^~ > In file included from /usr/include/taglib/fileref.h:33, > from taglib_stubs.cc:45: > /usr/include/taglib/audioproperties.h:82:17: note: declared here > 82 | virtual int length() const; > | ^~~~~~ > taglib_stubs.cc: In function ‘value caml_taglib_id3v2_parse_tag(value, > value)’: > taglib_stubs.cc:571:11: error: ‘uint’ is not a member of ‘TagLib’; did you > mean ‘uint’? > 571 | TagLib::uint size = ID3v2::Header::size(); > | ^~~~ > In file included from /usr/include/stdlib.h:514, > from /usr/include/c++/14/cstdlib:79, > from /usr/include/c++/14/stdlib.h:36, > from taglib_stubs.cc:43: > /usr/include/x86_64-linux-gnu/sys/types.h:150:22: note: ‘uint’ declared here > 150 | typedef unsigned int uint; > | ^~~~ > taglib_stubs.cc:573:31: error: ‘size’ was not declared in this scope; did you > mean ‘std::size’? > 573 | tag->doParse(ByteVector(s + size, caml_string_length(h) - size)); > | ^~~~ > | std::size > In file included from /usr/include/c++/14/vector:69, > from /usr/include/taglib/tbytevector.h:30, > from /usr/include/taglib/tfile.h:29, > from /usr/include/taglib/fileref.h:29: > /usr/include/c++/14/bits/range_access.h:272:5: note: ‘std::size’ declared here > 272 | size(const _Tp (&)[_Nm]) noexcept > | ^~~~ > dh_auto_build: error: dune build -j 8 -p taglib returned exit code 1 I tried to look into the porting issue, but unfortunately I do not understand the OCaml C/C++ binding's variable lifecycle around File *f. This is especially problematic since upstream is turning to RAII fasion and cancelled the interface of obtaining a raw File * pointer with file type guessing support. In the meanwhile, ocaml-taglib upstream has no activity on this issue in the past 6 months, see https://github.com/savonet/ocaml-taglib/issues/12 . Any help would be grateful. Otherwise I would like to see this package fall out of Testing before Trixie freeze to unblock the taglib-2.0 transition. Thanks, Boyuan Yang
signature.asc
Description: This is a digitally signed message part