Skip to content

chromium: add rtc_use_pipewire#89565

Merged
flokli merged 2 commits intoNixOS:masterfrom
jsravn:enable-chromium-rtc-use-pipewire
Jun 7, 2020
Merged

chromium: add rtc_use_pipewire#89565
flokli merged 2 commits intoNixOS:masterfrom
jsravn:enable-chromium-rtc-use-pipewire

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.
@jsravn jsravn force-pushed the enable-chromium-rtc-use-pipewire branch from df9cd63 to fae468b Compare June 5, 2020 20:05
@ofborg ofborg bot added 10.rebuild-darwin: 0 This PR does not cause any packages to rebuild on Darwin. 10.rebuild-linux: 1-10 This PR causes between 1 and 10 packages to rebuild on Linux. 10.rebuild-linux: 1 This PR causes 1 package to rebuild on Linux. labels Jun 5, 2020
@flokli
Copy link
Member

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 ;-)

, protobuf, speechd, libXdamage, cups
, ffmpeg, libxslt, libxml2, at-spi2-core
, jre
, pipewire_0_2
Copy link
Member

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
Member

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
Member

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
Member

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

Labels

10.rebuild-darwin: 0 This PR does not cause any packages to rebuild on Darwin. 10.rebuild-linux: 1-10 This PR causes between 1 and 10 packages to rebuild on Linux. 10.rebuild-linux: 1 This PR causes 1 package to rebuild on Linux.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

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

2 participants