TelepathyIM / telepathy-morse

Telegram connection manager for the Telepathy framework
GNU General Public License v2.0
61 stars 10 forks source link

Morse doesn't work with Telepathy-0.9.6(.1) (Ubuntu, SailfishOS) #26

Closed Kaffeine closed 7 years ago

Kaffeine commented 8 years ago

Currently Morse depends on TelepathyQt-0.9.7.

https://bugs.launchpad.net/ubuntu/+source/ktp-contact-list/+bug/1512135

rummik commented 8 years ago

I'm on 16.04 LTS, and I'd be happy to help where I can.

So far I'm seeing a couple reasons. First off, it looks like the minimum version of TelepathyQt is 0.9.7 as of b4b620f, but Ubuntu 16.04 packages TelepathyQt-0.9.6. In the commit prior to that I get the following error when building:

/home/rummik/Source/telepathyqt/telepathy-morse/textchannel.cpp: In constructor ‘MorseTextChannel::MorseTextChannel(CTelegramCore*, Tp::BaseChannel*, uint, const QString&)’:
/home/rummik/Source/telepathyqt/telepathy-morse/textchannel.cpp:70:62: error: no matching function for call to ‘Tp::BaseChannelGroupInterface::create()’
         m_groupIface = Tp::BaseChannelGroupInterface::create();
                                                              ^
In file included from /usr/include/telepathy-qt5/TelepathyQt/BaseChannel:8:0,
                 from /home/rummik/Source/telepathyqt/telepathy-morse/textchannel.hpp:19,
                 from /home/rummik/Source/telepathyqt/telepathy-morse/textchannel.cpp:14:
/usr/include/telepathy-qt5/TelepathyQt/base-channel.h:534:41: note: candidate: static Tp::BaseChannelGroupInterfacePtr Tp::BaseChannelGroupInterface::create(Tp::ChannelGroupFlags, uint)
     static BaseChannelGroupInterfacePtr create(ChannelGroupFlags initialFlags, uint selfHandle) {
                                         ^
/usr/include/telepathy-qt5/TelepathyQt/base-channel.h:534:41: note:   candidate expects 2 arguments, 0 provided
/usr/include/telepathy-qt5/TelepathyQt/base-channel.h:538:57: note: candidate: template<class BaseChannelGroupInterfaceSubclass> static Tp::SharedPtr<T> Tp::BaseChannelGroupInterface::create(Tp::ChannelGroupFlags, uint)
     static SharedPtr<BaseChannelGroupInterfaceSubclass> create(ChannelGroupFlags initialFlags, uint selfHandle) {
                                                         ^
/usr/include/telepathy-qt5/TelepathyQt/base-channel.h:538:57: note:   template argument deduction/substitution failed:
/home/rummik/Source/telepathyqt/telepathy-morse/textchannel.cpp:70:62: note:   candidate expects 2 arguments, 0 provided
         m_groupIface = Tp::BaseChannelGroupInterface::create();
                                                              ^
/home/rummik/Source/telepathyqt/telepathy-morse/textchannel.cpp:71:23: error: ‘class Tp::BaseChannelGroupInterface’ has no member named ‘setGroupFlags’
         m_groupIface->setGroupFlags(groupFlags);
                       ^
/home/rummik/Source/telepathyqt/telepathy-morse/textchannel.cpp:72:23: error: ‘class Tp::BaseChannelGroupInterface’ has no member named ‘setSelfHandle’
         m_groupIface->setSelfHandle(m_selfHandle);
                       ^
/home/rummik/Source/telepathyqt/telepathy-morse/textchannel.cpp: In member function ‘void MorseTextChannel::updateChatParticipants(const Tp::UIntList&)’:
/home/rummik/Source/telepathyqt/telepathy-morse/textchannel.cpp:233:19: error: ‘class Tp::BaseChannelGroupInterface’ has no member named ‘setMembers’
     m_groupIface->setMembers(handles, /* details */ QVariantMap());
                   ^
CMakeFiles/telepathy-morse.dir/build.make:158: recipe for target 'CMakeFiles/telepathy-morse.dir/textchannel.cpp.o' failed
make[2]: *** [CMakeFiles/telepathy-morse.dir/textchannel.cpp.o] Error 1
CMakeFiles/Makefile2:67: recipe for target 'CMakeFiles/telepathy-morse.dir/all' failed
make[1]: *** [CMakeFiles/telepathy-morse.dir/all] Error 2
Makefile:127: recipe for target 'all' failed
make: *** [all] Error 2

So it looks to me like the additions for group chats are breaking builds under older versions of TelepathyQt

Kaffeine commented 8 years ago

@rummik thank you for the information. Sadly, TelepathyQt-0.9.6 has very limited (service-side) API, so Morse will expose only very basic things and even group chat will not work. I doubt it does make sense to use Morse with such old version. I thought that If you want to use the just released software, when probably it would be OK to update the library to the version, released months ago, but I did not know that it is not available yet.

I will contact Ubuntu developers to speed up the 0.9.7 version packaging.

rummik commented 8 years ago

I primarily use Telegram for person-to-person communication, so not having group support wouldn't be an issue on my end. Though, I can definitely see it being an issue in general. I've been thinking about building 0.9.7 for a few other reasons, so I may just see about making a PPA for it

rodrigoslayertech commented 7 years ago

Please, fix this bug -> package dependencies problems!

Kaffeine commented 7 years ago

@slowaways This is not a bug. TelepathyQt-0.9.6 is very limited. I would have to add a number of #ifdefs to turn off features and fix compilation. Currently the application depends on a TelepathyQt-0.9.7, which is released six months ago (at June 12). Ubuntu developers working hard on bringing the required version. They also did "some big changes ... to apps and services, so taking a bit of time to test and review them".

I'll try to create a branch for TpQt-0.9.6, will see how it can work.

Kaffeine commented 7 years ago

I created a branch, will polish and push the commits to master sometime soon. @rummik @slowaways : Testing would be appreciated. :)

rodrigoslayertech commented 7 years ago

@Kaffeine Ok. Thanks!