GyulyVGC / sniffnet

Comfortably monitor your Internet traffic 🕵️‍♂️
https://sniffnet.net
Apache License 2.0
18.34k stars 556 forks source link

Flags not present in Linux version 1.2.0 #186

Closed matbgn closed 1 year ago

matbgn commented 1 year ago

Describe the bug Country flags / icons don't show up on linux since version 1.2.0

To Reproduce Describe steps to reproduce the bug, e.g.: Install deb and open it

e.g.

sudo apt install libpcap-dev libpcap-dev libfontconfig libfontconfig1-dev libasound2-dev
cd ~/Downloads
pip install lastversion
wget https://github.com/GyulyVGC/sniffnet/releases/download/v$(lastversion \
GyulyVGC/sniffnet)/Sniffnet_Linux.deb
sudo dpkg -i Sniffnet_Linux.deb
rm Sniffnet_Linux.deb

Expected behavior Flags to be displayed

Screenshots image

Desktop (please complete the following information):

GyulyVGC commented 1 year ago

You have to use Sniffnet built against the glow-renderer branch to solve this issue. Some systems are not compatible with the default renderer and have this problem.

Are you able to build it yourself? (i.e., do you have Rust installed?) If you haven't let me know and I'll build the binary for you!

matbgn commented 1 year ago

Actually not (fresh dev machine) but will install it in the next few weeks. In the meantime, I will be glad if you could provide a binary as pre-release or something like that ;-)

GyulyVGC commented 1 year ago

@matbgn here you are a fresh build using the glow renderer.

sniffnet_1.2.0_amd64.deb.zip

Let me know if everything displays correctly.

matbgn commented 1 year ago

Tadaa !! Thanks, could you release a patched version (1.2.1?) for my colleagues (they use automated scripts to be up-to-date)?

GyulyVGC commented 1 year ago

Sorry I'm not understanding, could you be more specific? They use automated build script against the main branch? Couldn't just they target the glow-renderer branch instead?

matbgn commented 1 year ago

Yes, we use Releases provided by tags you publish https://github.com/GyulyVGC/sniffnet/releases

But if glow-renderer is ready for public, the question is why you don't publish it noop?

GyulyVGC commented 1 year ago

I've set up an automation workflow to package Sniffnet lately: https://github.com/GyulyVGC/sniffnet/actions/workflows/package.yml

You should be able to download the binaries produced by all the run of the workflow. I can manually run the workflow on demand against a branch of my choice, clicking on "Run workflow". I don't know if only repository admins can run it though.

If you can't run it, I can easily run it for you at every release.

Also, I'd be curious in knowing how you use Sniffnet. I'm super happy you are finding it helpful ❤️

image

matbgn commented 1 year ago

Why not simply merge into master and tag the versions to be downloadable? It's not really a great User Experience to build or dig into an Issue to get a working version.

Mainly for debug Network behavior respectively to have a quick overview on what's going on, regularly a step before using Wireshark

GyulyVGC commented 1 year ago

Why not simply merge into master and tag the versions to be downloadable? It's not really a great User Experience to build or dig into an Issue to get a working version.

It can't be merged: those are two separate alternatives and cannot coexist (main branch uses wgpu renderer, while the secondary branch uses glow renderer). I decided to keep wgpu as default one as recommended by iced: wgpu has generally a wider compatibility.

Mainly for debug Network behavior respectively to have a quick overview on what's going on, regularly a step before using Wireshark

I'm so happy to hear that. I had a quick view of what you are doing at At3flo and it's really interesting indeed. It's awesome to know you are effectively using Sniffnet. If you can and if you want to support Sniffnet's maintenance and development, you can consider a donation. I'm also open to cooperate with you in that case.

Don't feel pressured at all, it's just a friendly reminder and I'm happy you are finding Sniffnet useful independently from that! 🙌

matbgn commented 1 year ago

Ok... So it's a no-go for Ubuntu Desktop 22.04 on the main branch if I understand correctly ?

