flathub / us.zoom.Zoom

https://flathub.org/apps/details/us.zoom.Zoom
36 stars 48 forks source link

Screensharing not working #22

Closed 5n00p4eg closed 2 years ago

5n00p4eg commented 5 years ago

Hi! I'm using fedora 29 with wayland.

I see a message:

Can not start share, we only support wayland on GNOME with Ubuntu(17,18), Fedora(25 to 29), Debain9, openSUSE LEap 15, Arch Linux. ....

I have clean f29 setup, zoom installed as flatpack from dl.flathub.org

After removing flatpack and reinstalling from zoom.us/support/download, everything works, including google login.

Version is same: 2.6.149990.1216

barthalion commented 5 years ago

From strace:

708   read(22</usr/lib/os-release>, "NAME=Freedesktop.org\nVERSION=\"18"..., 226) = 226
708   read(23</usr/lib/os-release>, "NAME=Freedesktop.org\nVERSION=\"18"..., 226) = 226
708   read(23</usr/lib/os-release>, "NAME=Freedesktop.org\nVERSION=\"18"..., 226) = 226
708   read(23</usr/lib/os-release>, "NAME=Freedesktop.org\nVERSION=\"18"..., 226) = 226
731   read(9</usr/lib/os-release>, "NAME=Freedesktop.org\nVERSION=\"18"..., 226) = 226
731   <... read resumed> "NAME=Freedesktop.org\nVERSION=\"18"..., 226) = 226
708   read(25</usr/lib/os-release>, "NAME=Freedesktop.org\nVERSION=\"18"..., 226) = 226
708   read(21</usr/lib/os-release>, "NAME=Freedesktop.org\nVERSION=\"18"..., 226) = 226
708   read(24</usr/lib/os-release>, "NAME=Freedesktop.org\nVERSION=\"18"..., 226) = 226
708   read(32</usr/lib/os-release>, "NAME=Freedesktop.org\nVERSION=\"18"..., 226) = 226
708   <... read resumed> "NAME=Freedesktop.org\nVERSION=\"18"..., 226) = 226
708   <... read resumed> "NAME=Freedesktop.org\nVERSION=\"18"..., 226) = 226
708   <... read resumed> "NAME=Freedesktop.org\nVERSION=\"18"..., 226) = 226
708   read(47</usr/lib/os-release>, "NAME=Freedesktop.org\nVERSION=\"18"..., 226) = 226

Unfortunately /usr/lib/os-release isn't writable so it can't be faked this way.

matthiasclasen commented 5 years ago

You could try to put an /etc/os-release. That is supposed to take precedence over /usr/lib/os-release

nanonyme commented 5 years ago

FD.o ships /etc/os-release already because many software directly read /etc/os-release without reading /usr/lib/os-release first.

matthiasclasen commented 5 years ago

Maybe there is a case for a way to override the OS identity in sandbox setup ?

We bend over backwards for proprietary software already...

nanonyme commented 5 years ago

Do you imply a new feature in Flatpak itself?

nanonyme commented 5 years ago

I guess you people already made sure there were no parameters to disable the OS detection.

matthiasclasen commented 5 years ago

Do you imply a new feature in Flatpak itself?

Yes, this would be an addition to flatpak override, I guess:

flatpak override --pretend-to-be="Fedora 29"
nanonyme commented 5 years ago

strings zoom |less

/etc/os-release
PRETTY_NAME=
VERSION_ID=
lsb_release -a
Description:
Distributor ID:
Release:
linuxmint
centos linux
centos
opensuse leap
elementary os
arch linux
hyperbola
Unknown Linux
openbox
pantheon
x-cinnamon
icewm
unity
oracle linux server
debian gnu/linux
parabola
red hat enterprise linux server
nanonyme commented 5 years ago

It actually supports quite a lot of things. Maybe they would add freedesktop.org if you asked nicely?

nanonyme commented 5 years ago

@matthiasclasen either that or having Flatpak be able to bind mount files from /app over files from /usr.

nanonyme commented 5 years ago

That would in general be useful, like you could bind mount /app/bin/foo to /usr/bin/foo where application has hardcoded the path.

matthiasclasen commented 5 years ago

that sounds like it has more potential to break things than just lying about the OS

nanonyme commented 5 years ago

Maybe. Anyhow, I dislike the override way to do this because that means Flatpak apps will not work out of the box and people keep reporting bugs. This kind of quirks would be nice to bake into the application manifest itself.

barthalion commented 5 years ago

Yes, I plan to contact support next week.

You could try to put an /etc/os-release. That is supposed to take precedence over /usr/lib/os-release

I think I have seen only /usr/lib/os-release in strace, file in /etc gets ignored.

matthiasclasen commented 5 years ago

Maybe. Anyhow, I dislike the override way to do this because that means Flatpak apps will not work out of the box and people keep reporting bugs. This kind of quirks would be nice to bake into the application manifest itself.

I only mentioned override as an example - if we add a way to to this, it would be available in finish-args as well.

matthiasclasen commented 5 years ago

I think I have seen only /usr/lib/os-release in strace, file in /etc gets ignored.

That would be a bug to report to them. The documentation for os-release says to look in /etc first

5n00p4eg commented 5 years ago

Nice to see very fast responses. Just finished ticket with Zoom.

I gave them a link to this issue.

nanonyme commented 5 years ago

It would be by far best conclusion if they just agreed to whitelist us imo. Preferably ignoring version since users will only ever have one runtime version with the app.

dac73 commented 5 years ago

