clementine-player / Clementine

:tangerine: Clementine Music Player
https://www.clementine-player.org/
GNU General Public License v3.0
3.68k stars 670 forks source link

Build fails with taglib 2.0 #7313

Open haplo opened 5 months ago

haplo commented 5 months ago

Before posting

Please follow the steps below and check the boxes with [x] once you did the step.

System information

Please provide information about your system and the version of Clementine used.

Expected behaviour / actual behaviour

Clementine builds and runs normally.

Instead Clementine build fails due to taglib API changes.

Steps to reproduce the problem (only for bugs)

Arch Linux recently upgraded to taglib 2.0:

$ pacman -Q taglib
taglib 2.0-1

Clementine fails to build, even with latest master:

$ paru -S clementine-git
[... CUT FOR BREVITY, BUILD DEPENDENCIES GET INSTALLED ...]

==> Making package: clementine-git 1.4.0rc1.r901.g7b678f26e.10.g634910238-1 (Tue 30 Jan 2024 03:44:11 PM WET)
==> Retrieving sources...
==> Validating source files with sha256sums...
Clementine ... Skipped
==> Making package: clementine-git 1.4.0rc1.r901.g7b678f26e.10.g634910238-1 (Tue Jan 30 15:44:12 2024)
==> Checking runtime dependencies...
==> Checking buildtime dependencies...
==> WARNING: Using existing $srcdir/ tree
==> Starting pkgver()...
==> Starting build()...
-- The C compiler identification is GNU 13.2.1
-- The CXX compiler identification is GNU 13.2.1
-- Detecting C compiler ABI info
-- Detecting C compiler ABI info - done
-- Check for working C compiler: /usr/bin/cc - skipped
-- Detecting C compile features
-- Detecting C compile features - done
-- Detecting CXX compiler ABI info
-- Detecting CXX compiler ABI info - done
-- Check for working CXX compiler: /usr/bin/c++ - skipped
-- Detecting CXX compile features
-- Detecting CXX compile features - done
-- Found PkgConfig: /usr/bin/pkg-config (found version "2.1.0")
-- Found git: /usr/bin/git
-- Found OpenGL: /usr/lib/libOpenGL.so
-- Found Boost: /usr/lib/cmake/Boost-1.83.0/BoostConfig.cmake (found version "1.83.0")
-- Found Gettext: /usr/bin/msgmerge (found version "0.22.4")
-- Found Protobuf: /usr/lib/libprotobuf.so (found version "4.25.2")
-- Found ALSA: /usr/lib/libasound.so (found version "1.2.10")
-- Found X11: /usr/include
-- Looking for XOpenDisplay in /usr/lib/libX11.so;/usr/lib/libXext.so
-- Looking for XOpenDisplay in /usr/lib/libX11.so;/usr/lib/libXext.so - found
-- Looking for gethostbyname
-- Looking for gethostbyname - found
-- Looking for connect
-- Looking for connect - found
-- Looking for remove
-- Looking for remove - found
-- Looking for shmat
-- Looking for shmat - found
-- Looking for IceConnectionNumber in ICE
-- Looking for IceConnectionNumber in ICE - found
-- Checking for module 'libcdio'
--   Found libcdio, version 2.1.0
-- Checking for module 'libchromaprint'
--   Found libchromaprint, version 1.5.1
-- Checking for module 'gio-2.0'
--   Found gio-2.0, version 2.78.4
-- Checking for module 'glib-2.0'
--   Found glib-2.0, version 2.78.4
-- Checking for module 'gobject-2.0'
--   Found gobject-2.0, version 2.78.4
-- Checking for module 'gstreamer-1.0'
--   Found gstreamer-1.0, version 1.22.9
-- Checking for module 'gstreamer-app-1.0'
--   Found gstreamer-app-1.0, version 1.22.9
-- Checking for module 'gstreamer-audio-1.0'
--   Found gstreamer-audio-1.0, version 1.22.9
-- Checking for module 'gstreamer-base-1.0'
--   Found gstreamer-base-1.0, version 1.22.9
-- Checking for module 'gstreamer-tag-1.0'
--   Found gstreamer-tag-1.0, version 1.22.9
-- Checking for module 'gstreamer-pbutils-1.0'
--   Found gstreamer-pbutils-1.0, version 1.22.9
-- Checking for module 'libgpod-1.0>=0.7.92'
--   Found libgpod-1.0, version 0.8.3
-- Checking for module 'libmtp>=1.0'
--   Found libmtp, version 1.1.21
-- Checking for module 'libmygpo-qt5>=1.0.9'
--   Found libmygpo-qt5, version 1.1.0
-- Checking for module 'libpulse'
--   Found libpulse, version 17.0
-- Checking for module 'libxml-2.0'
--   Found libxml-2.0, version 2.12.4
-- Checking for module 'taglib'
--   Found taglib, version 2.0
-- Found ZLIB: /usr/lib/libz.so (found version "1.3.1")
-- Using system taglib library
-- Performing Test TAGLIB_HAS_OPUS
-- Performing Test TAGLIB_HAS_OPUS - Success
-- Found Threads: TRUE
-- Checking for module 'libprojectM'
--   Found libprojectM, version 3.1.12
-- Performing Test SUPPORTS_NOBOOL
-- Performing Test SUPPORTS_NOBOOL - Success
-- Looking for backtrace
-- Looking for backtrace - found
-- backtrace facility detected in default set of libraries
-- Found Backtrace: /usr/include

Building Clementine version: 1.4.0rc1-911-g634910238

The following components will be built:
ALSA integration
Box support
D-Bus support
Devices: Audio CD support
Devices: GIO device backend
Devices: MTP support
Devices: UDisks2 backend
Devices: iPod classic support
Dropbox support
Google Drive support
Last.fm support
Moodbar support
Pulse audio integration
Seafile support
Skydrive support
Translations
Visualisations
Wiimote support

The following components WILL NOT be built:
Crash reporting (disabled in CMake config)
Sparkle integration (missing macOS, Sparkle)

-- Configuring done (1.8s)
-- Generating done (0.1s)
-- Build files have been written to: /build/clementine-git/src/build
[  0%] Generating moc_smain.cpp
[  0%] Generating moc_qsql_sqlite.cpp
[  0%] Building CXX object 3rdparty/qsqlite/CMakeFiles/qsqlite.dir/qsql_sqlite.cpp.o
/build/clementine-git/src/Clementine/3rdparty/qsqlite/qsql_sqlite.cpp: In function ‘QSqlError qMakeError(sqlite3*, const QString&, QSqlError::ErrorType, int)’:
/build/clementine-git/src/Clementine/3rdparty/qsqlite/qsql_sqlite.cpp:106:37: warning: ‘QSqlError::QSqlError(const QString&, const QString&, ErrorType, int)’ is deprecated [-Wdeprecated-declarations]
106 |                      type, errorCode);
|                                     ^
In file included from /build/clementine-git/src/Clementine/3rdparty/qsqlite/qsql_sqlite.cpp:46:
/usr/include/qt/QtSql/qsqlerror.h:61:19: note: declared here
61 |     QT_DEPRECATED QSqlError(const QString &driverText, const QString &databaseText,
|                   ^~~~~~~~~
[  0%] Building CXX object 3rdparty/qsqlite/CMakeFiles/qsqlite.dir/clementinesqlcachedresult.cpp.o
[  0%] Building CXX object 3rdparty/qsqlite/CMakeFiles/qsqlite.dir/smain.cpp.o
[  0%] Building CXX object 3rdparty/qsqlite/CMakeFiles/qsqlite.dir/moc_qsql_sqlite.cpp.o
[  0%] Building CXX object 3rdparty/qsqlite/CMakeFiles/qsqlite.dir/moc_smain.cpp.o
[  1%] Linking CXX static library libqsqlite.a
[  1%] Built target qsqlite
[  1%] Generating moc_qtsinglecoreapplication.cpp
[  1%] Generating moc_qtlocalpeer.cpp
[  1%] Generating moc_qtsingleapplication.cpp
[  1%] Building CXX object 3rdparty/qtsingleapplication/CMakeFiles/qtsingleapplication.dir/qtlocalpeer.cpp.o
[  1%] Building CXX object 3rdparty/qtsingleapplication/CMakeFiles/qtsingleapplication.dir/qtsingleapplication.cpp.o
[  1%] Building CXX object 3rdparty/qtsingleapplication/CMakeFiles/qtsingleapplication.dir/qtsinglecoreapplication.cpp.o
[  1%] Building CXX object 3rdparty/qtsingleapplication/CMakeFiles/qtsingleapplication.dir/moc_qtlocalpeer.cpp.o
[  1%] Building CXX object 3rdparty/qtsingleapplication/CMakeFiles/qtsingleapplication.dir/moc_qtsingleapplication.cpp.o
[  1%] Building CXX object 3rdparty/qtsingleapplication/CMakeFiles/qtsingleapplication.dir/moc_qtsinglecoreapplication.cpp.o
[  2%] Linking CXX static library libqtsingleapplication.a
[  2%] Built target qtsingleapplication
[  2%] Generating moc_qtiocompressor.cpp
[  2%] Building CXX object 3rdparty/qtiocompressor/CMakeFiles/qtiocompressor.dir/qtiocompressor.cpp.o
[  2%] Building CXX object 3rdparty/qtiocompressor/CMakeFiles/qtiocompressor.dir/moc_qtiocompressor.cpp.o
[  2%] Linking CXX static library libqtiocompressor.a
[  2%] Built target qtiocompressor
[  2%] Generating moc_qxtglobalshortcut.cpp
[  2%] Building CXX object 3rdparty/qxt/CMakeFiles/qxt.dir/qxtglobal.cpp.o
[  2%] Building CXX object 3rdparty/qxt/CMakeFiles/qxt.dir/qxtglobalshortcut.cpp.o
/build/clementine-git/src/Clementine/3rdparty/qxt/qxtglobalshortcut.cpp: In member function ‘bool QxtGlobalShortcutPrivate::setShortcut(const QKeySequence&)’:
/build/clementine-git/src/Clementine/3rdparty/qxt/qxtglobalshortcut.cpp:73:56: warning: ‘constexpr QFlags<T>::QFlags(Zero) [with Enum = Qt::KeyboardModifier; Zero = int QFlags<Qt::KeyboardModifier>::Private::*]’ is deprecated: Use default constructor instead [-Wdeprecated-declarations]
73 |     mods = shortcut.isEmpty() ? Qt::KeyboardModifiers(0) : Qt::KeyboardModifiers(shortcut[0] & allMods);
|                                                        ^
In file included from /usr/include/qt/QtCore/qglobal.h:1307,
from /usr/include/qt/QtCore/QtGlobal:1,
from /build/clementine-git/src/Clementine/3rdparty/qxt/qxtglobal.h:35,
from /build/clementine-git/src/Clementine/3rdparty/qxt/qxtglobalshortcut.h:34,
from /build/clementine-git/src/Clementine/3rdparty/qxt/qxtglobalshortcut.cpp:1:
/usr/include/qt/QtCore/qflags.h:123:80: note: declared here
123 |     QT_DEPRECATED_X("Use default constructor instead") Q_DECL_CONSTEXPR inline QFlags(Zero) noexcept : i(0) {}
|                                                                                ^~~~~~
/build/clementine-git/src/Clementine/3rdparty/qxt/qxtglobalshortcut.cpp: In member function ‘bool QxtGlobalShortcutPrivate::unsetShortcut()’:
/build/clementine-git/src/Clementine/3rdparty/qxt/qxtglobalshortcut.cpp:96:35: warning: ‘constexpr QFlags<T>::QFlags(Zero) [with Enum = Qt::KeyboardModifier; Zero = int QFlags<Qt::KeyboardModifier>::Private::*]’ is deprecated: Use default constructor instead [-Wdeprecated-declarations]
96 |     mods = Qt::KeyboardModifiers(0);
|                                   ^
/usr/include/qt/QtCore/qflags.h:123:80: note: declared here
123 |     QT_DEPRECATED_X("Use default constructor instead") Q_DECL_CONSTEXPR inline QFlags(Zero) noexcept : i(0) {}
|                                                                                ^~~~~~
[  2%] Building CXX object 3rdparty/qxt/CMakeFiles/qxt.dir/qxtglobalshortcut_x11.cpp.o
[  2%] Building CXX object 3rdparty/qxt/CMakeFiles/qxt.dir/moc_qxtglobalshortcut.cpp.o
[  2%] Linking CXX static library libqxt.a
[  2%] Built target qxt
[  2%] Generating qrc_qprogressindicatorspinning_nonmac.cpp
[  2%] Generating moc_qbutton.cpp
[  2%] Generating moc_qprogressindicatorspinning.cpp
[  2%] Generating moc_qsearchfield.cpp
[  2%] Building CXX object 3rdparty/qocoa/CMakeFiles/Qocoa.dir/qsearchfield_nonmac.cpp.o
[  2%] Building CXX object 3rdparty/qocoa/CMakeFiles/Qocoa.dir/qbutton_nonmac.cpp.o
[  2%] Building CXX object 3rdparty/qocoa/CMakeFiles/Qocoa.dir/qprogressindicatorspinning_nonmac.cpp.o
[  2%] Building CXX object 3rdparty/qocoa/CMakeFiles/Qocoa.dir/moc_qsearchfield.cpp.o
[  2%] Building CXX object 3rdparty/qocoa/CMakeFiles/Qocoa.dir/moc_qbutton.cpp.o
[  2%] Building CXX object 3rdparty/qocoa/CMakeFiles/Qocoa.dir/moc_qprogressindicatorspinning.cpp.o
[  2%] Building CXX object 3rdparty/qocoa/CMakeFiles/Qocoa.dir/qrc_qprogressindicatorspinning_nonmac.cpp.o
[  2%] Linking CXX static library libQocoa.a
[  2%] Built target Qocoa
[  2%] Building CXX object gst/moodbar/CMakeFiles/gstmoodbar.dir/gstfastspectrum.cpp.o
[  2%] Building CXX object gst/moodbar/CMakeFiles/gstmoodbar.dir/plugin.cpp.o
[  2%] Linking CXX static library libgstmoodbar.a
[  2%] Built target gstmoodbar
[  2%] Generating core/moc_workerpool.cpp
[  2%] Generating core/moc_closure.cpp
[  2%] Generating core/moc_latch.cpp
[  3%] Generating core/moc_messagehandler.cpp
[  3%] Generating core/moc_messagereply.cpp
[  3%] Building CXX object ext/libclementine-common/CMakeFiles/libclementine-common.dir/core/closure.cpp.o
[  3%] Building CXX object ext/libclementine-common/CMakeFiles/libclementine-common.dir/core/latch.cpp.o
[  3%] Building CXX object ext/libclementine-common/CMakeFiles/libclementine-common.dir/core/logging.cpp.o
[  3%] Building CXX object ext/libclementine-common/CMakeFiles/libclementine-common.dir/core/messagehandler.cpp.o
[  3%] Building CXX object ext/libclementine-common/CMakeFiles/libclementine-common.dir/core/messagereply.cpp.o
[  3%] Building CXX object ext/libclementine-common/CMakeFiles/libclementine-common.dir/core/waitforsignal.cpp.o
[  3%] Building CXX object ext/libclementine-common/CMakeFiles/libclementine-common.dir/core/workerpool.cpp.o
[  3%] Building CXX object ext/libclementine-common/CMakeFiles/libclementine-common.dir/core/moc_closure.cpp.o
[  3%] Building CXX object ext/libclementine-common/CMakeFiles/libclementine-common.dir/core/moc_latch.cpp.o
[  3%] Building CXX object ext/libclementine-common/CMakeFiles/libclementine-common.dir/core/moc_messagehandler.cpp.o
[  3%] Building CXX object ext/libclementine-common/CMakeFiles/libclementine-common.dir/core/moc_messagereply.cpp.o
[  4%] Building CXX object ext/libclementine-common/CMakeFiles/libclementine-common.dir/core/moc_workerpool.cpp.o
[  4%] Linking CXX static library liblibclementine-common.a
[  4%] Built target libclementine-common
[  4%] Running cpp protocol buffer compiler on tagreadermessages.proto
[  4%] Generating moc_cloudstream.cpp
[  4%] Building CXX object ext/libclementine-tagreader/CMakeFiles/libclementine-tagreader.dir/tagreadermessages.pb.cc.o
[  4%] Building CXX object ext/libclementine-tagreader/CMakeFiles/libclementine-tagreader.dir/fmpsparser.cpp.o
[  4%] Building CXX object ext/libclementine-tagreader/CMakeFiles/libclementine-tagreader.dir/tagreader.cpp.o
/build/clementine-git/src/Clementine/ext/libclementine-tagreader/tagreader.cpp: In lambda function:
/build/clementine-git/src/Clementine/ext/libclementine-tagreader/tagreader.cpp:201:53: error: ‘const class TagLib::APE::Item’ has no member named ‘toStringList’; did you mean ‘toString’?
201 |       TagLib::StringList album_artists = it->second.toStringList();
|                                                     ^~~~~~~~~~~~
|                                                     toString
/build/clementine-git/src/Clementine/ext/libclementine-tagreader/tagreader.cpp:246:27: error: ‘const class TagLib::APE::Item’ has no member named ‘toStringList’; did you mean ‘toString’?
246 |       Decode(items["BPM"].toStringList().toString(", "), nullptr,
|                           ^~~~~~~~~~~~
|                           toString
/build/clementine-git/src/Clementine/ext/libclementine-tagreader/tagreader.cpp:251:33: error: ‘const class TagLib::APE::Item’ has no member named ‘toStringList’; did you mean ‘toString’?
251 |       Decode(items["PERFORMER"].toStringList().toString(", "), nullptr,
|                                 ^~~~~~~~~~~~
|                                 toString
/build/clementine-git/src/Clementine/ext/libclementine-tagreader/tagreader.cpp:256:32: error: ‘const class TagLib::APE::Item’ has no member named ‘toStringList’; did you mean ‘toString’?
256 |       Decode(items["COMPOSER"].toStringList().toString(", "), nullptr,
|                                ^~~~~~~~~~~~
|                                toString
/build/clementine-git/src/Clementine/ext/libclementine-tagreader/tagreader.cpp:261:32: error: ‘const class TagLib::APE::Item’ has no member named ‘toStringList’; did you mean ‘toString’?
261 |       Decode(items["GROUPING"].toStringList().toString(" "), nullptr,
|                                ^~~~~~~~~~~~
|                                toString
/build/clementine-git/src/Clementine/ext/libclementine-tagreader/tagreader.cpp: In member function ‘void TagReader::ReadFile(const QString&, cpb::tagreader::SongMetadata*) const’:
/build/clementine-git/src/Clementine/ext/libclementine-tagreader/tagreader.cpp:568:64: warning: ‘virtual int TagLib::AudioProperties::length() const’ is deprecated [-Wdeprecated-declarations]
568 |     song->set_length_nanosec(fileref->audioProperties()->length() *
|                              ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~
In file included from /usr/include/taglib/aiffproperties.h:30,
from /usr/include/taglib/aifffile.h:31,
from /build/clementine-git/src/Clementine/ext/libclementine-tagreader/tagreader.cpp:20:
/usr/include/taglib/audioproperties.h:82:17: note: declared here
82 |     virtual int length() const;
|                 ^~~~~~
/build/clementine-git/src/Clementine/ext/libclementine-tagreader/tagreader.cpp: In member function ‘bool TagReader::ReadCloudFile(const QUrl&, const QString&, int, const QString&, const QString&, cpb::tagreader::SongMetadata*) const’:
/build/clementine-git/src/Clementine/ext/libclementine-tagreader/tagreader.cpp:1374:70: error: invalid new-expression of abstract class type ‘CloudStream’
1374 |       new CloudStream(download_url, title, size, authorisation_header));
|                                                                      ^
In file included from /build/clementine-git/src/Clementine/ext/libclementine-tagreader/tagreader.cpp:72:
/build/clementine-git/src/Clementine/ext/libclementine-tagreader/cloudstream.h:30:7: note:   because the following virtual functions are pure within ‘CloudStream’:
30 | class CloudStream : public QObject, public TagLib::IOStream {
|       ^~~~~~~~~~~
In file included from /usr/include/taglib/tfile.h:30,
from /usr/include/taglib/rifffile.h:29,
from /usr/include/taglib/aifffile.h:29:
/usr/include/taglib/tiostream.h:117:18: note:     ‘virtual void TagLib::IOStream::insert(const TagLib::ByteVector&, TagLib::offset_t, size_t)’
117 |     virtual void insert(const ByteVector &data,
|                  ^~~~~~
/usr/include/taglib/tiostream.h:127:18: note:     ‘virtual void TagLib::IOStream::removeBlock(TagLib::offset_t, size_t)’
127 |     virtual void removeBlock(offset_t start = 0, size_t length = 0) = 0;
|                  ^~~~~~~~~~~
/build/clementine-git/src/Clementine/ext/libclementine-tagreader/tagreader.cpp:1381:71: warning: ISO C++ says that these are ambiguous, even though the worst conversion for the first is better than the worst conversion for the second:
1381 |                                      TagLib::AudioProperties::Accurate));
|                                                                       ^
In file included from /build/clementine-git/src/Clementine/ext/libclementine-tagreader/tagreader.cpp:31:
/usr/include/taglib/mpegfile.h:140:7: note: candidate 1: ‘TagLib::MPEG::File::File(TagLib::IOStream*, TagLib::ID3v2::FrameFactory*, bool, TagLib::AudioProperties::ReadStyle)’
140 |       File(IOStream *stream, ID3v2::FrameFactory *frameFactory,
|       ^~~~
/usr/include/taglib/mpegfile.h:120:7: note: candidate 2: ‘TagLib::MPEG::File::File(TagLib::IOStream*, bool, TagLib::AudioProperties::ReadStyle, TagLib::ID3v2::FrameFactory*)’
120 |       File(IOStream *stream, bool readProperties = true,
|       ^~~~
/build/clementine-git/src/Clementine/ext/libclementine-tagreader/tagreader.cpp:1381:71: warning: ‘TagLib::MPEG::File::File(TagLib::IOStream*, TagLib::ID3v2::FrameFactory*, bool, TagLib::AudioProperties::ReadStyle)’ is deprecated [-Wdeprecated-declarations]
1381 |                                      TagLib::AudioProperties::Accurate));
|                                                                       ^
/usr/include/taglib/mpegfile.h:140:7: note: declared here
140 |       File(IOStream *stream, ID3v2::FrameFactory *frameFactory,
|       ^~~~
/build/clementine-git/src/Clementine/ext/libclementine-tagreader/tagreader.cpp:1403:77: warning: ‘TagLib::FLAC::File::File(TagLib::IOStream*, TagLib::ID3v2::FrameFactory*, bool, TagLib::AudioProperties::ReadStyle)’ is deprecated [-Wdeprecated-declarations]
1403 |                                      true, TagLib::AudioProperties::Accurate));
|                                                                             ^
In file included from /build/clementine-git/src/Clementine/ext/libclementine-tagreader/tagreader.cpp:26:
/usr/include/taglib/flacfile.h:145:7: note: declared here
145 |       File(IOStream *stream, ID3v2::FrameFactory *frameFactory,
|       ^~~~
/build/clementine-git/src/Clementine/ext/libclementine-tagreader/tagreader.cpp:1434:62: warning: ‘virtual int TagLib::AudioProperties::length() const’ is deprecated [-Wdeprecated-declarations]
1434 |       song->set_length_nanosec(tag->audioProperties()->length() * kNsecPerSec);
|                                ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~
/usr/include/taglib/audioproperties.h:82:17: note: declared here
82 |     virtual int length() const;
|                 ^~~~~~
make[2]: *** [ext/libclementine-tagreader/CMakeFiles/libclementine-tagreader.dir/build.make:116: ext/libclementine-tagreader/CMakeFiles/libclementine-tagreader.dir/tagreader.cpp.o] Error 1
make[1]: *** [CMakeFiles/Makefile2:1553: ext/libclementine-tagreader/CMakeFiles/libclementine-tagreader.dir/all] Error 2
make: *** [Makefile:136: all] Error 2
==> ERROR: A failure occurred in build().
Aborting...
==> ERROR: Build failed, check /var/lib/aurbuild/x86_64/fidel/build
error: failed to build 'clementine-git-1.4.0rc1.r901.g7b678f26e.4.gf3ddd7eee-1': failed to run: makechrootpkg -r /var/lib/aurbuild/x86_64 -d /var/cache/pacman/pkg/ -- -feA --noconfirm --noprepare --holdver:
error: packages failed to build: clementine-git-1.4.0rc1.r901.g7b678f26e.4.gf3ddd7eee-1
thegman254 commented 5 months ago

Yep, me too it's really annoying as this was my favourite so I have fucking nothing as of current that I actually like to play music with.

realth000 commented 5 months ago

For arch linux, as a workaround, install taglib1.

tincturaginseng commented 5 months ago

For arch linux, as a workaround, install taglib1.

Or create symlink: sudo ln -s /usr/lib/libtag.so /usr/lib/libtag.so.1

haplo commented 5 months ago

For arch linux, as a workaround, install taglib1.

Didn't think of looking at the AUR, this worked and lowers the priority of this bug for me. :+1:

I'd like to know if there is a plan/timeline for migrating Clementine to taglib 2.x?

haplo commented 5 months ago

FWIW it looks like Clementine's fork, Strawberry, supports taglib 2.0. Porting it might make sense.

FabioLolix commented 5 months ago
Or create symlink:
sudo ln -s /usr/lib/libtag.so /usr/lib/libtag.so.1

Generally bad idea, especially since taglib1 have already been uploaded on the AUR

thegman254 commented 5 months ago

still gives me the same error i think it's because I did yay -R clementine. I've done a whole shit ton of finds with -iname for clementine and clementine. I actually want some thoughts on this because whilst I've got strawberry so frankly, it's not that important? I like knowing how to fix things when they go wrong so, if anyone could toss some advice my way? I'd really appreciate it!

ismaail commented 4 months ago

after installing taglib1 with yay -S taglib1, Clementine works again.

but Clementine building still fails with same errors

Saiyaken-PHOENIX commented 4 months ago

Just tried building with latest from Github, have the same exact issues. Didn't know about the taglib1 thing before I uninstalled and attempted to reinstall Clementine, so I'm stuck as well.

EatedPantsu commented 4 months ago

still gives me the same error i think it's because I did yay -R clementine. I've done a whole shit ton of finds with -iname for clementine and clementine. I actually want some thoughts on this because whilst I've got strawberry so frankly, it's not that important? I like knowing how to fix things when they go wrong so, if anyone could toss some advice my way? I'd really appreciate it!

Just tried building with latest from Github, have the same exact issues. Didn't know about the taglib1 thing before I uninstalled and attempted to reinstall Clementine, so I'm stuck as well.

For AUR users, you can build the package if you edit the PKGBUILD ( yay -S --editmenu clementine ) and change taglib to OFF: -DUSE_SYSTEM_TAGLIB=ON and make it -DUSE_SYSTEM_TAGLIB=OFF

And clementine will use included library third party taglib

ixnewton commented 4 months ago

To get round this Arch Linux (Manjaro) pacman has a downgrade command. So using: sudo DOWNGRADE_FROM_ALA=1 downgrade taglib Allows downgrade to taglib 1.13 then build clementine from git version. Then revert taglib back to v2.0-1 and to provide the expected version for clementine provide a symlink sudo ln -s /usr/lib/libtag.so /usr/lib/libtag.so.1 Clementine back and working including track tag editing! The above solution should also work!

FabioLolix commented 4 months ago

The AUR pkgbuild have been changed to use system's taglib1

https://aur.archlinux.org/cgit/aur.git/commit/?h=clementine&id=98d4ae5cdc4369d117812ff14335c361635cf81a

Oldiesmann commented 4 months ago

Still fails with the same error even with the latest AUR build

FabioLolix commented 4 months ago

Nope, I have builded the packages and can prove it

FabioLolix commented 4 months ago

Still fails with the same error even with the latest AUR build

Ok, building with devtools worked fine, building with makepkg fails

FabioLolix commented 4 months ago

This time should be fixed for all https://aur.archlinux.org/cgit/aur.git/commit/?h=clementine&id=e7682090a502158a74fb6b7a36deb481f29a6baf

ixnewton commented 4 months ago

Just came in for Octopi/Trizen to build (clementine-git v1.4). Builds perfectly though it is quite big and takes a while. Launches and works fine for me. Thanks!

PS: I have taglib 2.0 (/usr/lib/libtag.so.2.0.0) installed, and when running is no longer dependent on symlink /usr/lib/libtag.so.1

plater commented 4 months ago

I'm just wondering when clementine will be compatible with taglib2 all the other packages that depend on taglib are compatible. I'm not planning on creating a taglib1 package for openSUSE and can't build with the bundled taglib for very long as this is only a temporary fix.

ixnewton commented 4 months ago

Hmm.... Tried to transcode files from flac to mp3 which was working with taglib 1.0 results in core dump. Maybe more fixes are necessary?

ClementineCoreDump.log

FabioLolix commented 3 months ago

which was working with taglib 1.0

Since 2024-03-02 the pkgbuild use the bundled taglib1