commit: 39b8794e59a013d848def9283e8b40e65f8f3cfc
Author: Sam James <sam <AT> gentoo <DOT> org>
AuthorDate: Sun Nov 26 22:52:10 2023 +0000
Commit: Sam James <sam <AT> gentoo <DOT> org>
CommitDate: Sun Nov 26 23:18:02 2023 +0000
URL: https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=39b8794e
media-video/pipewire: add 1.0.0
Signed-off-by: Sam James <sam <AT> gentoo.org>
media-video/pipewire/Manifest | 2 +
...{pipewire-9999.ebuild => pipewire-1.0.0.ebuild} | 51 +++++++++++++++++-----
media-video/pipewire/pipewire-9999.ebuild | 51 +++++++++++++++++-----
3 files changed, 82 insertions(+), 22 deletions(-)
diff --git a/media-video/pipewire/Manifest b/media-video/pipewire/Manifest
index e092a0c05d17..e51ed91f9c38 100644
--- a/media-video/pipewire/Manifest
+++ b/media-video/pipewire/Manifest
@@ -1,3 +1,5 @@
DIST pipewire-0.3.77.tar.bz2 1643767 BLAKE2B
3a2df9cdedf77d5b4927e115ddd7da0d1eecc85322ce7995a49945d41cc83b9a543c1382ad304bdb549f67ac444f7bca6871248654fb4d2e21b25eb55411940c
SHA512
422c8504f608d6845b94351a336ab528f51195551418d0d245064972ed784817cacafc6afaad74eb0e0ea80474a9da33ef6917c1f60d3f8f45d70c54971f0760
DIST pipewire-0.3.80.tar.bz2 1655137 BLAKE2B
cf55e01b6fff29e7ef1f40e9a8f28788b9f538380232821b334359844b33b12b913375ae14e4589d7ae9cd26d22bc841d8103d41c7eb3ea1a9f0c1db1abc6507
SHA512
77e26b6cbefc091ea703b53d147accbd9495f97ba57618a21366b0747074de3ed1060c03e91362f5cf9dc5c256da6d541eccaff8de306b369730400c7b7f46b2
DIST pipewire-0.3.85.tar.bz2 1675916 BLAKE2B
a245ebeebdb283ce920d85a2d877ce27756a5fd5505ca6f4d5df1b83120272dfb1be36233a3b2a2cbe96dcc9fc06fae42198108c4e0dbe866836449b422e320c
SHA512
5613b41a98db45305aad8f9a84ef0a11b858815f45c6242bb648630e41a3ae5805bb605a543585b46e60d472086919d64e7d8c396ab6cc126d9889f92320f375
+DIST pipewire-1.0.0-docs.tar.xz 33632 BLAKE2B
be06aa7242f7d2f8627b3bf2a2ae491dbda456a24811a767218eb89b1fd5961a461697e5d8ae2782323fdb927985fa4fd5dd40c21268b1c7939f4cd3c9e1a9ab
SHA512
14f794c4152d7d9a4a7d9d4d5c2ff381c2a8262deaff034f993c4d28629fca8cc3d71d3a7c02982703e449fae5f58257fea0c20db02bf95b5aed88a4d99d2c58
+DIST pipewire-1.0.0.tar.bz2 1682155 BLAKE2B
de48de0f486a530ee060acdc6d35e27bf298e195e2c3d21a9444da7459ef02b44d97147b3bd3a820bdf28ebffbee910f77306a28ffb1b12eeaf8ce37f8d97a6f
SHA512
8955bd16ba8508d5838e960ae8c089efaeb9dab0c08719baea8f8f8047cd53b84a46b2459ecd7f000f21b0025a52e93f052025e71c07dc4a2aef89237c5c87f1
diff --git a/media-video/pipewire/pipewire-9999.ebuild
b/media-video/pipewire/pipewire-1.0.0.ebuild
similarity index 91%
copy from media-video/pipewire/pipewire-9999.ebuild
copy to media-video/pipewire/pipewire-1.0.0.ebuild
index 3bcdfec7f60f..72c84d9fb328 100644
--- a/media-video/pipewire/pipewire-9999.ebuild
+++ b/media-video/pipewire/pipewire-1.0.0.ebuild
@@ -13,8 +13,20 @@ EAPI=8
# continue to move quickly. It's not uncommon for fixes to be made shortly
# after releases.
+# TODO: Maybe get upstream to produce `meson dist` tarballs:
+# - https://gitlab.freedesktop.org/pipewire/pipewire/-/issues/3663
+# - https://gitlab.freedesktop.org/pipewire/pipewire/-/merge_requests/1788
+#
+# Generate using
https://github.com/thesamesam/sam-gentoo-scripts/blob/main/niche/generate-pipewire-docs
+# Set to 1 if prebuilt, 0 if not
+# (the construct below is to allow overriding from env for script)
+: ${PIPEWIRE_DOCS_PREBUILT:=1}
+
+PIPEWIRE_DOCS_PREBUILT_DEV=sam
+PIPEWIRE_DOCS_VERSION="${PV}"
+# Default to generating docs (inc. man pages) if no prebuilt; overridden later
+PIPEWIRE_DOCS_USEFLAG="+man"
PYTHON_COMPAT=( python3_{10..12} )
-
inherit flag-o-matic meson-multilib optfeature prefix python-any-r1 systemd
tmpfiles udev
if [[ ${PV} == 9999 ]]; then
@@ -29,7 +41,12 @@ else
SRC_URI="https://gitlab.freedesktop.org/${PN}/${PN}/-/archive/${PV}/${P}.tar.bz2"
fi
- KEYWORDS="~amd64 ~arm ~arm64 ~loong ~ppc ~riscv ~sparc ~x86"
+ if [[ ${PIPEWIRE_DOCS_PREBUILT} == 1 ]] ; then
+ SRC_URI+=" !man? (
https://dev.gentoo.org/~${PIPEWIRE_DOCS_PREBUILT_DEV}/distfiles/${CATEGORY}/${PN}/${PN}-${PIPEWIRE_DOCS_VERSION}-docs.tar.xz
)"
+ PIPEWIRE_DOCS_USEFLAG="man"
+ fi
+
+ KEYWORDS="~amd64 ~arm ~arm64 ~loong ~mips ~ppc ~riscv ~x86"
fi
DESCRIPTION="Multimedia processing graphs"
@@ -38,7 +55,7 @@ HOMEPAGE="https://pipewire.org/"
LICENSE="MIT LGPL-2.1+ GPL-2"
# ABI was broken in 0.3.42 for
https://gitlab.freedesktop.org/pipewire/wireplumber/-/issues/49
SLOT="0/0.4"
-IUSE="bluetooth dbus doc echo-cancel extra ffmpeg flatpak gstreamer gsettings
ieee1394 jack-client jack-sdk liblc3 lv2"
+IUSE="${PIPEWIRE_DOCS_USEFLAG} bluetooth dbus doc echo-cancel extra ffmpeg
flatpak gstreamer gsettings ieee1394 jack-client jack-sdk liblc3 lv2"
IUSE+=" modemmanager pipewire-alsa readline roc selinux sound-server ssl
system-service systemd test v4l X zeroconf"
# Once replacing system JACK libraries is possible, it's likely that
@@ -68,19 +85,26 @@ RESTRICT="!test? ( test )"
BDEPEND="
>=dev-util/meson-0.59
virtual/pkgconfig
- ${PYTHON_DEPS}
- $(python_gen_any_dep 'dev-python/docutils[${PYTHON_USEDEP}]')
dbus? ( dev-util/gdbus-codegen )
doc? (
- app-doc/doxygen
+ ${PYTHON_DEPS}
+ >=app-doc/doxygen-1.9.8
media-gfx/graphviz
)
+ man? (
+ ${PYTHON_DEPS}
+ >=app-doc/doxygen-1.9.8
+ )
"
# * While udev could technically be optional, it's needed for a number of
options,
# and not really worth it, bug #877769.
#
# * Supports both legacy webrtc-audio-processing:0 and new
webrtc-audio-processing:1.
# We depend on :1 as it prefers that, it's not legacy, and to avoid automagic.
+#
+# * Older Doxygen (<1.9.8) may work but inferior output is created:
+# - https://gitlab.freedesktop.org/pipewire/pipewire/-/merge_requests/1778
+# - https://github.com/doxygen/doxygen/issues/9254
RDEPEND="
acct-group/audio
acct-group/pipewire
@@ -120,7 +144,7 @@ RDEPEND="
modemmanager? ( >=net-misc/modemmanager-1.10.0 )
pipewire-alsa? ( >=media-libs/alsa-lib-1.1.7[${MULTILIB_USEDEP}] )
sound-server? ( !media-sound/pulseaudio-daemon )
- roc? ( media-libs/roc-toolkit )
+ roc? ( >=media-libs/roc-toolkit-0.3.0:= )
readline? ( sys-libs/readline:= )
selinux? ( sys-libs/libselinux )
ssl? ( dev-libs/openssl:= )
@@ -150,14 +174,14 @@ PDEPEND=">=media-video/wireplumber-0.4.8-r3"
# Ditto for DEPEND
# >=dev-util/vulkan-headers-1.1.69
-DOCS=( {README,INSTALL}.md NEWS )
-
PATCHES=(
"${FILESDIR}"/${PN}-0.3.25-enable-failed-mlock-warning.patch
)
-python_check_deps() {
- python_has_version "dev-python/docutils[${PYTHON_USEDEP}]"
+pkg_setup() {
+ if use doc || use man ; then
+ python-any-r1_pkg_setup
+ fi
}
src_prepare() {
@@ -177,6 +201,7 @@ multilib_src_configure() {
$(meson_feature dbus)
$(meson_native_use_feature zeroconf avahi)
$(meson_native_use_feature doc docs)
+ $(meson_native_use_feature man)
$(meson_native_enabled examples) # TODO: Figure out if this is
still important now that media-session gone
$(meson_native_enabled man)
$(meson_feature test tests)
@@ -271,6 +296,10 @@ multilib_src_install() {
multilib_src_install_all() {
einstalldocs
+ if ! use man && [[ ${PIPEWIRE_DOCS_PREBUILT} == 1 ]] ; then
+ doman
"${WORKDIR}"/${PN}-${PIPEWIRE_DOCS_VERSION}-docs/man/*/*.[0-8]
+ fi
+
if use pipewire-alsa; then
dodir /etc/alsa/conf.d
diff --git a/media-video/pipewire/pipewire-9999.ebuild
b/media-video/pipewire/pipewire-9999.ebuild
index 3bcdfec7f60f..72c84d9fb328 100644
--- a/media-video/pipewire/pipewire-9999.ebuild
+++ b/media-video/pipewire/pipewire-9999.ebuild
@@ -13,8 +13,20 @@ EAPI=8
# continue to move quickly. It's not uncommon for fixes to be made shortly
# after releases.
+# TODO: Maybe get upstream to produce `meson dist` tarballs:
+# - https://gitlab.freedesktop.org/pipewire/pipewire/-/issues/3663
+# - https://gitlab.freedesktop.org/pipewire/pipewire/-/merge_requests/1788
+#
+# Generate using
https://github.com/thesamesam/sam-gentoo-scripts/blob/main/niche/generate-pipewire-docs
+# Set to 1 if prebuilt, 0 if not
+# (the construct below is to allow overriding from env for script)
+: ${PIPEWIRE_DOCS_PREBUILT:=1}
+
+PIPEWIRE_DOCS_PREBUILT_DEV=sam
+PIPEWIRE_DOCS_VERSION="${PV}"
+# Default to generating docs (inc. man pages) if no prebuilt; overridden later
+PIPEWIRE_DOCS_USEFLAG="+man"
PYTHON_COMPAT=( python3_{10..12} )
-
inherit flag-o-matic meson-multilib optfeature prefix python-any-r1 systemd
tmpfiles udev
if [[ ${PV} == 9999 ]]; then
@@ -29,7 +41,12 @@ else
SRC_URI="https://gitlab.freedesktop.org/${PN}/${PN}/-/archive/${PV}/${P}.tar.bz2"
fi
- KEYWORDS="~amd64 ~arm ~arm64 ~loong ~ppc ~riscv ~sparc ~x86"
+ if [[ ${PIPEWIRE_DOCS_PREBUILT} == 1 ]] ; then
+ SRC_URI+=" !man? (
https://dev.gentoo.org/~${PIPEWIRE_DOCS_PREBUILT_DEV}/distfiles/${CATEGORY}/${PN}/${PN}-${PIPEWIRE_DOCS_VERSION}-docs.tar.xz
)"
+ PIPEWIRE_DOCS_USEFLAG="man"
+ fi
+
+ KEYWORDS="~amd64 ~arm ~arm64 ~loong ~mips ~ppc ~riscv ~x86"
fi
DESCRIPTION="Multimedia processing graphs"
@@ -38,7 +55,7 @@ HOMEPAGE="https://pipewire.org/"
LICENSE="MIT LGPL-2.1+ GPL-2"
# ABI was broken in 0.3.42 for
https://gitlab.freedesktop.org/pipewire/wireplumber/-/issues/49
SLOT="0/0.4"
-IUSE="bluetooth dbus doc echo-cancel extra ffmpeg flatpak gstreamer gsettings
ieee1394 jack-client jack-sdk liblc3 lv2"
+IUSE="${PIPEWIRE_DOCS_USEFLAG} bluetooth dbus doc echo-cancel extra ffmpeg
flatpak gstreamer gsettings ieee1394 jack-client jack-sdk liblc3 lv2"
IUSE+=" modemmanager pipewire-alsa readline roc selinux sound-server ssl
system-service systemd test v4l X zeroconf"
# Once replacing system JACK libraries is possible, it's likely that
@@ -68,19 +85,26 @@ RESTRICT="!test? ( test )"
BDEPEND="
>=dev-util/meson-0.59
virtual/pkgconfig
- ${PYTHON_DEPS}
- $(python_gen_any_dep 'dev-python/docutils[${PYTHON_USEDEP}]')
dbus? ( dev-util/gdbus-codegen )
doc? (
- app-doc/doxygen
+ ${PYTHON_DEPS}
+ >=app-doc/doxygen-1.9.8
media-gfx/graphviz
)
+ man? (
+ ${PYTHON_DEPS}
+ >=app-doc/doxygen-1.9.8
+ )
"
# * While udev could technically be optional, it's needed for a number of
options,
# and not really worth it, bug #877769.
#
# * Supports both legacy webrtc-audio-processing:0 and new
webrtc-audio-processing:1.
# We depend on :1 as it prefers that, it's not legacy, and to avoid automagic.
+#
+# * Older Doxygen (<1.9.8) may work but inferior output is created:
+# - https://gitlab.freedesktop.org/pipewire/pipewire/-/merge_requests/1778
+# - https://github.com/doxygen/doxygen/issues/9254
RDEPEND="
acct-group/audio
acct-group/pipewire
@@ -120,7 +144,7 @@ RDEPEND="
modemmanager? ( >=net-misc/modemmanager-1.10.0 )
pipewire-alsa? ( >=media-libs/alsa-lib-1.1.7[${MULTILIB_USEDEP}] )
sound-server? ( !media-sound/pulseaudio-daemon )
- roc? ( media-libs/roc-toolkit )
+ roc? ( >=media-libs/roc-toolkit-0.3.0:= )
readline? ( sys-libs/readline:= )
selinux? ( sys-libs/libselinux )
ssl? ( dev-libs/openssl:= )
@@ -150,14 +174,14 @@ PDEPEND=">=media-video/wireplumber-0.4.8-r3"
# Ditto for DEPEND
# >=dev-util/vulkan-headers-1.1.69
-DOCS=( {README,INSTALL}.md NEWS )
-
PATCHES=(
"${FILESDIR}"/${PN}-0.3.25-enable-failed-mlock-warning.patch
)
-python_check_deps() {
- python_has_version "dev-python/docutils[${PYTHON_USEDEP}]"
+pkg_setup() {
+ if use doc || use man ; then
+ python-any-r1_pkg_setup
+ fi
}
src_prepare() {
@@ -177,6 +201,7 @@ multilib_src_configure() {
$(meson_feature dbus)
$(meson_native_use_feature zeroconf avahi)
$(meson_native_use_feature doc docs)
+ $(meson_native_use_feature man)
$(meson_native_enabled examples) # TODO: Figure out if this is
still important now that media-session gone
$(meson_native_enabled man)
$(meson_feature test tests)
@@ -271,6 +296,10 @@ multilib_src_install() {
multilib_src_install_all() {
einstalldocs
+ if ! use man && [[ ${PIPEWIRE_DOCS_PREBUILT} == 1 ]] ; then
+ doman
"${WORKDIR}"/${PN}-${PIPEWIRE_DOCS_VERSION}-docs/man/*/*.[0-8]
+ fi
+
if use pipewire-alsa; then
dodir /etc/alsa/conf.d