summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorPeter Bergin <peter@berginkonsult.se>2021-10-07 08:26:20 +0200
committerArmin Kuster <akuster808@gmail.com>2021-10-08 17:23:52 -0700
commit41e43410611a2fc8aff8da36b558ed338bb85e30 (patch)
treec0b410969ab539d5c8994bccf3cc226644b91321
parent9fa4691e3d32de9255645916f8022812c64c1316 (diff)
downloadmeta-openembedded-41e43410611a2fc8aff8da36b558ed338bb85e30.tar.gz
pipewire: rework PACKAGECONFIG for systemd service files
pipewire project have config option to enable installation of systemd user and/or system services. Before update of pipewire to current version (02de7746) only system service files was added, after update both user and system service files was added. This commit will make it possible to configure which service files that is wanted. Default PACKAGECONFIG is to add systemd service files as it was before version upgrade. Yocto systemd class currently does not handle user service files during package and those files are only installed in rootfs but user service is not enabled as a system service is. Another use case is where you want your own service files and can disable the default ones from pipewire and add your own in a bbappend. Signed-off-by: Peter Bergin <peter@berginkonsult.se> (cherry picked from commit 3b0458715178a0e0f4d8d0255d1ad2cd71f90041) Signed-off-by: Armin Kuster <akuster808@gmail.com>
-rw-r--r--meta-multimedia/recipes-multimedia/pipewire/pipewire_0.3.34.bb20
1 files changed, 10 insertions, 10 deletions
diff --git a/meta-multimedia/recipes-multimedia/pipewire/pipewire_0.3.34.bb b/meta-multimedia/recipes-multimedia/pipewire/pipewire_0.3.34.bb
index fe1de6221b..2abc64efb2 100644
--- a/meta-multimedia/recipes-multimedia/pipewire/pipewire_0.3.34.bb
+++ b/meta-multimedia/recipes-multimedia/pipewire/pipewire_0.3.34.bb
@@ -39,11 +39,6 @@ SYSTEMD_PACKAGES = "${PN} ${PN}-media-session"
39# 39#
40# libcamera support currently does not build successfully. 40# libcamera support currently does not build successfully.
41# 41#
42# systemd user service files are disabled because per-user
43# PipeWire instances aren't really something that makes
44# much sense in an embedded environment. A system-wide
45# instance does.
46#
47# manpage generation requires xmltoman, which is not available. 42# manpage generation requires xmltoman, which is not available.
48EXTRA_OEMESON += " \ 43EXTRA_OEMESON += " \
49 -Daudiotestsrc=enabled \ 44 -Daudiotestsrc=enabled \
@@ -59,7 +54,8 @@ EXTRA_OEMESON += " \
59 54
60PACKAGECONFIG ??= "\ 55PACKAGECONFIG ??= "\
61 ${@bb.utils.contains('DISTRO_FEATURES', 'bluetooth', 'bluez', '', d)} \ 56 ${@bb.utils.contains('DISTRO_FEATURES', 'bluetooth', 'bluez', '', d)} \
62 ${@bb.utils.filter('DISTRO_FEATURES', 'alsa systemd', d)} \ 57 ${@bb.utils.contains('DISTRO_FEATURES', 'systemd', 'systemd systemd-system-service', '', d)} \
58 ${@bb.utils.filter('DISTRO_FEATURES', 'alsa', d)} \
63 gstreamer jack sndfile pw-cat v4l2 \ 59 gstreamer jack sndfile pw-cat v4l2 \
64" 60"
65 61
@@ -68,7 +64,6 @@ PACKAGECONFIG ??= "\
68# libjack.so* files, thus colliding with the libpack package. This 64# libjack.so* files, thus colliding with the libpack package. This
69# is why these two are marked in their respective packageconfigs 65# is why these two are marked in their respective packageconfigs
70# as being in conflict. 66# as being in conflict.
71
72PACKAGECONFIG[alsa] = "-Dalsa=enabled,-Dalsa=disabled,alsa-lib udev" 67PACKAGECONFIG[alsa] = "-Dalsa=enabled,-Dalsa=disabled,alsa-lib udev"
73PACKAGECONFIG[bluez] = "-Dbluez5=enabled,-Dbluez5=disabled,bluez5 sbc" 68PACKAGECONFIG[bluez] = "-Dbluez5=enabled,-Dbluez5=disabled,bluez5 sbc"
74PACKAGECONFIG[docs] = "-Ddocs=enabled,-Ddocs=disabled,doxygen-native" 69PACKAGECONFIG[docs] = "-Ddocs=enabled,-Ddocs=disabled,doxygen-native"
@@ -76,7 +71,12 @@ PACKAGECONFIG[gstreamer] = "-Dgstreamer=enabled,-Dgstreamer=disabled,glib-2.0 gs
76PACKAGECONFIG[jack] = "-Djack=enabled,-Djack=disabled,jack,,,pipewire-jack" 71PACKAGECONFIG[jack] = "-Djack=enabled,-Djack=disabled,jack,,,pipewire-jack"
77PACKAGECONFIG[sdl2] = "-Dsdl2=enabled,-Dsdl2=disabled,virtual/libsdl2" 72PACKAGECONFIG[sdl2] = "-Dsdl2=enabled,-Dsdl2=disabled,virtual/libsdl2"
78PACKAGECONFIG[sndfile] = "-Dsndfile=enabled,-Dsndfile=disabled,libsndfile1" 73PACKAGECONFIG[sndfile] = "-Dsndfile=enabled,-Dsndfile=disabled,libsndfile1"
79PACKAGECONFIG[systemd] = "-Dsystemd=enabled -Dsystemd-system-service=enabled -Dsystemd-user-service=enabled,-Dsystemd=disabled -Dsystemd-system-service=disabled -Dsystemd-user-service=disabled,systemd" 74PACKAGECONFIG[systemd] = "-Dsystemd=enabled,-Dsystemd=disabled,systemd"
75PACKAGECONFIG[systemd-system-service] = "-Dsystemd-system-service=enabled,-Dsystemd-system-service=disabled,systemd"
76# "systemd-user-service" packageconfig will only install service
77# files to rootfs but not enable them as systemd.bbclass
78# currently lacks the feature of enabling user services.
79PACKAGECONFIG[systemd-user-service] = "-Dsystemd-user-service=enabled,-Dsystemd-user-service=disabled,systemd"
80# pw-cat needs sndfile packageconfig to be enabled 80# pw-cat needs sndfile packageconfig to be enabled
81PACKAGECONFIG[pw-cat] = "-Dpw-cat=enabled,-Dpw-cat=disabled" 81PACKAGECONFIG[pw-cat] = "-Dpw-cat=enabled,-Dpw-cat=disabled"
82PACKAGECONFIG[v4l2] = "-Dv4l2=enabled,-Dv4l2=disabled,udev" 82PACKAGECONFIG[v4l2] = "-Dv4l2=enabled,-Dv4l2=disabled,udev"
@@ -191,7 +191,7 @@ PACKAGES =+ "\
191 191
192PACKAGES_DYNAMIC = "^${PN}-spa-plugins.* ^${PN}-modules.*" 192PACKAGES_DYNAMIC = "^${PN}-spa-plugins.* ^${PN}-modules.*"
193 193
194SYSTEMD_SERVICE:${PN} = "pipewire.service" 194SYSTEMD_SERVICE:${PN} = "${@bb.utils.contains('PACKAGECONFIG', 'systemd-system-service', 'pipewire.service', '', d)}"
195CONFFILES:${PN} += "${datadir}/pipewire/pipewire.conf" 195CONFFILES:${PN} += "${datadir}/pipewire/pipewire.conf"
196FILES:${PN} = " \ 196FILES:${PN} = " \
197 ${datadir}/pipewire/pipewire.conf \ 197 ${datadir}/pipewire/pipewire.conf \
@@ -248,7 +248,7 @@ FILES:${PN}-jack = "\
248 248
249# Example session manager. Not intended for use in production. 249# Example session manager. Not intended for use in production.
250CONFFILES:${PN}-media-session = "${datadir}/pipewire/media-session.d/*" 250CONFFILES:${PN}-media-session = "${datadir}/pipewire/media-session.d/*"
251SYSTEMD_SERVICE:${PN}-media-session = "pipewire-media-session.service" 251SYSTEMD_SERVICE:${PN}-media-session = "${@bb.utils.contains('PACKAGECONFIG', 'systemd-system-service', 'pipewire-media-session.service', '', d)}"
252FILES:${PN}-media-session = " \ 252FILES:${PN}-media-session = " \
253 ${bindir}/pipewire-media-session \ 253 ${bindir}/pipewire-media-session \
254 ${datadir}/pipewire/media-session.d/* \ 254 ${datadir}/pipewire/media-session.d/* \