logo

overlay

My own overlay for experimentations, use with caution, no support is provided
commit: 9ae7cf0131a87424c7b049e60a82874244d87631
parent 286a956fccd22a46236bdceea337043d1be6911c
Author: Haelwenn (lanodan) Monnier <contact@hacktivis.me>
Date:   Sun,  1 Nov 2020 03:42:01 +0100

media-video/pipewire: Make dbus optionnal, imported from ::gentoo

Diffstat:

Amedia-video/pipewire/Manifest3+++
Amedia-video/pipewire/files/pipewire-0.3.10_pipewire_optionnal.patch78++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Amedia-video/pipewire/metadata.xml16++++++++++++++++
Amedia-video/pipewire/pipewire-0.3.10.ebuild138+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
4 files changed, 235 insertions(+), 0 deletions(-)

diff --git a/media-video/pipewire/Manifest b/media-video/pipewire/Manifest @@ -0,0 +1,3 @@ +DIST pipewire-0.2.7.tar.gz 421644 BLAKE2B d2ccb56a9ea5ea7782678deb6eae0b0a70da1fa69e807398062d388733901839f15a2f0f7db982fbebd2b2759f443709e6c1950b6367f3ed4801d6c2d6109e73 SHA512 10d3e20cc3d233fbcd1fc39702ae3043a656ebcd9cd3c39c77f0cc2bf42ff4956fc03e7933c7b397bca446c63f45ddacea948d5ec7e4a3300499fa2794f14334 +DIST pipewire-0.3.10.tar.gz 1148297 BLAKE2B d890b8e6697b17be9f8706a7228b9c79631120550ac51d7fbea8b5d05ca161ce6142a5666a6a61db618d4da0519676160ba1180cf9274865d879f4bb0da2a8e7 SHA512 f2f3dd7ce9b9f3a5ab55b6da97cd64419dad5115714848ce8893795c0ed2fd2fe0059240ec9fe1c92fb1442caf8d7071e415afe6712500be1c29fd001293cf0d +DIST pipewire-0.3.13.tar.gz 1176949 BLAKE2B 5a4c7f211c1ac3c823cc34cede2f42204a2a7c6d583237465e702936926fad924c37f0638c8bbdedc55ad70d59cc2796e64b2b3dea2c64f199383d4ed9c1c84a SHA512 38ce7d8808e69935db0148c077340cfbc1b85f5a016a0a57eff2c076560c42f0695cfe681c9f16ebf15796d773dd113c9a84631eb50ac44dfb09f91ed3fc61f0 diff --git a/media-video/pipewire/files/pipewire-0.3.10_pipewire_optionnal.patch b/media-video/pipewire/files/pipewire-0.3.10_pipewire_optionnal.patch @@ -0,0 +1,78 @@ +commit ae96087dc0141ebdaf463590aba08327abe8f28e +Author: Haelwenn (lanodan) Monnier <contact@hacktivis.me> +Date: 2020-11-01T03:28:49 GMT + + Make DBus an optionnal dependency + +diff --git a/meson.build b/meson.build +index adabcccf..893f4c6f 100644 +--- a/meson.build ++++ b/meson.build +@@ -290,7 +290,7 @@ mathlib = cc.find_library('m', required : false) + rt_lib = cc.find_library('rt', required : false) # clock_gettime + dl_lib = cc.find_library('dl', required : false) + pthread_lib = dependency('threads') +-dbus_dep = dependency('dbus-1') ++dbus_dep = dependency('dbus-1', required : get_option('dbus')) + sdl_dep = dependency('sdl2', required : false) + sndfile_dep = dependency('sndfile', version : '>= 1.0.20', required : false) + +diff --git a/meson_options.txt b/meson_options.txt +index f03033c3..87afbe3b 100644 +--- a/meson_options.txt ++++ b/meson_options.txt +@@ -131,3 +131,7 @@ option('pw-cat', + option('udevrulesdir', + type : 'string', + description : 'Directory for udev rules (defaults to /lib/udev/rules.d)') ++option('dbus', ++ description: 'Build support for DBus-based interfaces', ++ type: 'boolean', ++ value: true) +diff --git a/spa/plugins/support/meson.build b/spa/plugins/support/meson.build +index 5db32c89..d78a9dcc 100644 +--- a/spa/plugins/support/meson.build ++++ b/spa/plugins/support/meson.build +@@ -31,11 +31,13 @@ if get_option('evl') + install_dir : join_paths(spa_plugindir, 'support')) + endif + +-spa_dbus_sources = ['dbus.c'] ++if get_option('dbus') ++ spa_dbus_sources = ['dbus.c'] + +-spa_dbus_lib = shared_library('spa-dbus', +- spa_dbus_sources, +- include_directories : [ spa_inc], +- dependencies : [dbus_dep, ], +- install : true, +- install_dir : join_paths(spa_plugindir, 'support')) ++ spa_dbus_lib = shared_library('spa-dbus', ++ spa_dbus_sources, ++ include_directories : [ spa_inc], ++ dependencies : [dbus_dep, ], ++ install : true, ++ install_dir : join_paths(spa_plugindir, 'support')) ++endif +diff --git a/src/examples/meson.build b/src/examples/meson.build +index 6af07bc1..7285c959 100644 +--- a/src/examples/meson.build ++++ b/src/examples/meson.build +@@ -65,7 +65,7 @@ executable('export-spa-device', + dependencies : [pipewire_dep, mathlib], + ) + +-if alsa_dep.found() ++if alsa_dep.found() and dbus_dep.found() + executable('pipewire-media-session', + 'media-session/access-flatpak.c', + 'media-session/access-portal.c', +@@ -91,7 +91,7 @@ if alsa_dep.found() + c_args : [ '-D_GNU_SOURCE' ], + install: true, + dependencies : [dbus_dep, pipewire_dep, alsa_dep, mathlib], +-) ++ ) + endif + + executable('bluez-session', diff --git a/media-video/pipewire/metadata.xml b/media-video/pipewire/metadata.xml @@ -0,0 +1,16 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd"> +<pkgmetadata> + <maintainer type="person"> + <email>contact@hacktivis.me</email> + <name>Haelwenn (lanodan) Monnier</name> + </maintainer> + <upstream> + <remote-id type="github">PipeWire/pipewire</remote-id> + </upstream> + <use> + <flag name="jack">Enable SPA JACK plugin and emulation to be able to run JACK applications on top of PipeWire</flag> + <flag name="pulseaudio">Enable emulation to be able to run PulseAudio applications on top of PipeWire</flag> + <flag name="vulkan">Enable vulkan spa plugin integration</flag> + </use> +</pkgmetadata> diff --git a/media-video/pipewire/pipewire-0.3.10.ebuild b/media-video/pipewire/pipewire-0.3.10.ebuild @@ -0,0 +1,138 @@ +# Copyright 1999-2020 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=7 + +inherit meson + +if [[ ${PV} == 9999 ]]; then + EGIT_REPO_URI="https://github.com/PipeWire/pipewire.git" + EGIT_BRANCH="work" + inherit git-r3 +else + SRC_URI="https://github.com/PipeWire/${PN}/archive/${PV}.tar.gz -> ${P}.tar.gz" + KEYWORDS="~amd64 ~arm ~arm64 ~ppc ~ppc64 ~x86" +fi + +DESCRIPTION="Multimedia processing graphs" +HOMEPAGE="https://pipewire.org/" + +LICENSE="LGPL-2.1+" +SLOT="0/0.3" +IUSE="bluetooth +dbus debug doc ffmpeg gstreamer jack pulseaudio systemd test vulkan X" + +BDEPEND=" + app-doc/xmltoman + doc? ( + app-doc/doxygen + media-gfx/graphviz + ) +" +RDEPEND=" + >=media-libs/alsa-lib-1.1.7 + media-libs/libsdl2 + >=media-libs/libsndfile-1.0.20 + virtual/libudev + dbus? ( sys-apps/dbus ) + bluetooth? ( + media-libs/sbc + net-wireless/bluez:= + ) + ffmpeg? ( media-video/ffmpeg:= ) + gstreamer? ( + >=dev-libs/glib-2.32.0:2 + >=media-libs/gstreamer-1.10.0:1.0 + media-libs/gst-plugins-base:1.0 + ) + jack? ( >=media-sound/jack2-1.9.10:2 ) + pulseaudio? ( + dev-libs/glib:2 + >=media-sound/pulseaudio-11.1 + ) + systemd? ( sys-apps/systemd ) + vulkan? ( media-libs/vulkan-loader ) + X? ( x11-libs/libX11 ) +" +DEPEND="${RDEPEND} + vulkan? ( dev-util/vulkan-headers ) +" + +DOCS=( {README,INSTALL}.md NEWS ) +PATCHES=( "${FILESDIR}/pipewire-0.3.10_pipewire_optionnal.patch" ) + +RESTRICT="!test? ( test )" + +src_prepare() { + spa_use() { + if ! in_iuse ${1} || ! use ${1}; then + sed -e "/^add-spa-lib.*${1}/s/^/#${2-$1}-disabled-by-USE-no-${1}\:/" \ + -e "/^load-module.*${1}/s/^/#${2-$1}-disabled-by-USE-no-${1}\:/" \ + -i src/daemon/pipewire.conf.in || die + fi + } + + default + spa_use libcamera + spa_use rtkit + spa_use bluetooth bluez5 + spa_use jack + spa_use vulkan +} + +src_configure() { + local emesonargs=( + -Dexamples=true # contains required pipewire-media-session + -Dman=true + -Dspa=true + -Dspa-plugins=true + $(meson_use dbus dbus) + --buildtype=$(usex debug debugoptimized plain) + # alsa plugin and jack/pulseaudio emulation + -Dpipewire-alsa=true + $(meson_use jack pipewire-jack) + $(meson_use pulseaudio pipewire-pulseaudio) + # spa-plugins + # we install alsa support unconditionally + $(meson_use bluetooth bluez5) + $(meson_use ffmpeg) + $(meson_use jack) + $(meson_use vulkan) + # libcamera is not packaged + # misc + $(meson_use doc docs) + $(meson_use gstreamer) + $(meson_use systemd) + $(meson_use test test) + $(meson_use test tests) + ) + meson_src_configure +} + +src_install() { + meson_src_install + + dosym ../../../usr/share/alsa/alsa.conf.d/50-pipewire.conf /etc/alsa/conf.d/50-pipewire.conf + +# # TODO: this breaks alsa users +# if use alsa; then +# dosym ../../../usr/share/alsa/alsa.conf.d/99-pipewire-default.conf /etc/alsa/conf.d/99-pipewire-default.conf +# fi +} + +pkg_postinst() { + elog "Package has optional sys-auth/rtkit RUNTIME support that may be disabled" + elog "by setting DISABLE_RTKIT env var." + elog "To enable rtkit, uncomment the load-module line in /etc/pipewire/pipewire.conf" + elog + if use jack; then + elog "Please note that even though the libraries for JACK emulation have" + elog "been installed, this ebuild is not yet wired up to replace a JACK server." + elog + fi + if use pulseaudio; then + elog "Please note that even though the libraries for PulseAudio emulation have" + elog "been installed, this ebuild is not yet wired up to replace PulseAudio." + elog + fi + elog "Read INSTALL.md for information about ALSA plugin or JACK/PulseAudio emulation." +}