blob: f7c1836db3d062a418dd1c1d3d8d06e685e2e359 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
|
# Copyright 1999-2023 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=8
# 1. Please regularly check (even at the point of bumping) Fedora's packaging
# for needed backports at https://src.fedoraproject.org/rpms/wireplumber/tree/rawhide
#
# 2. Keep an eye on git master (for both PipeWire and WirePlumber) as things
# continue to move quickly. It's not uncommon for fixes to be made shortly
# after releases.
LUA_COMPAT=( lua5-{3,4} )
inherit lua-single meson systemd
if [[ ${PV} == 9999 ]]; then
EGIT_REPO_URI="https://gitlab.freedesktop.org/pipewire/${PN}.git"
EGIT_BRANCH="master"
inherit git-r3
else
SRC_URI="https://gitlab.freedesktop.org/pipewire/${PN}/-/archive/${PV}/${P}.tar.bz2"
KEYWORDS="amd64 arm arm64 ~loong ppc ppc64 ~riscv ~sparc x86"
fi
DESCRIPTION="Replacement for pipewire-media-session"
HOMEPAGE="https://gitlab.freedesktop.org/pipewire/wireplumber"
LICENSE="MIT"
SLOT="0/0.4"
IUSE="elogind system-service systemd test"
REQUIRED_USE="
${LUA_REQUIRED_USE}
?? ( elogind systemd )
system-service? ( systemd )
"
RESTRICT="!test? ( test )"
# introspection? ( dev-libs/gobject-introspection ) is valid but likely only used for doc building
BDEPEND="
dev-libs/glib
dev-util/gdbus-codegen
dev-util/glib-utils
sys-devel/gettext
"
DEPEND="
${LUA_DEPS}
>=dev-libs/glib-2.62
>=media-video/pipewire-0.3.65-r1:=
virtual/libintl
elogind? ( sys-auth/elogind )
systemd? ( sys-apps/systemd )
"
# Any dev-lua/* deps get declared like this inside RDEPEND:
# $(lua_gen_cond_dep '
# dev-lua/<NAME>[${LUA_USEDEP}]
# ')
RDEPEND="${DEPEND}
system-service? (
acct-user/pipewire
acct-group/pipewire
)
"
DOCS=( {NEWS,README}.rst )
PATCHES=(
"${FILESDIR}"/${PN}-0.4.10-config-disable-sound-server-parts.patch # defer enabling sound server parts to media-video/pipewire
)
src_configure() {
local emesonargs=(
-Ddaemon=true
-Dtools=true
-Dmodules=true
-Ddoc=disabled # Ebuild not wired up yet (Sphinx, Doxygen?)
-Dintrospection=disabled # Only used for Sphinx doc generation
-Dsystem-lua=true # We always unbundle everything we can
-Dsystem-lua-version=$(ver_cut 1-2 $(lua_get_version))
$(meson_feature elogind)
$(meson_feature systemd)
$(meson_use system-service systemd-system-service)
$(meson_use systemd systemd-user-service)
-Dsystemd-system-unit-dir=$(systemd_get_systemunitdir)
-Dsystemd-user-unit-dir=$(systemd_get_userunitdir)
$(meson_use test tests)
$(meson_use test dbus-tests)
)
meson_src_configure
}
src_install() {
meson_src_install
# We copy the default config, so that Gentoo tools can pick up on any
# updates and /etc does not end up with stale overrides.
# If a reflinking CoW filesystem is used (e.g. Btrfs), then the files
# will not actually get stored twice until modified.
insinto /etc
doins -r "${ED}"/usr/share/wireplumber
}
pkg_postinst() {
if systemd_is_booted ; then
ewarn "pipewire-media-session.service is no longer installed. You must switch"
ewarn "to wireplumber.service user unit before your next logout/reboot:"
ewarn "systemctl --user disable pipewire-media-session.service"
ewarn "systemctl --user --force enable wireplumber.service"
else
ewarn "Switch to WirePlumber will happen the next time gentoo-pipewire-launcher"
ewarn "is started (a replacement for directly calling pipewire binary)."
ewarn
ewarn "Please ensure that ${EROOT}/etc/pipewire/pipewire.conf either does not exist"
ewarn "or, if it does exist, that any reference to"
ewarn "${EROOT}/usr/bin/pipewire-media-session is commented out (begins with a #)."
fi
if use system-service; then
ewarn
ewarn "WARNING: you have enabled the system-service USE flag, which installs"
ewarn "the system-wide systemd units that enable WirePlumber to run as a system"
ewarn "service. This is more than likely NOT what you want. You are strongly"
ewarn "advised not to enable this mode and instead stick with systemd user"
ewarn "units. The default configuration files will likely not work out of"
ewarn "box, and you are on your own with configuration."
ewarn
fi
}
|