Skip to content

Taglib 2.0 compatibility? #127

Description

@q234rty

Taglib has released their 2.0 version removing a few deprecated funtions that taglib-ruby seems to use.

Building taglib-ruby with taglib 2.0 fails with

Build logs

current directory: /build/ruby-taglib-ruby/pkg/ruby-taglib-ruby/usr/lib/ruby/gems/3.0.0/gems/taglib-ruby-1.1.3/ext/taglib_base
/usr/bin/ruby -I /usr/lib/ruby/3.0.0 extconf.rb
checking for -lstdc++... yes
checking for -ltag... yes
creating Makefile

current directory: /build/ruby-taglib-ruby/pkg/ruby-taglib-ruby/usr/lib/ruby/gems/3.0.0/gems/taglib-ruby-1.1.3/ext/taglib_base
make DESTDIR\= sitearchdir\=./.gem.20240127-2508-yotc3p sitelibdir\=./.gem.20240127-2508-yotc3p clean

current directory: /build/ruby-taglib-ruby/pkg/ruby-taglib-ruby/usr/lib/ruby/gems/3.0.0/gems/taglib-ruby-1.1.3/ext/taglib_base
make DESTDIR\= sitearchdir\=./.gem.20240127-2508-yotc3p sitelibdir\=./.gem.20240127-2508-yotc3p
compiling taglib_base_wrap.cxx
taglib_base_wrap.cxx: In function ‘VALUE taglib_bytevector_to_ruby_string(const TagLib::ByteVector&)’:
taglib_base_wrap.cxx:1964:18: error: ‘const class TagLib::ByteVector’ has no member named ‘isNull’
 1964 |   if (byteVector.isNull()) {
      |                  ^~~~~~
taglib_base_wrap.cxx: In function ‘TagLib::ByteVector ruby_string_to_taglib_bytevector(VALUE)’:
taglib_base_wrap.cxx:1973:32: error: ‘null’ is not a member of ‘TagLib::ByteVector’
 1973 |     return TagLib::ByteVector::null;
      |                                ^~~~
taglib_base_wrap.cxx: In function ‘VALUE taglib_string_to_ruby_string(const TagLib::String&)’:
taglib_base_wrap.cxx:1980:14: error: ‘const class TagLib::String’ has no member named ‘isNull’
 1980 |   if (string.isNull()) {
      |              ^~~~~~
taglib_base_wrap.cxx: In function ‘TagLib::String ruby_string_to_taglib_string(VALUE)’:
taglib_base_wrap.cxx:1991:28: error: ‘null’ is not a member of ‘TagLib::String’
 1991 |     return TagLib::String::null;
      |                            ^~~~
taglib_base_wrap.cxx: In function ‘VALUE _wrap_File_readableq___(int, VALUE*, VALUE)’:
taglib_base_wrap.cxx:4194:32: error: ‘isReadable’ is not a member of ‘TagLib::File’
 4194 |   result = (bool)TagLib::File::isReadable((char const *)arg1);
      |                                ^~~~~~~~~~
taglib_base_wrap.cxx: In function ‘VALUE _wrap_File_writableq___(int, VALUE*, VALUE)’:
taglib_base_wrap.cxx:4221:32: error: ‘isWritable’ is not a member of ‘TagLib::File’
 4221 |   result = (bool)TagLib::File::isWritable((char const *)arg1);
      |                                ^~~~~~~~~~
taglib_base_wrap.cxx: In function ‘VALUE _wrap_FileRef_create__SWIG_0(int, VALUE*, VALUE)’:
taglib_base_wrap.cxx:4738:45: error: ‘create’ is not a member of ‘TagLib::FileRef’
 4738 |   result = (TagLib::File *)TagLib::FileRef::create(SWIG_STD_MOVE(arg1),arg2,arg3);
      |                                             ^~~~~~
taglib_base_wrap.cxx: In function ‘VALUE _wrap_FileRef_create__SWIG_1(int, VALUE*, VALUE)’:
taglib_base_wrap.cxx:4769:45: error: ‘create’ is not a member of ‘TagLib::FileRef’
 4769 |   result = (TagLib::File *)TagLib::FileRef::create(SWIG_STD_MOVE(arg1),arg2);
      |                                             ^~~~~~
taglib_base_wrap.cxx: In function ‘VALUE _wrap_FileRef_create__SWIG_2(int, VALUE*, VALUE)’:
taglib_base_wrap.cxx:4792:45: error: ‘create’ is not a member of ‘TagLib::FileRef’
 4792 |   result = (TagLib::File *)TagLib::FileRef::create(SWIG_STD_MOVE(arg1));
      |                                             ^~~~~~
taglib_base_wrap.cxx: In function ‘VALUE taglib_bytevector_to_ruby_string(const TagLib::ByteVector&)’:
taglib_base_wrap.cxx:1969:1: warning: control reaches end of non-void function [-Wreturn-type]
 1969 | }
      | ^
taglib_base_wrap.cxx: In function ‘VALUE taglib_string_to_ruby_string(const TagLib::String&)’:
taglib_base_wrap.cxx:1987:1: warning: control reaches end of non-void function [-Wreturn-type]
 1987 | }
      | ^
make: *** [Makefile:230: taglib_base_wrap.o] Error 1

make failed, exit code 2

Edit: I didn't regenerate swig headers when building, I guess only the usages of ByteVector::isNull() and ByteVector::null and their String counterparts are real issues :)

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions