Bug 502777 - Amarok build doesn't fail without mysqld library
Summary: Amarok build doesn't fail without mysqld library
Status: REPORTED
Alias: None
Product: amarok
Classification: Applications
Component: general (show other bugs)
Version: 3.2.81
Platform: openSUSE Linux
: NOR normal
Target Milestone: ---
Assignee: Amarok Developers
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2025-04-14 08:08 UTC by Christophe Marin
Modified: 2025-04-15 17:01 UTC (History)
1 user (show)

See Also:
Latest Commit:
Version Fixed In:
Sentry Crash Report:


Attachments
database error report (97.24 KB, image/png)
2025-04-14 08:08 UTC, Christophe Marin
Details

Note You need to log in before you can comment on or make changes to this bug.
Description Christophe Marin 2025-04-14 08:08:43 UTC
Created attachment 180246 [details]
database error report

That's something I noticed in our unstable amarok package tracking git master, and the issue is still present in 3.3 beta:

# rpm -qv qt6-sql-mysql 
qt6-sql-mysql-6.9.0-151.1.x86_64

# mariadb --version
mariadb from 11.7.2-MariaDB, client 15.2 for Linux (x86_64) using  EditLine wrapper

# amarok --version
amarok 3.2.81
QThreadStorage: entry 9 destroyed before end of thread 0x55749ee005d0
QThreadStorage: entry 4 destroyed before end of thread 0x55749ee005d0
QThreadStorage: entry 3 destroyed before end of thread 0x55749ee005d0

# rm ~/.config/amarokrc                    
# rm ~/.cache/amarok -r
# rm ~/.local/share/amarok -r

On startup, amarok reports a database error, see screenshot
Comment 1 Christophe Marin 2025-04-14 08:10:45 UTC
# rpm -ql amarok |grep mysql   
/usr/lib64/qt6/plugins/amarok_collection-mysqlcollection.so
/usr/lib64/qt6/plugins/amarok_storage-mysqlserverstorage.so

It seems amarok is unable to find its mysql plugin:

