syncemail-client: undefined symbol: _ZN5Buteo13PluginManagerC1Ev [answered]
After compile and install buteo-syncfw from mer I see following and I wonder why (I guess it is because I enable more verbouse output for msyncd)
Jan 04 00:18:51 Sailfish [10718]: [D] unknown:0 - Trying to start next sync in queue. Profile: "syncemail-9" true
Jan 04 00:18:51 Sailfish [10718]: [D] unknown:0 - Synchronizer::getBackUpRestoreState
Jan 04 00:18:51 Sailfish [10718]: [D] unknown:0 - Starting sync with profile "syncemail-9"
Jan 04 00:18:51 Sailfish [10718]: [D] unknown:0 - Disable sync on change: false false
Jan 04 00:18:51 Sailfish [10718]: [D] unknown:0 - Starting oop plugin "syncemail-9"
Jan 04 00:18:51 Sailfish [10718]: [D] unknown:0 - Starting process "/usr/lib/buteo-plugins-qt5//oopp/syncemail-client" with plugin name "syncemail" and profile name "syncemail-9"
Jan 04 00:18:51 Sailfish invoker[10797]: /usr/lib/buteo-plugins-qt5//oopp/syncemail-client: symbol lookup error: /usr/lib/buteo-plugins-qt5//oopp/syncemail-client: undefined symbol: _ZN5Buteo13PluginManagerC1Ev
Jan 04 00:19:21 Sailfish [10718]: [D] unknown:0 - Process "/usr/lib/buteo-plugins-qt5//oopp/syncemail-client" started with pid 11176
Jan 04 00:19:21 Sailfish [10718]: [D] unknown:0 - Process "/usr/lib/buteo-plugins-qt5//oopp/syncemail-client" with pid 11176 was unable to register DBus service: "com.buteo.msyncd.plugin.profile-syncemail-9" | "com.buteo.msyncd.plugin.syncemail-9"
Jan 04 00:19:21 Sailfish [10718]: [D] unknown:0 - Client plug-in runner initialized
Jan 04 00:19:21 Sailfish [10718]: [D] unknown:0 - ClientPluginRunner started thread for plugin: "syncemail-9" , returning: true
Jan 04 00:19:21 Sailfish [10718]: [D] unknown:0 - sync-ui dbus interface is getting called
Jan 04 00:19:21 Sailfish [10718]: [D] unknown:0 - Sync session started
Jan 04 00:19:21 Sailfish [10718]: [D] unknown:0 - Stopping the OOP process for "syncemail"
Jan 04 00:19:21 Sailfish [10718]: [D] unknown:0 - Process "/usr/lib/buteo-plugins-qt5//oopp/syncemail-client" finished with exit code 127
Jan 04 00:19:21 Sailfish [10718]: [D] unknown:0 - ProfileManager::syncProfile( "syncemail-45" )
Jan 04 00:19:21 Sailfish [10718]: [D] unknown:0 - found a valid sync profile with the given name: "syncemail-45"
Jan 04 00:19:21 Sailfish [10718]: [W] unknown:0 - Invalid reply for init from plugin
Jan 04 00:19:21 Sailfish [10718]: [W] unknown:0 - Could not initialize client plugin: "syncemail"
Jan 04 00:19:21 Sailfish [10718]: [D] unknown:0 - Sync status changed for account "45"
_ZN5Buteo13PluginManagerC1Ev is Buteo::PluginManager::PluginManager()
$ c++filt _ZN5Buteo13PluginManagerC1Ev Buteo::PluginManager::PluginManager()
There's no such thing:
These are available constructors:
$ nm -D /usr/lib/libbuteosyncfw5.so.0 | grep ZN5Buteo13PluginManagerC 0003f0b8 T _ZN5Buteo13PluginManagerC1ERK7QString 0003f0b8 T _ZN5Buteo13PluginManagerC2ERK7QString
$ c++filt _ZN5Buteo13PluginManagerC1ERK7QString Buteo::PluginManager::PluginManager(QString const&)
Something must be wrong with your build environment, e.g. you're pulling in wrong headers from somewhere.
Cheers, -Slava
[from the dev mailing list]
# pkcon remove buteo-sync-plugins-email
Resolving
Querying
Testing changes
Finished [ ] (0%)
The following packages have to be removed:
buteo-sync-plugins-email-0.1.2-1.4.1.jolla.armv7hl Syncs email accounts
jolla-email-0.5.17-1.23.1.jolla.armv7hl Jolla Email Application
Proceed with changes? [N/y]
[root@Sailfish nemo]# nm -CD /usr/lib/buteo-plugins-qt5/oopp/syncemail-client | grep Manager
U Buteo::PluginManager::createStorage(QString const&)
U Buteo::PluginManager::destroyStorage(Buteo::StoragePlugin*)
U Buteo::PluginManager::PluginManager()
U Buteo::PluginManager::~PluginManager()
2020-01-06 Update:
Cloned repository https://git.sailfishos.org/mer-core/buteo-sync-plugins-email
and build. The RPM is buteo-sync-plugins-email-0.0.15-1.armv7hl.rpm
The package from Sailfish(Jolla) is buteo-sync-plugins-email-0.1.2-1.4.1.jolla.armv7hl.
Obviously there is something definitely wrong with the buteo-syncfw and the builds using it in Jolla.
After compiling/installing this the mail sync works but I started getting the errors from google-contacts-client
Jan 06 00:46:05 Sailfish [4890]: [D] unknown:0 - Starting oop plugin "google.Contacts-12"
Jan 06 00:46:05 Sailfish [4890]: [D] unknown:0 - Starting process "/usr/lib/buteo-plugins-qt5//oopp/google-contacts-client" with plugin name "google-contacts" and profile name "google.Contacts-12"
Jan 06 00:46:05 Sailfish invoker[4902]: /usr/lib/buteo-plugins-qt5//oopp/google-contacts-client: symbol lookup error: /usr/lib/buteo-plugins-qt5//oopp/google-contacts-client: undefined symbol: _ZN5Buteo13PluginManagerC1Ev
It looks like all Jolla plugins were build against a version of buteo-syncfw that provides different constructor than in MER. How is this possible?!
Can someone check on other devices pls? I think it is regression in 3.2.1.20. (the 3 plugins with constructor with QString argument were compiled against MER's buteo-syncfw). They work.
# ls -1 /usr/lib/buteo-plugins-qt5/oopp/* | while read line; do echo $line;
nm -CD $line | grep 'Buteo::PluginManager::PluginManager'; done
/usr/lib/buteo-plugins-qt5/oopp/caldav-client
U Buteo::PluginManager::PluginManager()
/usr/lib/buteo-plugins-qt5/oopp/carddav-client
U Buteo::PluginManager::PluginManager()
/usr/lib/buteo-plugins-qt5/oopp/dropbox-backup-client
U Buteo::PluginManager::PluginManager()
/usr/lib/buteo-plugins-qt5/oopp/dropbox-images-client
U Buteo::PluginManager::PluginManager()
/usr/lib/buteo-plugins-qt5/oopp/facebook-calendars-client
U Buteo::PluginManager::PluginManager()
/usr/lib/buteo-plugins-qt5/oopp/facebook-contacts-client
U Buteo::PluginManager::PluginManager()
/usr/lib/buteo-plugins-qt5/oopp/facebook-images-client
U Buteo::PluginManager::PluginManager()
/usr/lib/buteo-plugins-qt5/oopp/facebook-signon-client
U Buteo::PluginManager::PluginManager()
/usr/lib/buteo-plugins-qt5/oopp/google-calendars-client
U Buteo::PluginManager::PluginManager()
/usr/lib/buteo-plugins-qt5/oopp/google-contacts-client
U Buteo::PluginManager::PluginManager()
/usr/lib/buteo-plugins-qt5/oopp/google-signon-client
U Buteo::PluginManager::PluginManager()
/usr/lib/buteo-plugins-qt5/oopp/onedrive-backup-client
U Buteo::PluginManager::PluginManager()
/usr/lib/buteo-plugins-qt5/oopp/onedrive-images-client
U Buteo::PluginManager::PluginManager()
/usr/lib/buteo-plugins-qt5/oopp/onedrive-signon-client
U Buteo::PluginManager::PluginManager()
/usr/lib/buteo-plugins-qt5/oopp/sailfisheas-calendars-client
U Buteo::PluginManager::PluginManager()
/usr/lib/buteo-plugins-qt5/oopp/sailfisheas-contacts-client
U Buteo::PluginManager::PluginManager()
/usr/lib/buteo-plugins-qt5/oopp/sailfisheas-email-client
U Buteo::PluginManager::PluginManager()
/usr/lib/buteo-plugins-qt5/oopp/sociald-client
U Buteo::PluginManager::PluginManager()
/usr/lib/buteo-plugins-qt5/oopp/syncemail-client
U Buteo::PluginManager::PluginManager(QString const&)
/usr/lib/buteo-plugins-qt5/oopp/syncml-client
U Buteo::PluginManager::PluginManager(QString const&)
/usr/lib/buteo-plugins-qt5/oopp/syncml-server
U Buteo::PluginManager::PluginManager(QString const&)
/usr/lib/buteo-plugins-qt5/oopp/twitter-notifications-client
U Buteo::PluginManager::PluginManager()
/usr/lib/buteo-plugins-qt5/oopp/twitter-posts-client
U Buteo::PluginManager::PluginManager()
/usr/lib/buteo-plugins-qt5/oopp/vk-calendars-client
U Buteo::PluginManager::PluginManager()
/usr/lib/buteo-plugins-qt5/oopp/vk-contacts-client
U Buteo::PluginManager::PluginManager()
/usr/lib/buteo-plugins-qt5/oopp/vk-images-client
U Buteo::PluginManager::PluginManager()
/usr/lib/buteo-plugins-qt5/oopp/vk-notifications-client
U Buteo::PluginManager::PluginManager()
/usr/lib/buteo-plugins-qt5/oopp/vk-posts-client
U Buteo::PluginManager::PluginManager()
It's strange that your compiled version of buteo-syncfw lib doesn't have the default constructor PluginManager(). It is defined in sources and when I compile it, it has it besides the string constructor:
Damien Caliste ( 2020-01-06 18:09:55 +0200 )edit@damien - thank you for pointing this - I see the problem now. It is indeed very very strange as I cloned from MER AFAIR.
I'll accept the answer and look forward to solve the issue in the repo.
deloptes ( 2020-01-06 19:59:59 +0200 )edit