[Bug]: libappindicator3.so.1 missing
Hoithmach opened this issue · 20 comments
What happened?
This may be outside the scope of the project. The application will fail to run if the libappindicator
package is not installed.
$ tar -xzvf chaldea-2.3.0-linux.tar.gz
$ ./chaldea
./chaldea: error while loading shared libraries: libappindicator3.so.1: cannot open shared object file: No such file or directory
Resolved by installing libappindicator
and then the application will launch as intended.
I am unable to select Linux as the platform on the bug report form.
Platform
All
Device Info
Linux 6.1
Which game server is related to this issue?
No response
App Version
2.3.0+938
Relevant log output
No response
It seems libappindicator
is removed in some Debian systems recent years. This is used by a plugin to show icon in system tray.
The feature is requested by one user. But I wonder does the app should keep it in system tray and background? 🤔
Thank you for your quick response. The system tray does work correctly if libappindicator
is installed. I can put the application into the background by selecting "Hide", and then return it to foreground with "Show". There are no problems with this.
If libappindicator
is not installed the application will not start. For users that launch the program graphically (e.g. by clicking on the executable) the cause of the problem may not be obvious.
There could be an additional line in README.md
that warns the user they need to have the package. Alternatively, a popup window or notification when the application is launched to tell the user it is not installed may be more appropriate. The problem with these solutions is if the user updates from 2.2.6 to 2.3.0 using the in-app update dialog then they will not see the additional requirement and may be confused as to why the application does not run afterwards (this is what happened to me). I am not sure what the preferred way of addressing this is. What do you think?
I did not realise libappindicator
package is named differently in Debian repositories to how it is on my distribution, so some of my comment in the issue post was incorrect. Apologies. I have edited it.
Your original solution by installing libappindicator-gtk3
is correct. libappindicator
I talked here is just its common name, libappindicator-gtk3
is the actual distribution package.
Didn't check(don't have linux) but sudo apt install libappindicator3-1
may also work. If you can check it by uninstall gtk3 and install 3-1, that would help!
I do add a readme.txt besides the chaldea executable just now. There may be more exceptions when running on linux. But we know linux users are much fewer and I don't have desktop Linux, so few feedback yet.
Thank you for the clarification of the naming.
I have just tested and the libappindicator3-1
package does work as a solution and the application launches successfully afterwards (although it seems to alias to libayatana-appindicator3-1
which is the actual package that installs).
$ ./chaldea
./chaldea: error while loading shared libraries: libappindicator3.so.1: cannot open shared object file: No such file or directory
$ sudo apt install libappindicator3-1
...
Note, selecting 'libayatana-appindicator3-1' instead of 'libappindicator3-1'
The following additional packages will be installed:
libayatana-ido3-0.4-0 libayatana-indicator3-7 libdbusmenu-glib4 libdbusmenu-gtk3-4
...
$ ./chaldea
(success)
A readme note should hopefully alert any other users of how to solve the issue if they encounter it. Perhaps it would also be appropriate to go in the Attentions section of your installation documentation?
Your continued support of the linux version of this program despite its small numbers of users is much appreciated. I am not currently aware of any other linux-specific issues, but will keep a look out for anything.
Added the readme, you can have a check in beta release after building completed.
Will also update docs later.
If you find any more linux specific setups/exceptions, be glad to receive your message!
I've just tested once more and verified the package naming properly. libappindicator-gtk3
is the package name on ArchLinux, but does not carry over to Debian-based environments. Debian, Ubuntu and Mint all definitely have libappindicator3-1
in their repositories, and installing it on Debian (11) as I described here does successfully fix the issue. I should've clarified this before, sorry.
As libayatana-appindicator3-1
is pulled by installing libappindicator3-1
and the project only officially supports Debian, maybe it would be best to state only sudo apt install libappindicator3-1
and remove the other two lines entirely?
Then just follow your sense, I have few experience on linux and only use server version ubuntu.
In that case, if you are happy with the adjustments I made, I think we have resolved this issue fully. Should I open a PR for the commit above or would you rather just make the changes alongside when you update the docs? Thank you for your time.
pr please, I will check again tomorrow. 😪
In flutter's doc Supported Platforms, it said supports Linux Debian, so I assume it's not supported in any non-debian system such as Arch/Fedora, right?
But in the flutter installation doc for dev, it only said Linux 64-bit
.
If it is truly only available for Debian, then is's fine to just declare libappindicator3-1
in readme.
Hope you can help figure it out, thanks!
Unfortunately I'm not sure I can give a completely definitive answer. It officially states support for Debian as a "deployment platform" but I am unsure of actual cross-distribution support for simply running the application. I've never encountered any issues running chaldea
on Arch besides this one, however that's not to say for certain that it counts as actual support.
If the application is built and tested within a Debian-based environment (Ubuntu, I think) then perhaps it is safest to keep the official statement as only Debian? I have seen software projects before that state that they only officially support Debian, but the software may be run in other Linux environments at the individual user's own discretion. Likely not the answer you were looking for but I hope some of what I said might be helpful. What are your thoughts on this?
Since you are using ArchLinux and chaldea can run on it, so I think it's fine to add it as an extra hint? similar with the first time I did.
# Debian
sudo apt install libappindicator3-1
# ArchLinux
# sudo apt install libappindicator-gtk3
If you are happy to extend support to Arch then that's great, and by all means go ahead. Even still, it is worth keeping potential caveats in mind going forward:
Since there are occasionally strange incompatibilities between different Linux environments I think it is up to how willing you are to offer wider support to other distributions. I don't want to inadvertently create more work for you if, for example in 6 months' time hypothetically, a future update makes some things break on a non-Debian system.
I could list reasons why I think it will probably be okay but I by no means have complete understanding, nor foresight into the direction of future development, so I don't want to offer false confidence. I hope that makes some sense?
I could check Fedora too later if you would like, since you mentioned it before?
You should be right. I have no guarantee to make it work on other linux distributions. Eeven for Debian, still lack of testing.
Would be better to leave it debian only in linux/readme.txt. But add another warning in docs below Installation-Supported platforms
. sth like "Other linux distributions are not tested, may be not well supported." what do you think?
Yes, something like that sounds sensible. It could even be an extra note such as:
Platform Minimum Version ... Linux Debian 10 & above¹ ... ¹ Chaldea on Linux is not officially supported outside of Debian-based Linux environments at this time, however users of other Linux variants may be successful in running the application on their system.
I'm sure you can phrase it better than I can.
This invites users of other flavors of Linux to attempt using Chaldea, but also hands off responsibility to the user of an unsupported distribution to make sure they have the correct environment for running the application.
Since v2.3.0, desktop app can be shown in system tray, and
libappindicator
is required in linux system. If it doesn't exist in your system, please install it before launching chaldea app, otherwise startup will fail silently.
This line from the docs you have written is already helpful for all Linux users as it prompts them to look for the libappindicator
package in their repositories. For Arch, this is as simple as searching that keyword with pacman -Qs
and I find what I'm looking for. Then for the officially supported Debian environments you have the tested example with the correct package name for Debian below in the README itself.
Slightly updated in docs-installation according to your suggestion.
And what about add the docs-installation link in linux/README under the headline?
The changes in docs-installation look good. I'd agree about adding a link in the readme; the more visibility the better. Thank you for taking the time to work on the documentation in such detail.
Added link in pr, if that's fine, I will merge it
Looks good to me. 👍
Thanks for testing and updating 💯