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:
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."
+}