From 40a348868b7f81d2b0e0599fd3955c32c0725306 Mon Sep 17 00:00:00 2001 From: Artur Sinila Date: Wed, 4 Nov 2020 02:42:23 +0300 Subject: [PATCH 1/2] New package: libpipewire0.2 --- srcpkgs/libpipewire0.2-devel | 1 + srcpkgs/libpipewire0.2/template | 41 +++++++++++++++++++++++++++++++++ 2 files changed, 42 insertions(+) create mode 120000 srcpkgs/libpipewire0.2-devel create mode 100644 srcpkgs/libpipewire0.2/template diff --git a/srcpkgs/libpipewire0.2-devel b/srcpkgs/libpipewire0.2-devel new file mode 120000 index 00000000000..456616f84ec --- /dev/null +++ b/srcpkgs/libpipewire0.2-devel @@ -0,0 +1 @@ +libpipewire0.2 \ No newline at end of file diff --git a/srcpkgs/libpipewire0.2/template b/srcpkgs/libpipewire0.2/template new file mode 100644 index 00000000000..9891b55f156 --- /dev/null +++ b/srcpkgs/libpipewire0.2/template @@ -0,0 +1,41 @@ +# Template file for 'libpipewire0.2' +pkgname=libpipewire0.2 +version=0.2.7 +revision=1 +wrksrc=pipewire-${version} +build_style=meson +configure_args="-Dgstreamer=disabled -Ddocs=false -Dsystemd=false" +hostmakedepends="pkg-config" +makedepends="dbus-devel alsa-lib-devel libudev-devel" +short_desc="Server and user space API to deal with multimedia pipelines (v0.2)" +maintainer="Artur Sinila " +license="MIT" +homepage="https://pipewire.org/" +changelog="https://gitlab.freedesktop.org/pipewire/pipewire/-/raw/master/NEWS" +distfiles="https://gitlab.freedesktop.org/pipewire/pipewire/-/archive/${version}/pipewire-${version}.tar.gz" +checksum=bfaa0f6ae6c0791e2e0b59234d399753bf24f1b33dbf587682363a8463dd8df1 +#conf_files="/etc/pipewire/pipewire.conf" + +if [ "$XBPS_TARGET_NO_ATOMIC8" ]; then + makedepends+=" libatomic-devel" + LDFLAGS+=" -latomic" +fi + +post_install() { + rm -r ${DESTDIR}/{etc,usr/bin} + mv ${DESTDIR}/usr/include/pipewire ${DESTDIR}/usr/include/pipewire-0.2 + mv ${DESTDIR}/usr/include/spa ${DESTDIR}/usr/include/spa-0.1 + vlicense LICENSE +} + +libpipewire0.2-devel_package() { + depends="${pkgname}-${version}_${revision}" + short_desc+=" - pipewire and libspa development files" + pkg_install() { + vmove usr/include/pipewire-0.2 + vmove usr/include/spa-0.1 + vmove usr/lib/pkgconfig/libpipewire-0.2.pc + vmove usr/lib/pkgconfig/libspa-0.1.pc + vmove usr/lib/libpipewire-0.2.so + } +} From 5d58c412347893276167ac0691ff7834607c9e64 Mon Sep 17 00:00:00 2001 From: Artur Sinila Date: Thu, 5 Nov 2020 07:24:27 +0300 Subject: [PATCH 2/2] chromium: enable WebRTC screen sharing via PipeWire --- srcpkgs/chromium/template | 14 ++++++++++---- 1 file changed, 10 insertions(+), 4 deletions(-) diff --git a/srcpkgs/chromium/template b/srcpkgs/chromium/template index 980b0d72843..6035c7105c1 100644 --- a/srcpkgs/chromium/template +++ b/srcpkgs/chromium/template @@ -2,7 +2,7 @@ pkgname=chromium # See http://www.chromium.org/developers/calendar for the latest version version=86.0.4240.111 -revision=1 +revision=2 archs="i686* x86_64* aarch64* armv7l* ppc64le*" short_desc="Google's attempt at creating a safer, faster, and more stable browser" maintainer="Enno Boland " @@ -16,12 +16,13 @@ lib32disabled=yes nodebug=yes nopie=yes # contains tools that are not PIE, enables PIE itself -build_options="clang js_optimize vaapi pulseaudio sndio" +build_options="clang js_optimize vaapi pulseaudio sndio pipewire" desc_option_clang="Use clang to build" desc_option_js_optimize="Optimize the JS used for Chromium's UI" desc_option_vaapi="Enable support for VA-API" desc_option_pulseaudio="Enable support for PulseAudio" desc_option_sndio="Enable support for sndio" +desc_option_pipewire="Enable support for screen sharing for WebRTC via PipeWire" hostmakedepends="$(vopt_if clang clang) python pkgconf perl gperf bison ninja nodejs hwids libatomic-devel libevent-devel libglib-devel $(vopt_if js_optimize openjdk)" @@ -35,14 +36,15 @@ makedepends="libpng-devel gtk+-devel gtk+3-devel nss-devel pciutils-devel minizip-devel jsoncpp-devel zlib-devel libcap-devel libXdamage-devel re2-devel fontconfig-devel freetype-devel opus-devel ffmpeg-devel libva-devel python-setuptools xcb-proto - $(vopt_if sndio sndio-devel)" + $(vopt_if sndio sndio-devel) + $(vopt_if pipewire libpipewire0.2-devel)" depends="libexif hwids desktop-file-utils hicolor-icon-theme xdg-utils" case "$XBPS_TARGET_MACHINE" in ppc64*-musl) makedepends+=" libucontext-devel" ;; esac -build_options_default="clang js_optimize vaapi pulseaudio" +build_options_default="clang js_optimize vaapi pulseaudio pipewire" post_patch() { if [ "$XBPS_TARGET_LIBC" = "musl" ]; then @@ -196,6 +198,10 @@ do_configure() { "use_pulseaudio=$(vopt_if pulseaudio true false)" ) + conf+=( + "rtc_use_pipewire=$(vopt_if pipewire true false)" + ) + # Use explicit library dependencies instead of dlopen. # GN only has "link_pulseaudio", the other options used before are not available atm # linux_link_cups=true