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
 

Reply via email to