# amarok --debug
amarok: BEGIN: void App::continueInit()
amarok:   BEGIN: virtual int App::newInstance()
amarok:     BEGIN: void App::handleCliArgs(const QString&)
amarok:     END__: void App::handleCliArgs(const QString&) [Took: 0s]
amarok:   END__: virtual int App::newInstance() [Took: 0s]
amarok:   BEGIN: EngineController::EngineController()
amarok:   END__: EngineController::EngineController() [Took: 0s]
amarok:   BEGIN: void EngineController::initializePhonon()
qt.core.qobject.connect: QObject::connect: No such signal Phonon::VLC::MediaObject::angleChanged(int)
qt.core.qobject.connect: QObject::connect: No such signal Phonon::VLC::MediaObject::availableAnglesChanged(int)
amarok:     BEGIN: void EqualizerController::initialize(const Phonon::Path&)
amarok:       [EqualizerController] Established Phonon equalizer effect with 11 parameters.
amarok:       BEGIN: void EqualizerController::eqUpdate()
amarok:       END__: void EqualizerController::eqUpdate() [Took: 0s]
amarok:     END__: void EqualizerController::initialize(const Phonon::Path&) [Took: 0s]
WARNING: Phonon::createPath: Cannot connect  Phonon::MediaObject ( no objectName ) to  Phonon::AudioDataOutput ( no objectName ).
amarok:     [EngineController] Tick Interval (actual):  100
amarok:   END__: void EngineController::initializePhonon() [Took: 0.013s]
amarok:   BEGIN: CollectionManager::CollectionManager()
amarok:   END__: CollectionManager::CollectionManager() [Took: 0s]
amarok:   BEGIN: MainWindow::MainWindow()
amarok:     BEGIN: Plugins::PluginManager::PluginManager(QObject*)
amarok:       BEGIN: void Plugins::PluginManager::checkPluginEnabledStates()
amarok:         [PluginManager] found plugin: "amarok_collection-audiocdcollection" enabled: true
amarok:         [PluginManager] found plugin: "amarok_collection-daapcollection" enabled: false
amarok:         [PluginManager] found plugin: "amarok_collection-ipodcollection" enabled: true
amarok:         [PluginManager] found plugin: "amarok_collection-mtpcollection" enabled: true
amarok:         [PluginManager] Plugin "amarok_collection-mysqlcollection" is vital
amarok:         [PluginManager] found plugin: "amarok_collection-mysqlcollection" enabled: true
amarok:         [PluginManager] found plugin: "amarok_collection-playdarcollection" enabled: false
amarok:         [PluginManager] found plugin: "amarok_collection-umscollection" enabled: true
amarok:         [PluginManager] found plugin: "amarok_importer-amarok" enabled: true
amarok:         [PluginManager] found plugin: "amarok_importer-banshee" enabled: true
amarok:         [PluginManager] found plugin: "amarok_importer-clementine" enabled: true
amarok:         [PluginManager] found plugin: "amarok_importer-fastforward" enabled: true
amarok:         [PluginManager] found plugin: "amarok_importer-itunes" enabled: true
amarok:         [PluginManager] found plugin: "amarok_importer-rhythmbox" enabled: true
amarok:         [PluginManager] found plugin: "amarok_service_ampache" enabled: false
amarok:         [PluginManager] found plugin: "amarok_service_magnatunestore" enabled: false
amarok:         [PluginManager] found plugin: "amarok_service_opmldirectory" enabled: true
amarok:         [PluginManager] Plugin "amarok_storage-mysqlserverstorage" is vital
amarok:         [PluginManager] found plugin: "amarok_storage-mysqlserverstorage" enabled: true
amarok:         [PluginManager] 17 plugins in total
amarok:         [PluginManager] Creating factory for plugin: "amarok_collection-audiocdcollection"
amarok:         [PluginManager] Creating factory for plugin: "amarok_collection-daapcollection"
amarok:         [PluginManager] Creating factory for plugin: "amarok_collection-ipodcollection"
amarok:         [PluginManager] Creating factory for plugin: "amarok_collection-mtpcollection"
amarok:         [PluginManager] Creating factory for plugin: "amarok_collection-mysqlcollection"
amarok:         [PluginManager] Plugin "amarok_collection-mysqlcollection" is vital
amarok:         [PluginManager] Creating factory for plugin: "amarok_collection-playdarcollection"
amarok:         BEGIN: Collections::PlaydarCollectionFactory::PlaydarCollectionFactory()
amarok:         END__: Collections::PlaydarCollectionFactory::PlaydarCollectionFactory() [Took: 0s]
amarok:         [PluginManager] Creating factory for plugin: "amarok_collection-umscollection"
amarok:         [PluginManager] Creating factory for plugin: "amarok_importer-amarok"
amarok:         [PluginManager] Creating factory for plugin: "amarok_importer-banshee"
amarok:         [PluginManager] Creating factory for plugin: "amarok_importer-clementine"
amarok:         [PluginManager] Creating factory for plugin: "amarok_importer-fastforward"
amarok:         [PluginManager] Creating factory for plugin: "amarok_importer-itunes"
amarok:         [PluginManager] Creating factory for plugin: "amarok_importer-rhythmbox"
amarok:         [PluginManager] Creating factory for plugin: "amarok_service_ampache"
amarok:         [PluginManager] Creating factory for plugin: "amarok_service_magnatunestore"
amarok:         [PluginManager] Creating factory for plugin: "amarok_service_opmldirectory"
amarok:         [PluginManager] Creating factory for plugin: "amarok_storage-mysqlserverstorage"
amarok:         [PluginManager] Plugin "amarok_storage-mysqlserverstorage" is vital
Comment 2 Christophe Marin 2025-04-15 08:04:20 UTC
The root cause is amarok's FindMySQLe.cmake and how it's used.

The application is (still) unable to work correctly if the libmysqld library isn't present at build time, but the build system doesn't stop the build
Comment 3 Tuomas Nurmi 2025-04-15 17:01:40 UTC
Thank you for the report and pinpointing the issue! I'll try to have a look at the related CMake parts at some point.