syncemail-client: undefined symbol: _ZN5Buteo13PluginManagerC1Ev [answered]

asked 2020-01-04 01:44:32 +0300

deloptes gravatar image

updated 2020-01-06 17:50:21 +0300

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:

  https://git.sailfishos.org/deloptes/buteo-syncfw/blob/master/libbuteosyncfw/pluginmgr/PluginManager.h#L96

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()
edit retag flag offensive reopen delete

The question has been closed for the following reason "the question is answered, an answer was accepted" by deloptes
close date 2020-01-06 22:32:34.404646

Comments

1

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:

[SB2 sdk-build SailfishOS-3.2.1.20-armv7hl] I have no name!@SailfishSDK buteo-syncfw $ nm -CD libbuteosyncfw/libbuteosyncfw5.so.0.1.0 | grep PluginManager
0003f2a8 T Buteo::PluginManager::PluginManager()
Damien Caliste ( 2020-01-06 18:09:55 +0300 )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 +0300 )edit