Even if you adjust /etc/os-release to match F29 it still doesn't work on Wayland, e.g. you can only share a whiteboard. I also added --socket=wayland override. Recap with mocked os-release file

nanonyme commented 5 years ago

Created https://gitlab.com/freedesktop-sdk/freedesktop-sdk/issues/685

nanonyme commented 5 years ago

Note you still need to file a bug on Zoom to make it prefer /etc/os-release

dac73 commented 5 years ago

Didn't get your last comment, Zoom is reading from /etc/os-release (check my comment)

nanonyme commented 5 years ago

@barthalion said above that it doesn't

dac73 commented 5 years ago

Without mocking /etc/os-release I get a warning message about the wrong distro, with mocking /etc/os-release I get pass that message but can't pick a screen to share (this is fairly easy to test, just get into sandbox, replace /etc/os-release, which is link, with a normal file)

philbates35 commented 5 years ago

Its been a few months now since the last comment and this is still an issue - does anyone have any idea what the situation is?

barthalion commented 5 years ago

@5n00p4eg Has the support answered?

5n00p4eg commented 5 years ago

@barthalion Jordan Reynolds from support recommend me to use rpm version.

And about this issue:

I will send it over to our documentation team for further review, so that we do not run across this issue again.

Then my ticket was closed =(

5n00p4eg commented 5 years ago

Maybe we need more tickets to their bug tracker ? )

philbates35 commented 5 years ago

Maybe we need more tickets to their bug tracker ? )

@barthalion do you think its worth creating another support ticket with them with another link to this thread and and outline of the changes we want them to make, and reasons why the way it currently is causes us issues?

I don't really understand enough about flatpaks so be able to explain why its an issue and the changes they need to make for this to be solved, so it probably makes more sense for someone else to submit a new ticket than me.

punk-dev-robot commented 5 years ago

I have similar problem but can't even pass the popup :( I'm on antergos and have ID_LIKE="arch" in my /etc/os-release but still getting popup saying it's not supported on my distro :(

lsunsi commented 5 years ago

I think Wayland itself does not support screen sharing as Zoom wants it to, so the app checks that it's running on wayland and blocks the feature. Fedora is wayland by default, but on the login screen you can select the Gnome on Xorg and screen sharing should work, flatpak installer or not. Am I missing something? :D

nanonyme commented 5 years ago

@kuba-gaj check flatpak run --command=cat us.zoom.Zoom /etc/os-release

punk-dev-robot commented 5 years ago

Thanks @nanonyme for suggestion, I got new laptop since then and put arch on it. Screen sharing still doesn't work on wayland but it's another issue.

hnioche commented 5 years ago

Thanks @nanonyme for suggestion, I got new laptop since then and put arch on it. Screen sharing still doesn't work on wayland but it's another issue.

Screen sharing on wayland works in arch when you install Zoom using the AUR package rather than the flatpak one. At least it works for me with Gnome.

nanonyme commented 5 years ago

It would probably be a good idea to push this app to 19.08. The screensharing story with 18.08 on Wayland will always be worse than native due to lack of Pipewire (Zoom is likely to eventually grow support)

thomas-k-git commented 5 years ago

Not 100% sure if this belongs here: but I got the same error after a debian dist upgrade 9 -> 10. Although I never used flatpack and always only used the download from zoom.us/support/download the workaround of apt remove zoom and reinstall freshly from the zoom homepage worked for me.

fcelda commented 5 years ago

To override the distribution version check, you can set enableWaylandShare=true in ~/.config/zoomus.conf (that is ~/.var/app/us.zoom.Zoom/config/zoomus.conf in Flatpak). I've been told by the Zoom support that I can use it to workaround the Wayland support check on my Fedora 31 before they update the application.

However, I think there is still some other problem specific to the Flatpak. The screen sharing appears to work but the other attendees do not see anything. Everything works with the same version installed from the official RPM.

nanonyme commented 5 years ago

@fcelda did they provide any solution that could be set through wrapper or manifest? Is there some documentation on which config files get read and which environment variables used?

fcelda commented 5 years ago

@nanonyme No, that's all I've got. Sorry.

Arxcis commented 4 years ago

Bump!

VivianMeally commented 4 years ago

Bump!

sramkrishna commented 4 years ago

I think we'll need to figure this out since I don't want people reverting to the X session to share their desktops and now that we have a pandemic - the use of screensharing is going to be exponential because even casual users are going to use it because of social distancing.

nanonyme commented 4 years ago

Well, there is a solution. Sort of. It's a per-use override :(

sramkrishna commented 4 years ago

That's fine, as long as there is one.. we can work on fixing it on the long term.

nanonyme commented 4 years ago

Well, you asked for "figuring out". Situation is unchanged since https://github.com/flathub/us.zoom.Zoom/issues/22#issuecomment-546353091

x80486 commented 4 years ago

Did you test any of the "tricks" here? Because none works for me.

nanonyme commented 4 years ago

I'm sorry to say that this is also not permanently fixable without removing the --fileystem=home permission that this app should not really have anyway.

nanonyme commented 4 years ago

How I would fix this is

  1. Properly sandbox app
  2. Ship zoomus.conf with proper config as /app/etc/zoomus.conf
  3. Create symlink from ~/config/zoomus.conf to /app/etc/zoomus.conf if ~/config/zoomus.conf does not exist (this needs to be done in wrapper)

This allows having app-level configuration file.

nanonyme commented 4 years ago

Please test scratch build from linked PR to see if it fixes the problem.

matthiasclasen commented 4 years ago

same result as https://github.com/flathub/us.zoom.Zoom/issues/22#issuecomment-470560735 with the scratch build, for me