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

chromium: add rtc_use_pipewire #89565

Merged
merged 2 commits into from Jun 7, 2020

Conversation

jsravn
Copy link
Contributor

@jsravn jsravn commented Jun 5, 2020

This provides the browser flag #enable-webrtc-pipewire-capturer, which
adds support for screensharing on Wayland via xdg-desktop-portal.

The browser flag is disabled by default until a user enables it. At
least one other major distribution (Arch) enables this compile time
option, and so I believe it should be safe to enable by default.

This is also needed to support xdg-desktop-portal-wlr which was added in
#83485.

Motivation for this change

Fix #89528.
Related to #83485.

Things done
  • Tested using sandboxing (nix.useSandbox on NixOS, or option sandbox in nix.conf on non-NixOS linux)
  • Built on platform(s)
    • NixOS
    • macOS
    • other Linux distributions
  • Tested via one or more NixOS test(s) if existing and applicable for the change (look inside nixos/tests)
  • Tested compilation of all pkgs that depend on this change using nix-shell -p nixpkgs-review --run "nixpkgs-review wip"
  • Tested execution of all binary files (usually in ./result/bin/)
  • Determined the impact on package closure size (by running nix path-info -S before and after)
  • Ensured that relevant documentation is up to date
  • Fits CONTRIBUTING.md.

This provides the browser flag #enable-webrtc-pipewire-capturer, which
adds support for screensharing on Wayland via xdg-desktop-portal.

The browser flag is disabled by default until a user enables it. At
least one other major distribution (Arch) enables this compile time
option, and so I believe it should be safe to enable by default.

This is also needed to support xdg-desktop-portal-wlr which was added in
NixOS#83485.
@flokli
Copy link
Contributor

flokli commented Jun 5, 2020

As mentioned in #89528 (comment), building takes a while, so we don't know yet if that's all necessary to get it working ;-)

@@ -17,6 +17,7 @@
, protobuf, speechd, libXdamage, cups
, ffmpeg, libxslt, libxml2, at-spi2-core
, jre
, pipewire_0_2
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Haven't yet built this, but are you sure this is pipewire_0_2 for all three channels?

I ran into some version incompatibility warnings when running pipewire 0.3 and google-chrome-stable (so I'd expect chrome to be built with pipewire_0_2, but beta and dev might use pipewire

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

We can't really check with chromiumBeta and chromiumDev, as they're broken currently on master, too: #89615

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Yes I'm fairly certain it uses pipewire_0_2. Other distros which enable this all build against pipewire 0.2 and from the chromium source it doesn't look like they've updated for 0.3.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

An easy way to test is to add the pipewire 0.3 runtime dependency to the binary packages and see if it can use it (when I try, it fails - it only works with pipewire 0.2).

@flokli flokli mentioned this pull request Jun 6, 2020
22 tasks
@flokli
Copy link
Contributor

flokli commented Jun 6, 2020

Can you drop 1535270?

We shouldn't need to do this, but instead do #89611.

@jsravn
Copy link
Contributor Author

jsravn commented Jun 7, 2020

@flokli without 1535270 the webrtc pipewire flag does not appear. It seems that pipewire needs to be in the chromium library path for this flag to be made available (it's the same on Arch - without libpipewire02 on the global lib path, it won't work - see https://www.archlinux.org/packages/extra/x86_64/chromium/).

@flokli
Copy link
Contributor

flokli commented Jun 7, 2020 via email

@flokli flokli merged commit 495cf5f into NixOS:master Jun 7, 2020
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

chromium is missing pipewire / #enable-webrtc-pipewire-capturer flag
2 participants