[Bug 1172903] New: Screen share doesn't work in WebRTC on Wayland (missíng libpipewire-0_2)
http://bugzilla.opensuse.org/show_bug.cgi?id=1172903 Bug ID: 1172903 Summary: Screen share doesn't work in WebRTC on Wayland (missíng libpipewire-0_2) Classification: openSUSE Product: openSUSE Tumbleweed Version: Current Hardware: Other OS: Other Status: NEW Severity: Normal Priority: P5 - None Component: GNOME Assignee: gnome-bugs@suse.de Reporter: mmrmartin@gmail.com QA Contact: qa-bugs@suse.de Found By: --- Blocker: --- Hi, Tumbleweed doesn't have `libpipewire-0_2` so screen sharing (no longer) works. Both Google Chrome and Firefox share the same WebRTC implementation. I wasn't able to get it running on any of them. Step to reproduce (in Google Chrome): 1. sudo zypper in xdg-desktop-portal-gtk pipewire 2. enable chrome://flags/#enable-webrtc-pipewire-capturer 3. Test screen share in https://www.webrtc-experiment.com/Pluginfree-Screen-Sharing 4. The shared screen is black (and it doesn't work) According to a Chromium upstream issue,<https://bugs.chromium.org/p/chromium/issues/detail?id=1067113> Chrome needs libpipewire02 but Tumbleweed is shipping libpipewire03 only <https://software.opensuse.org/search?q=libpipewire>. I wasn't able to install the older version because of a missing dependency. According to a few comments pipewire 0.3 can work with libpipewire 0.2: - https://bugs.chromium.org/p/chromium/issues/detail?id=1067113#c12 - https://bugzilla.mozilla.org/show_bug.cgi?id=1430775#c26 Can we have libpipewire-0_2 in Tumbleweed repositories too? Upstream bugs: - https://bugs.chromium.org/p/chromium/issues/detail?id=1067113 - https://bugzilla.mozilla.org/show_bug.cgi?id=1430775 Chromium patch in openSUSE Factory: - https://build.opensuse.org/package/view_file/openSUSE:Factory/chromium/build... -- You are receiving this mail because: You are on the CC list for the bug.
http://bugzilla.opensuse.org/show_bug.cgi?id=1172903 Martin Mareš <mmrmartin@gmail.com> changed: What |Removed |Added ---------------------------------------------------------------------------- URL| |https://bugs.chromium.org/p | |/chromium/issues/detail?id= | |1067113, | |https://bugzilla.mozilla.or | |g/show_bug.cgi?id=1430775 -- You are receiving this mail because: You are on the CC list for the bug.
http://bugzilla.opensuse.org/show_bug.cgi?id=1172903 http://bugzilla.opensuse.org/show_bug.cgi?id=1172903#c1 Atri Bhattacharya <badshah400@gmail.com> changed: What |Removed |Added ---------------------------------------------------------------------------- CC| |alarrosa@suse.com, | |badshah400@gmail.com, | |wolfgang@rosenauer.org Component|GNOME |Other Assignee|gnome-bugs@suse.de |screening-team-bugs@suse.de --- Comment #1 from Atri Bhattacharya <badshah400@gmail.com> --- (In reply to Martin Mareš from comment #0)
Can we have libpipewire-0_2 in Tumbleweed repositories too?
Upstream bugs: - https://bugs.chromium.org/p/chromium/issues/detail?id=1067113 - https://bugzilla.mozilla.org/show_bug.cgi?id=1430775
Chromium patch in openSUSE Factory: - https://build.opensuse.org/package/view_file/openSUSE:Factory/chromium/build... with-pipewire-0.3.patch?expand=1
This patch should ensure chromium should work with pipewire 0.3. Why would you need pipewire 0.2 then? I tested the current status on my TW system from a GNOME Wayland session. Screen-sharing indeed still does not work, but there are different reasons for this: * For chromium, as you have noted, we do have a patch to build against pipewire 0.3. So, if you have the right helper applications installed, the wayland screen-share dialogs show up when asking for screen share, but then it ends up with a black screen anyway. Not sure if the issue is that it sets `rtc_use_pipewire_version = "0.2"` where perhaps it should set it to "0.3", like fedora does here: https://src.fedoraproject.org/rpms/chromium/blob/master/f/chromium-80.0.3987.... * For firefox we don't seem to have any patch to enable pipewire support, so it doesn't even trigger the wayland screen share dialogs. Fedora has a patch for version pipewire 0.3, see https://src.fedoraproject.org/rpms/firefox/blob/master/f/firefox-pipewire-0-...; perhaps we could reuse this. Btw, I have pkgs for pipewire02 in my home repository now (or shortly -- still bulding): https://software.opensuse.org//download.html?project=home%3Abadshah400&package=pipewire02 Installing them doesn't help however (as I expected). In any case, not a GNOME bug. CC-ing Antonio who wrote the patch to build chromium with pipewire 0.3 and Wolfgang who maintains firefox. -- You are receiving this mail because: You are on the CC list for the bug.
http://bugzilla.opensuse.org/show_bug.cgi?id=1172903 http://bugzilla.opensuse.org/show_bug.cgi?id=1172903#c2 Atri Bhattacharya <badshah400@gmail.com> changed: What |Removed |Added ---------------------------------------------------------------------------- URL|https://bugs.chromium.org/p |https://mozilla.github.io/w |/chromium/issues/detail?id= |ebrtc-landing/gum_test.html |1067113, | |https://bugzilla.mozilla.or | |g/show_bug.cgi?id=1430775 | See Also| |https://bugzilla.mozilla.or | |g/show_bug.cgi?id=1430775 --- Comment #2 from Atri Bhattacharya <badshah400@gmail.com> --- URL should point to website where the problem is seen, not to related bug reports. -- You are receiving this mail because: You are on the CC list for the bug.
http://bugzilla.opensuse.org/show_bug.cgi?id=1172903 http://bugzilla.opensuse.org/show_bug.cgi?id=1172903#c3 --- Comment #3 from Wolfgang Rosenauer <wolfgang@rosenauer.org> --- I'm not at all into the topic. Seems that pipewire support in WebRTC is not enabled at all in our current Firefox. Anyone knows if enabling pipewire support would interfere with non-wayland mode in Firefox? Fedora provides two Firefox packages but we don't as of today. We have one package selecting wayland/non-wayland on the runtime. -- You are receiving this mail because: You are on the CC list for the bug.
http://bugzilla.opensuse.org/show_bug.cgi?id=1172903 http://bugzilla.opensuse.org/show_bug.cgi?id=1172903#c4 --- Comment #4 from Atri Bhattacharya <badshah400@gmail.com> --- It should not affect non-wayland sessions as far as I know. But you can try for yourself from my home branch where I have added the fedora patch: https://build.opensuse.org/package/show/home:badshah400:branches:mozilla:Fac... -- You are receiving this mail because: You are on the CC list for the bug.
http://bugzilla.opensuse.org/show_bug.cgi?id=1172903 http://bugzilla.opensuse.org/show_bug.cgi?id=1172903#c5 --- Comment #5 from Atri Bhattacharya <badshah400@gmail.com> --- (In reply to Atri Bhattacharya from comment #4)
It should not affect non-wayland sessions as far as I know. But you can try for yourself from my home branch where I have added the fedora patch: https://build.opensuse.org/package/show/home:badshah400:branches:mozilla: Factory/MozillaFirefox
Btw note that you have to manually run `pipewire` from the command line before you test screen sharing from the browser. -- You are receiving this mail because: You are on the CC list for the bug.
http://bugzilla.opensuse.org/show_bug.cgi?id=1172903 http://bugzilla.opensuse.org/show_bug.cgi?id=1172903#c6 --- Comment #6 from Wolfgang Rosenauer <wolfgang@rosenauer.org> --- While preparing Firefox to include that: Is there any practical use of having pipewire support in 15.x? Is wayland at all available and functional there? -- You are receiving this mail because: You are on the CC list for the bug.
http://bugzilla.opensuse.org/show_bug.cgi?id=1172903 http://bugzilla.opensuse.org/show_bug.cgi?id=1172903#c7 --- Comment #7 from Atri Bhattacharya <badshah400@gmail.com> --- (In reply to Wolfgang Rosenauer from comment #6)
While preparing Firefox to include that: Is there any practical use of having pipewire support in 15.x? Is wayland at all available and functional there?
15.2 yes I think so, especially given most meetings are online these days due to circumstances. For 15.1 (which still has pipewire 0.2.x) not so much because I think mutter isn't even built with pipewire support there. I just tested build number 841.1 from my branch and screen sharing just works from a GNOME Wayland session on TW (provided you have pipewire running first, but this isn't for the browser to deal with). I can test on GNOME X11 shortly too, but I'd think combinations of other desktop env + Wayland/X11 sessions are needed before I send you the sr. -- You are receiving this mail because: You are on the CC list for the bug.
http://bugzilla.opensuse.org/show_bug.cgi?id=1172903 http://bugzilla.opensuse.org/show_bug.cgi?id=1172903#c8 --- Comment #8 from Wolfgang Rosenauer <wolfgang@rosenauer.org> --- If you are looking into it, please rebase your work on mozilla:beta/firefox78 Releasedate for 78 (which will be ESR) is in two weeks already and we are currently working already to merge SLE requirements back to the TW/Factory version. -- You are receiving this mail because: You are on the CC list for the bug.
http://bugzilla.opensuse.org/show_bug.cgi?id=1172903 http://bugzilla.opensuse.org/show_bug.cgi?id=1172903#c9 Atri Bhattacharya <badshah400@gmail.com> changed: What |Removed |Added ---------------------------------------------------------------------------- Summary|Screen share doesn't work |Screen share doesn't work |in WebRTC on Wayland |in WebRTC on Wayland |(missíng libpipewire-0_2) | --- Comment #9 from Atri Bhattacharya <badshah400@gmail.com> --- (In reply to Wolfgang Rosenauer from comment #8)
If you are looking into it, please rebase your work on mozilla:beta/firefox78
Releasedate for 78 (which will be ESR) is in two weeks already and we are currently working already to merge SLE requirements back to the TW/Factory version.
OK, I'll leave the current branch in my home project which is version 77 for further testing, but will send you the sr for version 78 if X11 session tests turn out all right. -- You are receiving this mail because: You are on the CC list for the bug.
http://bugzilla.opensuse.org/show_bug.cgi?id=1172903 http://bugzilla.opensuse.org/show_bug.cgi?id=1172903#c10 --- Comment #10 from Martin Mareš <mmrmartin@gmail.com> --- (In reply to Atri Bhattacharya from comment #1)
This patch should ensure chromium should work with pipewire 0.3. Why would you need pipewire 0.2 then? I'm more Google Chrome user so I wanted to get it running without a patch ;-) but maybe it's time to move to Chromium... I was also thinking about Electron apps (like Skype and MS Teams) where the patch cannot be easily applied (but I don't know how it works there) :-/
URL should point to website where the problem is seen, not to related bug reports.
Thanks for clarification ;-) I have been thinking what is the difference...
Btw, I have pkgs for pipewire02 in my home repository now (or shortly -- still bulding): https://software.opensuse.org//download. html?project=home%3Abadshah400&package=pipewire02 Installing them doesn't help however (as I expected).
I tested it too and Google Chrome even crashed in my case (There was something with Sandboxing). Chromium behaved as yours.
Not sure if the issue is that it sets `rtc_use_pipewire_version = "0.2"` where perhaps it should set it to "0.3", like fedora does here: https://src.fedoraproject.org/rpms/chromium/blob/master/f/chromium-80.0.3987....
I have been looking through journalctl and I fond an error msg that is caused by hardcoded `libpipewire-0.2.so.1` in Chromium's `base_capturer_pipewire.cc`. Patch in openSUSE Factory didn't update it: https://chromium.googlesource.com/external/webrtc/+/master/modules/desktop_c... I tried to make a sim-link to libpipewire-0.3.so.0 (expecting we have new 0.3 API pointing to 0.2 lib) but it didn't help me. -- You are receiving this mail because: You are on the CC list for the bug.
http://bugzilla.opensuse.org/show_bug.cgi?id=1172903 http://bugzilla.opensuse.org/show_bug.cgi?id=1172903#c11 --- Comment #11 from Atri Bhattacharya <badshah400@gmail.com> --- (In reply to Martin Mareš from comment #10)
(In reply to Atri Bhattacharya from comment #1)
This patch should ensure chromium should work with pipewire 0.3. Why would you need pipewire 0.2 then? I'm more Google Chrome user so I wanted to get it running without a patch ;-) but maybe it's time to move to Chromium... I was also thinking about Electron apps (like Skype and MS Teams) where the patch cannot be easily applied (but I don't know how it works there) :-/
I see. I suppose we ought to try and see if simply having a parallel installable pipewire-modules = 0.2.x does solve this.
Btw, I have pkgs for pipewire02 in my home repository now (or shortly -- still bulding): https://software.opensuse.org//download. html?project=home%3Abadshah400&package=pipewire02 Installing them doesn't help however (as I expected).
I tested it too and Google Chrome even crashed in my case (There was something with Sandboxing).
That is surprising. Did you install the pipewire02-modules package? That is what you will need. I also want to keep this compat package as small as possible, so I remove several components from it assuming they aren't needed for WebRTC directly. I can try restoring them back one by one and see if that helps. It would be helpful if you leave your comments about this package here: https://build.opensuse.org/package/show/home:badshah400/pipewire02 instead of this bug, where we will continue to keep track of the progress in getting WebRTC on Wayland for chromium and firefox working.
I tried to make a sim-link to libpipewire-0.3.so.0 (expecting we have new 0.3 API pointing to 0.2 lib) but it didn't help me.
Yeah, this won't help. -- You are receiving this mail because: You are on the CC list for the bug.
http://bugzilla.opensuse.org/show_bug.cgi?id=1172903 http://bugzilla.opensuse.org/show_bug.cgi?id=1172903#c12 --- Comment #12 from Atri Bhattacharya <badshah400@gmail.com> --- (In reply to Martin Mareš from comment #10)
Btw, I have pkgs for pipewire02 in my home repository now (or shortly -- still bulding): https://software.opensuse.org//download. html?project=home%3Abadshah400&package=pipewire02 Installing them doesn't help however (as I expected).
I tested it too and Google Chrome even crashed in my case (There was something with Sandboxing).
Fixed with the latest iteration. Please give it a try. -- You are receiving this mail because: You are on the CC list for the bug.
http://bugzilla.opensuse.org/show_bug.cgi?id=1172903 http://bugzilla.opensuse.org/show_bug.cgi?id=1172903#c13 --- Comment #13 from Atri Bhattacharya <badshah400@gmail.com> --- (In reply to Atri Bhattacharya from comment #12)
Fixed with the latest iteration. Please give it a try.
Sorry for spamming this, but you will need the pipewire02-spa-plugins package too. -- You are receiving this mail because: You are on the CC list for the bug.
http://bugzilla.opensuse.org/show_bug.cgi?id=1172903 http://bugzilla.opensuse.org/show_bug.cgi?id=1172903#c14 --- Comment #14 from Atri Bhattacharya <badshah400@gmail.com> --- (In reply to Wolfgang Rosenauer from comment #8)
If you are looking into it, please rebase your work on mozilla:beta/firefox78
https://build.opensuse.org/request/show/814793 does this (you had already included both pipewire-0.2 and pipewire-0.3 patches, but we won't need the former since neither of the DE's support pipewire over wayland in Leap 15.1 and 15.2 already has pipewire 0.3). -- You are receiving this mail because: You are on the CC list for the bug.
http://bugzilla.opensuse.org/show_bug.cgi?id=1172903 http://bugzilla.opensuse.org/show_bug.cgi?id=1172903#c15 --- Comment #15 from Martin Mareš <mmrmartin@gmail.com> --- (In reply to Atri Bhattacharya from comment #11)
That is surprising. Did you install the pipewire02-modules package? That is what you will need.
No, I'm sorry. When I did it, the screen sharing started working fine in Google Chrome. I will sum it up: 1. sudo zypper in libpipewire-0_2-1 pipewire02-modules pipewire02-spa-plugins (from home:badshah400) 2. enable chrome://flags/#enable-webrtc-pipewire-capturer I didn't even have to start `pipewire`. I think it was started automatically by systemd, according to: systemctl --user status pipewire.socket
I also want to keep this compat package as small as possible, so I remove several components from it assuming they aren't needed for WebRTC directly. I can try restoring them back one by one and see if that helps. It would be helpful if you leave your comments about this package here: https://build.opensuse.org/package/show/home:badshah400/pipewire02 instead of this bug, where we will continue to keep track of the progress in getting WebRTC on Wayland for chromium and firefox working.
I see. Your pipewire02 works fine for Google Chrome, so this is probably resolved for me. I will test Firefox (or Chromium) when an x86_64 build finish. -- You are receiving this mail because: You are on the CC list for the bug.
http://bugzilla.opensuse.org/show_bug.cgi?id=1172903 http://bugzilla.opensuse.org/show_bug.cgi?id=1172903#c16 --- Comment #16 from Martin Mareš <mmrmartin@gmail.com> --- I have tested 78.0b8 from mozilla:/beta on Gnome (Wayland), Gnome (X11) and i3 (X11). Screen share works everywhere. There is still a need to start pipewire manually. I think pipewire should be started throught pipewire.service and pipewire.service is started by pipewire.socket. I found that our socket is disabled by default on my installation... $ systemctl --user status pipewire.socket ● pipewire.socket - Multimedia System Loaded: loaded (/usr/lib/systemd/user/pipewire.socket; disabled; vendor preset: disabled) ... When I enable that socket, screen share works fine even after a reboot (without any manual stuff) $ systemctl --user enable pipewire.socket Created symlink /home/martin/.config/systemd/user/sockets.target.wants/pipewire.socket → /usr/lib/systemd/user/pipewire.socket. There was a similar issue on Arch https://bugs.archlinux.org/task/59336, I think they enabled that socket in post_install and post_upgrade scripts. Maybe we should enable that somewhere too. It would be nice if screen share worked out of the box. Have a nice day! -- You are receiving this mail because: You are on the CC list for the bug.
http://bugzilla.opensuse.org/show_bug.cgi?id=1172903 http://bugzilla.opensuse.org/show_bug.cgi?id=1172903#c17 --- Comment #17 from Atri Bhattacharya <badshah400@gmail.com> --- (In reply to Martin Mareš from comment #16)
I have tested 78.0b8 from mozilla:/beta on Gnome (Wayland), Gnome (X11) and i3 (X11). Screen share works everywhere. There is still a need to start pipewire manually.
Thanks a lot for your testing. We may soon have pipewire0_2 directly in Tumbleweed too: https://build.opensuse.org/request/show/815383
I think pipewire should be started throught pipewire.service and pipewire.service is started by pipewire.socket. I found that our socket is disabled by default on my installation...
The problem is that we need to start pipewire only when a user logs in to a Wayland session; if we start it unconditionally at boot, it is yet another service running without doing anything for X11 users. -- You are receiving this mail because: You are on the CC list for the bug.
http://bugzilla.opensuse.org/show_bug.cgi?id=1172903 http://bugzilla.opensuse.org/show_bug.cgi?id=1172903#c19 Atri Bhattacharya <badshah400@gmail.com> changed: What |Removed |Added ---------------------------------------------------------------------------- Status|NEW |RESOLVED Resolution|--- |FIXED --- Comment #19 from Atri Bhattacharya <badshah400@gmail.com> --- Progress report: * Fixed chromium, patched to work with pipewire 0.3, is in TW since release 20200630. * Firefox 78 update for TW (coming soon) will include patch to enable pipewire 0.3 support. * pipewire 0.2.7 -- for apps that cannot be patched to work with pipewire 0.3 (google-chrome, other non free apps) -- is almost in TW (https://build.opensuse.org/request/show/815383). Let's close this bug for now, but feel free to reopen if something isn't working. -- You are receiving this mail because: You are on the CC list for the bug.
http://bugzilla.opensuse.org/show_bug.cgi?id=1172903 http://bugzilla.opensuse.org/show_bug.cgi?id=1172903#c20 Arnav Singh <opensuse@arnavion.dev> changed: What |Removed |Added ---------------------------------------------------------------------------- CC| |opensuse@arnavion.dev --- Comment #20 from Arnav Singh <opensuse@arnavion.dev> --- (In reply to Atri Bhattacharya from comment #19)
Progress report: * Firefox 78 update for TW (coming soon) will include patch to enable pipewire 0.3 support.
I checked the MozillaFirefox package from mozilla:Factory (78.0.1-842.1, the latest as of just now) on Tumbleweed, and it still doesn't link to pipewire or start it when testing screencasting with the gUM Test Page. Just to be certain, I checked the RPM metadata and it doesn't show it requiring pipewire. Also the build log for the package doesn't show it ever installing the `pkgconfig(libpipewire-0.3)` dependency. I'm not sure the check in the spec for sle_version > 1500 is correct for Tumbleweed. Shouldn't it be checking suse_version? -- You are receiving this mail because: You are on the CC list for the bug.
http://bugzilla.opensuse.org/show_bug.cgi?id=1172903 http://bugzilla.opensuse.org/show_bug.cgi?id=1172903#c21 Atri Bhattacharya <badshah400@gmail.com> changed: What |Removed |Added ---------------------------------------------------------------------------- Status|RESOLVED |REOPENED Resolution|FIXED |--- Flags| |needinfo?(wolfgang@rosenaue | |r.org) --- Comment #21 from Atri Bhattacharya <badshah400@gmail.com> --- (In reply to Arnav Singh from comment #20)
I checked the MozillaFirefox package from mozilla:Factory (78.0.1-842.1, the latest as of just now) on Tumbleweed, and it still doesn't link to pipewire or start it when testing screencasting with the gUM Test Page.
Just to be certain, I checked the RPM metadata and it doesn't show it requiring pipewire. Also the build log for the package doesn't show it ever installing the `pkgconfig(libpipewire-0.3)` dependency.
I'm not sure the check in the spec for sle_version > 1500 is correct for Tumbleweed. Shouldn't it be checking suse_version?
Hi Arnav, you are right. @Wolfgang The openSUSE version check needs to be corrected to similar to what it was for my sr. It seems like you want to avoid `%bcond_with/_without`, so using your macros it should be instead: ``` %if 0%{?suse_version} == 1500 && 0%{?sle_version} <= 150100 %define with_pipewire0_3 0 %else %define with_pipewire0_3 1 %endif ``` `%sle_version` is not defined for Tumbleweed (I think). -- You are receiving this mail because: You are on the CC list for the bug.
http://bugzilla.opensuse.org/show_bug.cgi?id=1172903 http://bugzilla.opensuse.org/show_bug.cgi?id=1172903#c22 Wolfgang Rosenauer <wolfgang@rosenauer.org> changed: What |Removed |Added ---------------------------------------------------------------------------- Flags|needinfo?(wolfgang@rosenaue |needinfo? |r.org) | --- Comment #22 from Wolfgang Rosenauer <wolfgang@rosenauer.org> --- Just submitted a fix to mozilla:Factory. Not sure how long it will take to build but someone could please cross check if it works as expected then. The conditional broke in https://github.com/openSUSE/firefox-maintenance/commit/7cd46137695300c201cae... by accident. And yes, TW does not have sle_version defined. -- You are receiving this mail because: You are on the CC list for the bug.
http://bugzilla.opensuse.org/show_bug.cgi?id=1172903 http://bugzilla.opensuse.org/show_bug.cgi?id=1172903#c23 --- Comment #23 from Arnav Singh <opensuse@arnavion.dev> --- (In reply to Wolfgang Rosenauer from comment #22)
Just submitted a fix to mozilla:Factory. Not sure how long it will take to build but someone could please cross check if it works as expected then.
It just finished (78.0.1-844.1), and I confirmed it works correctly. The gUM Test Page correctly starts up pipewire and the xdg-desktop-portal, etc, and I'm able to see the screen being shared. -- You are receiving this mail because: You are on the CC list for the bug.
http://bugzilla.opensuse.org/show_bug.cgi?id=1172903 http://bugzilla.opensuse.org/show_bug.cgi?id=1172903#c24 Wolfgang Rosenauer <wolfgang@rosenauer.org> changed: What |Removed |Added ---------------------------------------------------------------------------- Status|REOPENED |RESOLVED Resolution|--- |FIXED --- Comment #24 from Wolfgang Rosenauer <wolfgang@rosenauer.org> --- Submitted to Factory -- You are receiving this mail because: You are on the CC list for the bug.
participants (1)
-
bugzilla_noreply@suse.com