commit: e3978839cc6da41c74e9c65ced13fdf2b7c0f3db
Author: Thomas Deutschmann <whissi <AT> gentoo <DOT> org>
AuthorDate: Sat May 8 13:38:11 2021 +0000
Commit: Thomas Deutschmann <whissi <AT> gentoo <DOT> org>
CommitDate: Sat May 8 18:27:43 2021 +0000
URL: https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=e3978839
media-video/pipewire: add multilib support
Thanks to Niklāvs for the initial work!
Thanks-to: Niklāvs Koļesņikovs <89q1r14hd <AT> relay.firefox.com>
Package-Manager: Portage-3.0.18, Repoman-3.0.3
Signed-off-by: Thomas Deutschmann <whissi <AT> gentoo.org>
media-video/pipewire/pipewire-9999.ebuild | 91 +++++++++++++++++++------------
1 file changed, 56 insertions(+), 35 deletions(-)
diff --git a/media-video/pipewire/pipewire-9999.ebuild
b/media-video/pipewire/pipewire-9999.ebuild
index 879b3968542..f15fbb4d5e3 100644
--- a/media-video/pipewire/pipewire-9999.ebuild
+++ b/media-video/pipewire/pipewire-9999.ebuild
@@ -3,7 +3,7 @@
EAPI=7
-inherit meson optfeature udev
+inherit meson optfeature udev multilib-minimal
if [[ ${PV} == 9999 ]]; then
EGIT_REPO_URI="https://gitlab.freedesktop.org/${PN}/${PN}.git"
@@ -43,9 +43,10 @@ BDEPEND="
"
RDEPEND="
media-libs/alsa-lib
- sys-apps/dbus
+ sys-apps/dbus[${MULTILIB_USEDEP}]
sys-libs/ncurses[unicode]
- virtual/libudev
+ virtual/libintl[${MULTILIB_USEDEP}]
+ virtual/libudev[${MULTILIB_USEDEP}]
bluetooth? (
aac? ( media-libs/fdk-aac )
aptx? ( media-libs/libopenaptx )
@@ -67,13 +68,13 @@ RDEPEND="
!media-sound/jack2
)
pipewire-alsa? (
- >=media-libs/alsa-lib-1.1.7
+ >=media-libs/alsa-lib-1.1.7[${MULTILIB_USEDEP}]
|| (
media-plugins/alsa-plugins[-pulseaudio]
!media-plugins/alsa-plugins
)
)
- !pipewire-alsa? ( media-plugins/alsa-plugins[pulseaudio] )
+ !pipewire-alsa? (
media-plugins/alsa-plugins[${MULTILIB_USEDEP},pulseaudio] )
systemd? ( sys-apps/systemd )
v4l? ( media-libs/libv4l )
"
@@ -102,6 +103,18 @@ PATCHES=(
# with changes as necessary.
limitsdfile=40-${PN}.conf
+meson_native_enabled() {
+ if multilib_is_native_abi; then
+ echo "-D${1}=enabled"
+ else
+ echo "-D${1}=disabled"
+ fi
+}
+
+meson_native_feature() {
+ multilib_native_usex "${1}" "-D${2-${1}}=enabled" "-D${2-${1}}=disabled"
+}
+
src_prepare() {
default
@@ -112,72 +125,80 @@ src_prepare() {
fi
}
-src_configure() {
+multilib_src_configure() {
local emesonargs=(
-Ddocdir="${EPREFIX}"/usr/share/doc/${PF}
- $(meson_feature doc docs)
- -Dexamples=enabled # Disabling this implicitly disables
-Dmedia-session (not good)
- -Dmedia-session=enabled
- -Dman=enabled
+ $(meson_native_feature doc docs)
+ $(meson_native_enabled examples) # Disabling this implicitly
disables -Dmedia-session
+ $(meson_native_enabled media-session)
+ $(meson_native_enabled man)
$(meson_feature test tests)
-Dinstalled_tests=disabled # Matches upstream; Gentoo never
installs tests
- $(meson_feature gstreamer)
- $(meson_feature gstreamer gstreamer-device-provider)
- $(meson_feature systemd) # Also covers logind integration
+ $(meson_native_feature gstreamer)
+ $(meson_native_feature gstreamer gstreamer-device-provider)
+ $(meson_native_feature systemd)
-Dsystemd-system-service=disabled # Matches upstream
- $(meson_feature systemd systemd-user-service)
+ $(meson_native_feature systemd systemd-user-service)
$(meson_feature pipewire-alsa) # Allows integrating ALSA apps
into PW graph
-Dspa-plugins=enabled
-Dalsa=enabled # Allows using kernel ALSA for sound I/O
(-Dmedia-session depends on this)
-Daudiomixer=enabled # Matches upstream
-Daudioconvert=enabled # Matches upstream
- $(meson_feature bluetooth bluez5)
- $(meson_feature bluetooth bluez5-backend-hsp-native)
- $(meson_feature bluetooth bluez5-backend-hfp-native)
- $(meson_feature bluetooth bluez5-backend-ofono)
- $(meson_feature bluetooth bluez5-backend-hsphfpd)
- $(meson_feature aac bluez5-codec-aac)
- $(meson_feature aptx bluez5-codec-aptx)
- $(meson_feature ldac bluez5-codec-ldac)
+ $(meson_native_feature bluetooth bluez5)
+ $(meson_native_feature bluetooth bluez5-backend-hsp-native)
+ $(meson_native_feature bluetooth bluez5-backend-hfp-native)
+ $(meson_native_feature bluetooth bluez5-backend-ofono)
+ $(meson_native_feature bluetooth bluez5-backend-hsphfpd)
+ $(meson_native_feature aac bluez5-codec-aac)
+ $(meson_native_feature aptx bluez5-codec-aptx)
+ $(meson_native_feature ldac bluez5-codec-ldac)
-Dcontrol=enabled # Matches upstream
-Daudiotestsrc=enabled # Matches upstream
-Dffmpeg=disabled # Disabled by upstream and no major
developments to spa/plugins/ffmpeg/ since May 2020
-Dpipewire-jack=enabled # Allows integrating JACK apps into PW
graph
- $(meson_feature jack-client jack) # Allows PW to act as a JACK
client
+ $(meson_native_feature jack-client jack) # Allows PW to act as
a JACK client
$(usex jack-sdk "-Dlibjack-path=${EPREFIX}/usr/$(get_libdir)"
'')
-Dsupport=enabled # Miscellaneous/common plugins, such as null
sink
-Devl=disabled # Matches upstream
-Dtest=disabled # fakesink and fakesource plugins
- $(meson_feature v4l v4l2)
+ $(meson_native_feature v4l v4l2)
-Dlibcamera=disabled # libcamera is not in Portage tree
-Dvideoconvert=enabled # Matches upstream
-Dvideotestsrc=enabled # Matches upstream
-Dvolume=enabled # Matches upstream
-Dvulkan=disabled # Uses pre-compiled Vulkan compute shader to
provide a CGI video source (dev thing; disabled by upstream)
- $(meson_feature extra pw-cat)
+ $(meson_native_feature extra pw-cat)
-Dudev=enabled
-Dudevrulesdir="$(get_udevdir)/rules.d"
-Dsdl2=disabled # Controls SDL2 dependent code (currently only
examples when -Dinstalled_tests=enabled which we never install)
- $(meson_feature extra sndfile) # Enables libsndfile dependent
code (currently only pw-cat)
+ $(meson_native_feature extra sndfile) # Enables libsndfile
dependent code (currently only pw-cat)
)
+
meson_src_configure
}
-src_compile() {
+multilib_src_compile() {
meson_src_compile
- einfo "Generating ${limitsdfile}"
- cat > ${limitsdfile} <<- EOF || die
- # Start of ${limitsdfile} from ${P}
+ if multilib_is_native_abi; then
+ einfo "Generating ${limitsdfile}"
+ cat > ${limitsdfile} <<- EOF || die
+ # Start of ${limitsdfile} from ${P}
+
+ 1000:60000 - memlock 256
- 1000:60000 - memlock 256
+ # End of ${limitsdfile} from ${P}
+ EOF
+ fi
+}
- # End of ${limitsdfile} from ${P}
- EOF
+multilib_src_install() {
+ # Our customs DOCS do not exist in multilib source directory
+ DOCS= meson_src_install
}
-src_install() {
- meson_src_install
+multilib_src_install_all() {
+ einstalldocs
insinto /etc/security/limits.d
doins ${limitsdfile}