Will consider it but as I cannot give a simple way for my colleagues to test it also the traction will stay relatively low.

Any way thank very much

GyulyVGC commented 1 year ago

Ok... So it's a no-go for Ubuntu Desktop 22.04 on the main branch if I understand correctly ?

Not always. It doesn't depend only on the OS but also on the graphical adapter and other stuff. However, the gui library I'm using will soon update their renderer and hopefully that will work universally.

Will consider it but as I cannot give a simple way for my colleagues to test it also the traction will stay relatively low.

Don't worry. If there's something I can do besides that, feel free to let me know!

Closing the issue since the problem is already known and documented in the README, Troubleshooting section.

matbgn commented 1 year ago

Hummm issue is still "open" in a user perspective... I will prefer to have a notification when you close it after your dependency is really resolved...

GyulyVGC commented 1 year ago

I'll personally take care of advising you when I have updates! This issue is not strictly related to Sniffnet and is considered solved also by Iced, which suggests to use glow in case of problems.

GyulyVGC commented 1 year ago

@matbgn and here you are today's release built with the graphical renderer which works for you guys, in case you'd like to be up to date 👍

Sniffnet_LinuxDEB_amd64.deb.zip

matbgn commented 1 year ago

Ok still not working with master release, let me know when it will, no need to do extra work till then ;-)

GyulyVGC commented 1 year ago

Hi @matbgn! I'm coming back to you since recently Iced has finally overcome the limitations due to the graphical renderers and is now able to use a different renderer at runtime if the default one crashes. The alternative renderer is tiny-skia, a CPU-only renderer that should run everywhere.

In the following you can find a link to a version of Sniffnet based on the latest Iced release. In your case the default renderer didn't crash but the problem was only related to flags... so I don't know if it's solved in this specific case... It'd be awesome if you could kindly try it and let me know if everything is correctly displayed 🤞

https://github.com/GyulyVGC/sniffnet/suites/14755797018/artifacts/838922228

matbgn commented 1 year ago

Graphics are way cooler, but flags are still missing... Still thinking this issue should be kept open ;-)

GyulyVGC commented 1 year ago

So we are at the same point as before unfortunately... now the renderer is chosen at runtime but since wgpu doesn't crash in your case, the app sticks to it. Now the alternative renderer is tiny-skia instead of glow, but nothing changes from your point of view.

I should try to find a different solution at this point I guess, without using SVG/Image.

One possible fix is to use emoji which iced now supports, but I'm concerned with systems that by default have poor support for emoji country flags (Windows to name one).

GyulyVGC commented 11 months ago

Hey man @matbgn

I may finally have a suitable solution for you!

All you need to do is to set the environment variable ICED_BACKEND=tiny-skia. You can download the Sniffnet version from the release page and with this variable set, it'll automatically use the tiny-skia software renderer.

I hope this is an acceptable solution for you and your team. In this way, there is no need to make available further versions of the app and you'll still be able to use it without graphical compromises.

Let me know 😄

matbgn commented 10 months ago

Sorry for the delay.

I've tried out the release from the 8th of August and can confirm to you that it is working as expected with the correct flags being displayed for some weird reason :confetti_ball:

Great and thanks for the work and at least for the env var trick that could help in future

sang-shelton commented 8 months ago

Hey man @matbgn

I may finally have a suitable solution for you!

All you need to do is to set the environment variable ICED_BACKEND=tiny-skia. You can download the Sniffnet version from the release page and with this variable set, it'll automatically use the tiny-skia software renderer.

I hope this is an acceptable solution for you and your team. In this way, there is no need to make available further versions of the app and you'll still be able to use it without graphical compromises.

Let me know 😄

Worked like a charm, i just set the env variable in Menu Libre in Ubuntu

GyulyVGC commented 8 months ago

Worked like a charm, i just set the env variable in Menu Libre in Ubuntu

Amazing! Thanks for the feedback.

From the next release it should be able to work properly also without setting that environment variable!