Hi,
I am trying to integrate telegram inside chatty using telegram-purple. When I enter my phone number it generates two errors.
I also tried libpurple-telegram-tdlib. In this case, I don’t see telegram option in chatty.
Hi,
I am trying to integrate telegram inside chatty using telegram-purple. When I enter my phone number it generates two errors.
I also tried libpurple-telegram-tdlib. In this case, I don’t see telegram option in chatty.
telegram-purple seems to be deprecated in favor of that tdlib one, however the tdlib one as you observed isn’t yet compatible with whatever Chatty does to display account types… Therefore… no Telegram in Chatty for now
I have noticed that chatty
does not offer Telegram in add account list when tdlib-purple is installed.
But I have found suggestion to install pindgin pidgin
and enable libpurple tdlib-purple protocol and account inside pidgin
. I have build /usr/lib/purple-2/libtelegram-tdlib.so
from GitHub - BenWiederhake/tdlib-purple: libpurple Telegram plugin using tdlib in pureos-arm64
chroot environment on my Debian x86 laptop with qemu-aarch64-static
. The plugin worked with pidgin correctly and I could setup my account. /home/purism/.purple/accounts.xml
includes section after activation in pidgin
<account>
<protocol>telegram-tdlib</protocol>
<name>+NumberXXXX</name>
<alias>NameXXX</alias>
<statuses/>
<settings>
When chatty
is started after the account setup in pidgin
then Telegram appears between configured protocols but it is disabled by default. The SIGSEGV follows immediately attempt to enable it. The stack trace
Thread 1 "chatty" received signal SIGSEGV, Segmentation fault.
0x0000fffff79abdcc in purple_chat_get_name () from /lib/libpurple.so.0
#0 0x0000fffff79abdcc in purple_chat_get_name () from /lib/libpurple.so.0
#1 0x0000aaaaaab09398 in ?? ()
#2 0x0000aaaaaab19444 in chatty_item_compare ()
#3 0x0000aaaaaab11e64 in ?? ()
#4 0x0000aaaaaab123f8 in ?? ()
#5 0x0000fffff7b2a64c in ?? () from /lib/aarch64-linux-gnu/libglib-2.0.so.0
#6 0x0000fffff7b2c510 in g_sequence_insert_sorted_iter () from /lib/aarch64-linux-gnu/libglib-2.0.so.0
#7 0x0000fffff7b2c62c in g_sequence_insert_sorted () from /lib/aarch64-linux-gnu/libglib-2.0.so.0
#8 0x0000aaaaaab1229c in ?? ()
#9 0x0000aaaaaab1256c in ?? ()
#10 0x0000fffff7e4a018 in g_closure_invoke () from /lib/aarch64-linux-gnu/libgobject-2.0.so.0
#11 0x0000fffff7e5d9e4 in ?? () from /lib/aarch64-linux-gnu/libgobject-2.0.so.0
#12 0x0000fffff7e63898 in g_signal_emit_valist () from /lib/aarch64-linux-gnu/libgobject-2.0.so.0
#13 0x0000fffff7e63e90 in g_signal_emit () from /lib/aarch64-linux-gnu/libgobject-2.0.so.0
#14 0x0000fffff7e4a018 in g_closure_invoke () from /lib/aarch64-linux-gnu/libgobject-2.0.so.0
#15 0x0000fffff7e5d9e4 in ?? () from /lib/aarch64-linux-gnu/libgobject-2.0.so.0
#16 0x0000fffff7e63898 in g_signal_emit_valist () from /lib/aarch64-linux-gnu/libgobject-2.0.so.0
#17 0x0000fffff7e63e90 in g_signal_emit () from /lib/aarch64-linux-gnu/libgobject-2.0.so.0
#18 0x0000aaaaaaad3a38 in ?? ()
#19 0x0000aaaaaaad5674 in ?? ()
#20 0x0000fffff79af468 in purple_blist_add_chat () from /lib/libpurple.so.0
#21 0x0000ffffca62e984 in updateGroupChat(TdAccountData&, td::td_api::chat const&, td::tl::unique_ptr<td::td_api::ChatMemberStatus> const&, char const*, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) () from /usr/lib/purple-2/libtelegram-tdlib.so
#22 0x0000ffffca62eff8 in updateSupergroupChat(TdAccountData&, SupergroupId) () from /usr/lib/purple-2/libtelegram-tdlib.so
#23 0x0000ffffca5dcd9c in PurpleTdClient::updateChat(td::td_api::chat const*) () from /usr/lib/purple-2/libtelegram-tdlib.so
#24 0x0000ffffca5d6f40 in PurpleTdClient::processUpdate(td::td_api::Object&) () from /usr/lib/purple-2/libtelegram-tdlib.so
#25 0x0000ffffca60319c in TdTransceiverImpl::rxCallback(void*) () from /usr/lib/purple-2/libtelegram-tdlib.so
#26 0x0000fffff7b10ab4 in g_main_context_dispatch () from /lib/aarch64-linux-gnu/libglib-2.0.so.0
#27 0x0000fffff7b10e5c in ?? () from /lib/aarch64-linux-gnu/libglib-2.0.so.0
#28 0x0000fffff7b10f24 in g_main_context_iteration () from /lib/aarch64-linux-gnu/libglib-2.0.so.0
#29 0x0000fffff7cf1ef8 in g_application_run () from /lib/aarch64-linux-gnu/libgio-2.0.so.0
#30 0x0000aaaaaaad11c0 in main ()
It seems to be problem in chatty. I have tried if I can replace Byzantium provided chatty version 7.3 by own build of Debian chatty 0.8.6~rc.0-1 version, but there are many dependencies unresolvable. Some attempt to hack these failed quickly.
Librem5 / debs / pkg-chatty · GitLab has some pureos/0.8.0_rc0-1purism1 branch for Chrisom probably. But it seems that it would be difficult to build that either.
Please, report, if somebody knows about patches which solve Telegram problem on chatty 7.3 then it would be great or if Chrisom or some Postmarket OS on other distribution provides reasonable Librem 5 support.
I have tried to rebuild chatty pureos/0.8.0_rc0-1purism1, the pidgin preconfigured Telegram account is again in the list, but SIGSEGV is received again after enable
Thread 1 "chatty" received signal SIGSEGV, Segmentation fault.
0x0000fffff79abdcc in purple_chat_get_name () from /lib/libpurple.so.0
#0 0x0000fffff79abdcc in purple_chat_get_name () from /lib/libpurple.so.0
#1 0x0000aaaaaab07ca8 in ?? ()
#2 0x0000aaaaaab12f30 in chatty_item_compare ()
#3 0x0000fffff7151704 in ?? () from /lib/aarch64-linux-gnu/libgtk-4.so.1
#4 0x0000fffff7283dfc in ?? () from /lib/aarch64-linux-gnu/libgtk-4.so.1
#5 0x0000fffff73d1940 in ?? () from /lib/aarch64-linux-gnu/libgtk-4.so.1
#6 0x0000fffff73d36d4 in ?? () from /lib/aarch64-linux-gnu/libgtk-4.so.1
#7 0x0000fffff73d5cd4 in ?? () from /lib/aarch64-linux-gnu/libgtk-4.so.1
#8 0x0000fffff728417c in ?? () from /lib/aarch64-linux-gnu/libgtk-4.so.1
#9 0x0000fffff72846d0 in ?? () from /lib/aarch64-linux-gnu/libgtk-4.so.1
#10 0x0000fffff7284bcc in ?? () from /lib/aarch64-linux-gnu/libgtk-4.so.1
#11 0x0000fffff7e4a018 in g_closure_invoke () from /lib/aarch64-linux-gnu/libgobject-2.0.so.0
#12 0x0000fffff7e5d9e4 in ?? () from /lib/aarch64-linux-gnu/libgobject-2.0.so.0
#13 0x0000fffff7e63898 in g_signal_emit_valist () from /lib/aarch64-linux-gnu/libgobject-2.0.so.0
#14 0x0000fffff7e63e90 in g_signal_emit () from /lib/aarch64-linux-gnu/libgobject-2.0.so.0
#15 0x0000fffff7e4a018 in g_closure_invoke () from /lib/aarch64-linux-gnu/libgobject-2.0.so.0
#16 0x0000fffff7e5d9e4 in ?? () from /lib/aarch64-linux-gnu/libgobject-2.0.so.0
#17 0x0000fffff7e63898 in g_signal_emit_valist () from /lib/aarch64-linux-gnu/libgobject-2.0.so.0
#18 0x0000fffff7e63e90 in g_signal_emit () from /lib/aarch64-linux-gnu/libgobject-2.0.so.0
#19 0x0000aaaaaaad1978 in ?? ()
#20 0x0000aaaaaaad3774 in ?? ()
#21 0x0000fffff79af468 in purple_blist_add_chat () from /lib/libpurple.so.0
#22 0x0000ffffca62e984 in updateGroupChat(TdAccountData&, td::td_api::chat const&, td::tl::unique_ptr<td::td_api::ChatMemberStatus> const&, char const*, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) () from /usr/lib/purple-2/libtelegram-tdlib.so
#23 0x0000ffffca62eff8 in updateSupergroupChat(TdAccountData&, SupergroupId) () from /usr/lib/purple-2/libtelegram-tdlib.so
#24 0x0000ffffca5dcd9c in PurpleTdClient::updateChat(td::td_api::chat const*) () from /usr/lib/purple-2/libtelegram-tdlib.so
#25 0x0000ffffca5d6f40 in PurpleTdClient::processUpdate(td::td_api::Object&) () from /usr/lib/purple-2/libtelegram-tdlib.so
#26 0x0000ffffca60319c in TdTransceiverImpl::rxCallback(void*) () from /usr/lib/purple-2/libtelegram-tdlib.so
#27 0x0000fffff7b10ab4 in g_main_context_dispatch () from /lib/aarch64-linux-gnu/libglib-2.0.so.0
#28 0x0000fffff7b10e5c in ?? () from /lib/aarch64-linux-gnu/libglib-2.0.so.0
#29 0x0000fffff7b10f24 in g_main_context_iteration () from /lib/aarch64-linux-gnu/libglib-2.0.so.0
#30 0x0000fffff7cf1ef8 in g_application_run () from /lib/aarch64-linux-gnu/libgio-2.0.so.0
#31 0x0000aaaaaaacf2dc in main ()
Similar location as for 7.3…
I have rebuild much more packages than initially intended
chatty_0.8.0~rc0-1byzantium1_arm64.deb
libpurple-bin_2.14.13-2byzatium1_all.deb
libpurple-dev_2.14.13-2byzatium1_arm64.deb
libpurple0t64_2.14.13-2byzatium1_arm64.deb
pidgin-data_2.14.13-2byzatium1_all.deb
pidgin_2.14.13-2byzatium1_arm64.deb
purple-lurch_0.7.0-1_arm64.deb
purple-mm-sms_0.1.7-2byzatium1_arm64.deb
There is fun that libpurple0
package changes to libpurple0t64
in the latest Debian sources due ABI change for 64-bit time on 32-bit systems… But the SIGSEGV stays in the same place. I have tried to debug code a little, but I am not sure still what is problem cause. Relevant code
tdlib-purple/client-utils.cpp
static void updateGroupChat(TdAccountData &account, const td::td_api::chat &chat,
const td::td_api::object_ptr<td::td_api::ChatMemberStatus> &groupStatus,
const char *groupType, const std::string &groupId)
{
if (!isGroupMember(groupStatus)) {
purpleDebug("Skipping {} {} because we are not a member", {std::string(groupType), groupId});
return;
}
std::string chatName = getPurpleChatName(chat);
PurpleChat *purpleChat = purple_blist_find_chat(account.purpleAccount, chatName.c_str());
if (!purpleChat) {
purpleDebug("Adding new chat for {} {} ({})", {std::string(groupType), groupId, chat.title_});
purpleChat = purple_chat_new(account.purpleAccount, chat.title_.c_str(), getChatComponents(chat));
purple_blist_add_chat(purpleChat, NULL, NULL);
} else {
const char *oldName = purple_chat_get_name(purpleChat);
if (chat.title_ != oldName) {
purple_debug_misc(config::pluginId, "Renaming chat '%s' to '%s'\n", oldName, chat.title_.c_str());
purple_blist_alias_chat(purpleChat, chat.title_.c_str());
}
}
...
The failure appears in purple_blist_add_chat
when purple_chat_get_name
is called from chatty_item_compare
.
But the same libtelegram-tdlib.so
seems to work correctly in pidgin
without failures.
I have found the mainline Chatty with tdlib-purple issue (CRASH with tdlib-purple plugin
)
and I have added my findings there.