diff options
author | Jan Beich <jbeich@FreeBSD.org> | 2021-11-21 01:02:32 +0000 |
---|---|---|
committer | Jan Beich <jbeich@FreeBSD.org> | 2021-11-21 02:39:12 +0000 |
commit | 4dd7526ead6681463d6744d5f5d1940cb2fad551 (patch) | |
tree | 1dedd2757d32f1fb862caa7054b5f6a624ffd952 /www/firefox-esr/files | |
parent | dns/dnsdbq: Upgrade to version 2.6.0 (diff) |
www/firefox-esr: expose PipeWire support after c58401d4dda5
Should work on wlroots-based compositors. For example,
# pkg install firefox sway pam_xdg xdg-desktop-portal-wlr xdg-desktop-portal
# sysrc seatd_enable=YES
# service seatd start
# echo 'session optional pam_xdg.so notroot runtime' >>/etc/pam.d/system
$ exit # log out to pick up XDG_RUNTIME_DIR
<new login>
$ export XDG_CURRENT_DESKTOP=sway
$ export MOZ_ENABLE_WAYLAND=1
$ dbus-daemon --session --fork --address=unix:runtime=yes
$ sway
<GUI session>
$ dbus-update-activation-environment --all
$ daemon -f pipewire
$ firefox https://mozilla.github.io/webrtc-landing/gum_test.html
<click on "Screen Capture">
<select "Use operating system settings">
<click on "Allow" button>
<select via cursor the desired screen (output display)>
<notice the screen mirrored on the web page>
Diffstat (limited to 'www/firefox-esr/files')
-rw-r--r-- | www/firefox-esr/files/patch-bug1676134 | 122 |
1 files changed, 122 insertions, 0 deletions
diff --git a/www/firefox-esr/files/patch-bug1676134 b/www/firefox-esr/files/patch-bug1676134 new file mode 100644 index 000000000000..9abd1a03c7a4 --- /dev/null +++ b/www/firefox-esr/files/patch-bug1676134 @@ -0,0 +1,122 @@ +Enable Pipewire on BSDs + +diff --git third_party/libwebrtc/webrtc/modules/desktop_capture/desktop_capture_generic_gn/moz.build third_party/libwebrtc/webrtc/modules/desktop_capture/desktop_capture_generic_gn/moz.build +index a0e116195e0e..cbe27e94108b 100644 +--- third_party/libwebrtc/webrtc/modules/desktop_capture/desktop_capture_generic_gn/moz.build ++++ third_party/libwebrtc/webrtc/modules/desktop_capture/desktop_capture_generic_gn/moz.build +@@ -87,8 +87,13 @@ if CONFIG["OS_TARGET"] == "DragonFly": + DEFINES["USE_X11"] = "1" + DEFINES["WEBRTC_BSD"] = True + DEFINES["WEBRTC_POSIX"] = True ++ DEFINES["WEBRTC_USE_PIPEWIRE"] = True + DEFINES["_FILE_OFFSET_BITS"] = "64" + ++ LOCAL_INCLUDES += [ ++ "/third_party/pipewire/" ++ ] ++ + OS_LIBS += [ + "X11", + "X11-xcb", +@@ -103,11 +108,14 @@ if CONFIG["OS_TARGET"] == "DragonFly": + ] + + UNIFIED_SOURCES += [ ++ "/third_party/libwebrtc/webrtc/modules/desktop_capture/linux/base_capturer_pipewire.cc", + "/third_party/libwebrtc/webrtc/modules/desktop_capture/linux/desktop_device_info_x11.cc", + "/third_party/libwebrtc/webrtc/modules/desktop_capture/linux/mouse_cursor_monitor_x11.cc", ++ "/third_party/libwebrtc/webrtc/modules/desktop_capture/linux/screen_capturer_pipewire.cc", + "/third_party/libwebrtc/webrtc/modules/desktop_capture/linux/screen_capturer_x11.cc", + "/third_party/libwebrtc/webrtc/modules/desktop_capture/linux/shared_x_display.cc", + "/third_party/libwebrtc/webrtc/modules/desktop_capture/linux/shared_x_util.cc", ++ "/third_party/libwebrtc/webrtc/modules/desktop_capture/linux/window_capturer_pipewire.cc", + "/third_party/libwebrtc/webrtc/modules/desktop_capture/linux/window_capturer_x11.cc", + "/third_party/libwebrtc/webrtc/modules/desktop_capture/linux/window_finder_x11.cc", + "/third_party/libwebrtc/webrtc/modules/desktop_capture/linux/window_list_utils.cc", +@@ -124,8 +132,13 @@ if CONFIG["OS_TARGET"] == "FreeBSD": + DEFINES["USE_X11"] = "1" + DEFINES["WEBRTC_BSD"] = True + DEFINES["WEBRTC_POSIX"] = True ++ DEFINES["WEBRTC_USE_PIPEWIRE"] = True + DEFINES["_FILE_OFFSET_BITS"] = "64" + ++ LOCAL_INCLUDES += [ ++ "/third_party/pipewire/" ++ ] ++ + OS_LIBS += [ + "X11", + "X11-xcb", +@@ -140,11 +153,14 @@ if CONFIG["OS_TARGET"] == "FreeBSD": + ] + + UNIFIED_SOURCES += [ ++ "/third_party/libwebrtc/webrtc/modules/desktop_capture/linux/base_capturer_pipewire.cc", + "/third_party/libwebrtc/webrtc/modules/desktop_capture/linux/desktop_device_info_x11.cc", + "/third_party/libwebrtc/webrtc/modules/desktop_capture/linux/mouse_cursor_monitor_x11.cc", ++ "/third_party/libwebrtc/webrtc/modules/desktop_capture/linux/screen_capturer_pipewire.cc", + "/third_party/libwebrtc/webrtc/modules/desktop_capture/linux/screen_capturer_x11.cc", + "/third_party/libwebrtc/webrtc/modules/desktop_capture/linux/shared_x_display.cc", + "/third_party/libwebrtc/webrtc/modules/desktop_capture/linux/shared_x_util.cc", ++ "/third_party/libwebrtc/webrtc/modules/desktop_capture/linux/window_capturer_pipewire.cc", + "/third_party/libwebrtc/webrtc/modules/desktop_capture/linux/window_capturer_x11.cc", + "/third_party/libwebrtc/webrtc/modules/desktop_capture/linux/window_finder_x11.cc", + "/third_party/libwebrtc/webrtc/modules/desktop_capture/linux/window_list_utils.cc", +@@ -200,8 +216,13 @@ if CONFIG["OS_TARGET"] == "NetBSD": + DEFINES["USE_X11"] = "1" + DEFINES["WEBRTC_BSD"] = True + DEFINES["WEBRTC_POSIX"] = True ++ DEFINES["WEBRTC_USE_PIPEWIRE"] = True + DEFINES["_FILE_OFFSET_BITS"] = "64" + ++ LOCAL_INCLUDES += [ ++ "/third_party/pipewire/" ++ ] ++ + OS_LIBS += [ + "X11", + "X11-xcb", +@@ -216,11 +237,14 @@ if CONFIG["OS_TARGET"] == "NetBSD": + ] + + UNIFIED_SOURCES += [ ++ "/third_party/libwebrtc/webrtc/modules/desktop_capture/linux/base_capturer_pipewire.cc", + "/third_party/libwebrtc/webrtc/modules/desktop_capture/linux/desktop_device_info_x11.cc", + "/third_party/libwebrtc/webrtc/modules/desktop_capture/linux/mouse_cursor_monitor_x11.cc", ++ "/third_party/libwebrtc/webrtc/modules/desktop_capture/linux/screen_capturer_pipewire.cc", + "/third_party/libwebrtc/webrtc/modules/desktop_capture/linux/screen_capturer_x11.cc", + "/third_party/libwebrtc/webrtc/modules/desktop_capture/linux/shared_x_display.cc", + "/third_party/libwebrtc/webrtc/modules/desktop_capture/linux/shared_x_util.cc", ++ "/third_party/libwebrtc/webrtc/modules/desktop_capture/linux/window_capturer_pipewire.cc", + "/third_party/libwebrtc/webrtc/modules/desktop_capture/linux/window_capturer_x11.cc", + "/third_party/libwebrtc/webrtc/modules/desktop_capture/linux/window_finder_x11.cc", + "/third_party/libwebrtc/webrtc/modules/desktop_capture/linux/window_list_utils.cc", +@@ -237,8 +261,13 @@ if CONFIG["OS_TARGET"] == "OpenBSD": + DEFINES["USE_X11"] = "1" + DEFINES["WEBRTC_BSD"] = True + DEFINES["WEBRTC_POSIX"] = True ++ DEFINES["WEBRTC_USE_PIPEWIRE"] = True + DEFINES["_FILE_OFFSET_BITS"] = "64" + ++ LOCAL_INCLUDES += [ ++ "/third_party/pipewire/" ++ ] ++ + OS_LIBS += [ + "X11", + "X11-xcb", +@@ -253,11 +282,14 @@ if CONFIG["OS_TARGET"] == "OpenBSD": + ] + + UNIFIED_SOURCES += [ ++ "/third_party/libwebrtc/webrtc/modules/desktop_capture/linux/base_capturer_pipewire.cc", + "/third_party/libwebrtc/webrtc/modules/desktop_capture/linux/desktop_device_info_x11.cc", + "/third_party/libwebrtc/webrtc/modules/desktop_capture/linux/mouse_cursor_monitor_x11.cc", ++ "/third_party/libwebrtc/webrtc/modules/desktop_capture/linux/screen_capturer_pipewire.cc", + "/third_party/libwebrtc/webrtc/modules/desktop_capture/linux/screen_capturer_x11.cc", + "/third_party/libwebrtc/webrtc/modules/desktop_capture/linux/shared_x_display.cc", + "/third_party/libwebrtc/webrtc/modules/desktop_capture/linux/shared_x_util.cc", ++ "/third_party/libwebrtc/webrtc/modules/desktop_capture/linux/window_capturer_pipewire.cc", + "/third_party/libwebrtc/webrtc/modules/desktop_capture/linux/window_capturer_x11.cc", + "/third_party/libwebrtc/webrtc/modules/desktop_capture/linux/window_finder_x11.cc", + "/third_party/libwebrtc/webrtc/modules/desktop_capture/linux/window_list_utils.cc", |