Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add nimf inputcontext plugin for linux version #5050

Merged
merged 2 commits into from Dec 6, 2018

Conversation

Projects
None yet
4 participants
@5HARK
Copy link
Contributor

commented Aug 3, 2018

Add nimf support(#2603)

nimf Qt IM Plugin Repo(for this PR): https://github.com/5HARK/im-nimf-qt5
Nimf Project Repo: https://gitlab.com/nimf-i18n/nimf

@CLAassistant

This comment has been minimized.

Copy link

commented Aug 3, 2018

CLA assistant check
All committers have signed the CLA.

@john-preston

This comment has been minimized.

Copy link
Member

commented Sep 1, 2018

I'm not sure I can merge that, because it adds a lot of new runtime dependencies. New shared library dependencies include:

libgio-2.0.so.0
libgobject-2.0.so.0
libgmodule-2.0.so.0
libz.so.1
libselinux.so.1
libresolv.so.2
libffi.so.6

That means that anyone without any of that libraries who will autoupdate Telegram Desktop will just get it not launching at all while working fine before the update.

@john-preston

This comment has been minimized.

Copy link
Member

commented Sep 1, 2018

After trying to get rid of those new dependencies I understood that the problem lies deeper.

I load either gtk3 or gtk2 depending on the appindicator library I was able to load. Then I resolve all the used gtk methods from the loaded shared library dynamically (like g_free, g_[signal_smth] etc). I'm afraid that this nimf plugin that is linked to gtk2 specifically will work unreliably if I load and use gtk3 myself and then use gtk2 in this plugin. Also it just wont work if gtk is absent.

To do that the right way I need a way to suggest my dynamically resolved gtk functions to the plugin and for plugin to work with them or just return false in check() if the functions were not loaded. This can be hacked inside the nimf plugin code, but I didn't yet figure out how to do that in a nice way. Some header sharing is required between nimf plugin and tdesktop code.

@john-preston

This comment has been minimized.

Copy link
Member

commented Sep 7, 2018

@5HARK Currently it brings new static dependencies. It should load the methods dynamically, otherwise I'm not sure that the app will continue working on the same systems it works right now.

@5HARK

This comment has been minimized.

Copy link
Contributor Author

commented Oct 23, 2018

@5HARK okay. i got it.
I will change im_nimf_qt5.cpp code for delete new static dependencies(glib, gio etc.)
and after that I will rewrite pull request again.

@5HARK

This comment has been minimized.

Copy link
Contributor Author

commented Nov 27, 2018

@john-preston
I updated nimf Qt IM Plugin Repo(for this PR): https://github.com/5HARK/im-nimf-qt5
Please review this PR again.

Me and Nimf developer delete all build dependencies for gio, gobject, gtk. its load these libs on runtime.

@5HARK 5HARK force-pushed the 5HARK:add_nimf_support branch from c51c7a2 to bef2740 Dec 3, 2018

@john-preston

This comment has been minimized.

Copy link
Member

commented Dec 6, 2018

Ok, I'll try to build it with the new plugin code.

@john-preston

This comment has been minimized.

Copy link
Member

commented Dec 6, 2018

It builds fine and doesn't add new dependencies. I hope there won't be any weird runtime problems after such update.

@john-preston john-preston merged commit 673962d into telegramdesktop:dev Dec 6, 2018

2 of 3 checks passed

continuous-integration/travis-ci/pr The Travis CI build failed
Details
continuous-integration/appveyor/pr AppVeyor build succeeded
Details
license/cla Contributor License Agreement is signed.
Details
@stek29

This comment has been minimized.

Copy link
Collaborator

commented Dec 7, 2018

Kiku-git added a commit to Kiku-git/tdesktop that referenced this pull request Feb 11, 2019

ErnyTech added a commit to ErnyTech/tdesktop that referenced this pull request Apr 22, 2019

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
You can’t perform that action at this time.