# cat /usr/local/etc/pkg/repos/FreeBSD.conf FreeBSD: { url: "pkg+http://pkg.freebsd.org/FreeBSD:11:amd64/latest" } # pkg upgrade amarok Updating FreeBSD repository catalogue... FreeBSD repository is up to date. All repositories are up to date. Checking integrity... done (0 conflicting) Your packages are up to date. # amarok -d amarok -d QDBusConnection: session D-Bus connection created before QCoreApplication. Application may misbehave. QDBusConnection: session D-Bus connection created before QCoreApplication. Application may misbehave. amarok: BEGIN: App::App() amarok: BEGIN: void App::continueInit() amarok: BEGIN: EngineController::EngineController() amarok: END__: EngineController::EngineController() [Took: 0.004s] amarok: BEGIN: void EngineController::initializePhonon() WARNING: Phonon::createPath: Cannot connect Phonon::MediaObject ( no objectName ) to Phonon::AudioDataOutput ( no objectName ). Object::connect: No such signal Phonon::VLC::MediaObject::angleChanged(int) Object::connect: No such signal Phonon::VLC::MediaObject::availableAnglesChanged(int) amarok: [EngineController] Established Phonon equalizer effect with 11 parameters. amarok: [EngineController] Tick Interval (actual): 100 amarok: END__: void EngineController::initializePhonon() [Took: 0.22s] 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::findAllPlugins() amarok: [PluginManager] found plugin: "amarok_collection-audiocdcollection" enabled: false amarok: [PluginManager] found plugin: "amarok_collection-daapcollection" enabled: false amarok: [PluginManager] found plugin: "amarok_collection-mtpcollection" enabled: false amarok: [PluginManager] found plugin: "amarok_collection-mysqlservercollection" enabled: true amarok: [PluginManager] found plugin: "amarok_collection-mysqlecollection" enabled: true amarok: [PluginManager] found plugin: "amarok_collection-nepomukcollection" enabled: false amarok: [PluginManager] found plugin: "amarok_collection-upnpcollection" enabled: false amarok: [PluginManager] found plugin: "amarok_collection-umscollection" enabled: false amarok: [PluginManager] found plugin: "amarok_collection-ipodcollection" enabled: false amarok: [PluginManager] found plugin: "amarok_service_ampache" enabled: false amarok: [PluginManager] found plugin: "amarok_service_jamendo" enabled: false amarok: [PluginManager] found plugin: "amarok_service_lastfm" enabled: false amarok: [PluginManager] found plugin: "amarok_service_amazonstore" enabled: false amarok: [PluginManager] found plugin: "amarok_service_mp3tunes" enabled: false amarok: [PluginManager] found plugin: "amarok_service_magnatunestore" enabled: false amarok: [PluginManager] found plugin: "amarok_service_opmldirectory" enabled: false amarok: [PluginManager] 16 plugins in total amarok: END__: void Plugins::PluginManager::findAllPlugins() [Took: 0.005s] amarok: [WARNING] [PluginManager] "Failed to get factory 'amarok_collection-mysqlecollection' from KPluginLoader: Cannot load library /usr/local/lib/kde4/amarok_collection-mysqlecollection.so: (/usr/local/lib/kde4/amarok_collection-mysqlecollection.so: Undefined symbol "SSL_connect")" amarok: [PluginManager] No Amarok collection plugins found, running kbuildsycoca4. amarok: BEGIN: virtual int App::newInstance() amarok: BEGIN: static void App::handleCliArgs() amarok: END__: static void App::handleCliArgs() [Took: 0s] amarok: END__: virtual int App::newInstance() [Took: 0s] dbn@dragon:/usr/ports> amarok: [PluginManager] Second attempt at finding collection plugins amarok: [WARNING] [PluginManager] "Failed to get factory 'amarok_collection-mysqlecollection' from KPluginLoader: Cannot load library /usr/local/lib/kde4/amarok_collection-mysqlecollection.so: (/usr/local/lib/kde4/amarok_collection-mysqlecollection.so: Undefined symbol "SSL_connect")"
Is this still an issue? > (/usr/local/lib/kde4/amarok_collection-mysqlecollection.so: Undefined symbol "SSL_connect")" raises one or the other eye-brow.
Exact same problem: # pkg info amarok | head -n1 amarok-2.8.0_11 # uname -r 11.0-RELEASE-p8 # amarok -d |& grep SSL_connect amarok: [WARNING] [PluginManager] "Failed to get factory 'amarok_collection-mysqlecollection' from KPluginLoader: Cannot load library /usr/local/lib/kde4/amarok_collection-mysqlecollection.so: (/usr/local/lib/kde4/amarok_collection-mysqlecollection.so: Undefined symbol "SSL_connect")"
This bug is also affecting me and I'm using the quarterly pkg branch. Same error as reported. I'll try to compile amarok from ports and report back.
I tried compiling, but that didn't work for me :-(. Maybe change the build so that amarok_collection-mysqlecollection.so links to SSL?
(In reply to David Naylor from comment #4) Ok, just tried it but couldn't make it work. I'm not sure how to change the linking, tough... Sorry :(
Created attachment 186768 [details] Add SSL to MySQLE collections Please test the attached patch, it adds -lssl to the linking arguments for amarok_mysqlecollection.so.
Your approach is valid: if I link amarok_collection-mysqlecollection.so with -Wl,--no-undefined, I see several errors coming from libmysqld.a referencing SSL_*, EVP_* and MD5_* symbols that are not found. However, another approach is to generalize this check: https://cgit.kde.org/amarok.git/tree/CMakeLists.txt?h=v2.8.0#n77 if(${CMAKE_SYSTEM_NAME} MATCHES "Linux") SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wl,--as-needed") endif(${CMAKE_SYSTEM_NAME} MATCHES "Linux") which was added in https://cgit.kde.org/amarok.git/commit/CMakeLists.txt?h=v2.8.0&id=ef0d251381532902cbd81bfa7732358be3cecedb for some similar reason apparently. Amarok doesn't seem to need or use any of those missing symbols, but I haven't tried running it after building everything with --as-needed. Either approach is fine with me.
It appears the base linker on FreeBSD doesn't understand --as-needed.
A commit references this bug: Author: dbn Date: Sat Nov 4 17:13:35 UTC 2017 New revision: 453473 URL: https://svnweb.freebsd.org/changeset/ports/453473 Log: audio/amarok-kde4: fix local collections not working The local collection backend uses embedded MySQL, however mysqle needs to be linked against SSL. Also, explicitly state we need both client and embedded version of mysql in USES. PR: 218821 PR: 221467 Changes: head/audio/amarok-kde4/Makefile head/audio/amarok-kde4/files/patch-src_core-impl_collections-db-sql-mysqlcollection-CMakeLists.txt
Fix committed, thanks for testing