public inbox for gentoo-commits@lists.gentoo.org
 help / color / mirror / Atom feed
From: "Sam James" <sam@gentoo.org>
To: gentoo-commits@lists.gentoo.org
Subject: [gentoo-commits] repo/gentoo:master commit in: media-libs/libpulse/
Date: Wed,  3 Jan 2024 10:40:53 +0000 (UTC)	[thread overview]
Message-ID: <1704278393.f1e4b343e8eb99e399d8ff048db3e00b6edc5c38.sam@gentoo> (raw)

commit:     f1e4b343e8eb99e399d8ff048db3e00b6edc5c38
Author:     Sam James <sam <AT> gentoo <DOT> org>
AuthorDate: Wed Jan  3 10:34:00 2024 +0000
Commit:     Sam James <sam <AT> gentoo <DOT> org>
CommitDate: Wed Jan  3 10:39:53 2024 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=f1e4b343

media-libs/libpulse: pass -Wl,--undefined-version for other linkers if supported

Revbump as it's a library.

Signed-off-by: Sam James <sam <AT> gentoo.org>

 media-libs/libpulse/libpulse-16.1-r5.ebuild    | 215 +++++++++++++++++++++++++
 media-libs/libpulse/libpulse-16.99.1-r1.ebuild | 210 ++++++++++++++++++++++++
 2 files changed, 425 insertions(+)

diff --git a/media-libs/libpulse/libpulse-16.1-r5.ebuild b/media-libs/libpulse/libpulse-16.1-r5.ebuild
new file mode 100644
index 000000000000..bcf2a2ee25ce
--- /dev/null
+++ b/media-libs/libpulse/libpulse-16.1-r5.ebuild
@@ -0,0 +1,215 @@
+# Copyright 1999-2024 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI="7"
+
+MY_PV="${PV/_pre*}"
+MY_P="pulseaudio-${MY_PV}"
+inherit bash-completion-r1 flag-o-matic gnome2-utils meson-multilib optfeature systemd udev
+
+DESCRIPTION="Libraries for PulseAudio clients"
+HOMEPAGE="https://www.freedesktop.org/wiki/Software/PulseAudio/"
+
+if [[ ${PV} = 9999 ]]; then
+	inherit git-r3
+	EGIT_BRANCH="master"
+	EGIT_REPO_URI="https://gitlab.freedesktop.org/pulseaudio/pulseaudio"
+else
+	SRC_URI="https://freedesktop.org/software/pulseaudio/releases/${MY_P}.tar.xz"
+	KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~loong ~ppc ~ppc64 ~riscv ~sparc ~x86 ~amd64-linux ~x86-linux"
+fi
+
+S="${WORKDIR}/${MY_P}"
+
+LICENSE="LGPL-2.1+"
+
+SLOT="0"
+IUSE="+asyncns dbus doc +glib gtk selinux systemd test valgrind X"
+RESTRICT="!test? ( test )"
+
+# NOTE: libpcre needed in some cases, bug #472228
+# TODO: libatomic_ops is only needed on some architectures and conditions, and then at runtime too
+RDEPEND="
+	dev-libs/libatomic_ops
+	>=media-libs/libsndfile-1.0.20[${MULTILIB_USEDEP}]
+	asyncns? ( >=net-libs/libasyncns-0.1[${MULTILIB_USEDEP}] )
+	dbus? ( >=sys-apps/dbus-1.4.12[${MULTILIB_USEDEP}] )
+	elibc_mingw? ( dev-libs/libpcre:3 )
+	glib? ( >=dev-libs/glib-2.28.0:2[${MULTILIB_USEDEP}] )
+	gtk? ( x11-libs/gtk+:3 )
+	selinux? ( sec-policy/selinux-pulseaudio )
+	systemd? ( sys-apps/systemd:= )
+	valgrind? ( dev-util/valgrind )
+	X? (
+		x11-libs/libX11[${MULTILIB_USEDEP}]
+		>=x11-libs/libxcb-1.6[${MULTILIB_USEDEP}]
+	)
+	!<media-sound/pulseaudio-15.0-r100
+	!<media-sound/pulseaudio-daemon-16.1-r8
+"
+
+DEPEND="${RDEPEND}
+	test? ( >=dev-libs/check-0.9.10 )
+	X? ( x11-base/xorg-proto )
+"
+
+# pulseaudio ships a bundled xmltoman, which uses XML::Parser
+BDEPEND="
+	dev-lang/perl
+	dev-perl/XML-Parser
+	sys-devel/gettext
+	sys-devel/m4
+	virtual/libiconv
+	virtual/libintl
+	virtual/pkgconfig
+	doc? ( app-doc/doxygen )
+"
+PDEPEND="
+	|| (
+		media-video/pipewire[sound-server(+)]
+		media-sound/pulseaudio-daemon
+		media-sound/pulseaudio[daemon(+)]
+	)
+"
+
+DOCS=( NEWS README )
+
+# patches merged upstream, to be removed with 16.2 or later bump
+PATCHES=(
+	"${FILESDIR}"/pulseaudio-16.1-memfd-cleanup.patch
+	"${FILESDIR}"/pulseaudio-16.1-proplist-util-without-gdkx.patch
+	"${FILESDIR}"/pulseaudio-16.1-smoother-start-paused.patch
+	"${FILESDIR}"/pulseaudio-16.1-smoother-time-calculation.patch
+	"${FILESDIR}"/pulseaudio-16.1-fix-memblock-alignment.patch
+	"${FILESDIR}"/pulseaudio-16.1-add-more-standard-samplerates.patch
+)
+
+src_prepare() {
+	default
+
+	# disable autospawn by client
+	sed -i -e 's:; autospawn = yes:autospawn = no:g' src/pulse/client.conf.in || die
+
+	gnome2_environment_reset
+}
+
+multilib_src_configure() {
+	append-ldflags $(test-flags-CCLD -Wl,--undefined-version)
+
+	local emesonargs=(
+		--localstatedir="${EPREFIX}"/var
+
+		-Ddaemon=false
+		-Dclient=true
+		$(meson_native_use_bool doc doxygen)
+		-Dgcov=false
+		# tests involve random modules, so just do them for the native # TODO: tests should run always
+		$(meson_native_use_bool test tests)
+		-Ddatabase=simple # Not used for non-daemon, simple database avoids external dep checks
+		-Dstream-restore-clear-old-devices=true
+		-Drunning-from-build-tree=false
+
+		# Paths
+		-Dmodlibexecdir="${EPREFIX}/usr/$(get_libdir)/pulseaudio/modules" # Was $(get_libdir)/${P}
+		-Dsystemduserunitdir=$(systemd_get_userunitdir)
+		-Dudevrulesdir="${EPREFIX}$(get_udevdir)/rules.d"
+		-Dbashcompletiondir="$(get_bashcompdir)" # Alternatively DEPEND on app-shells/bash-completion for pkg-config to provide the value
+
+		# Optional features
+		-Dalsa=disabled
+		$(meson_feature asyncns)
+		-Davahi=disabled
+		-Dbluez5=disabled
+		-Dbluez5-gstreamer=disabled
+		-Dbluez5-native-headset=false
+		-Dbluez5-ofono-headset=false
+		$(meson_feature dbus)
+		-Delogind=disabled
+		-Dfftw=disabled
+		$(meson_feature glib) # WARNING: toggling this likely changes ABI
+		-Dgsettings=disabled
+		-Dgstreamer=disabled
+		$(meson_native_use_feature gtk)
+		-Dhal-compat=false
+		-Dipv6=true
+		-Djack=disabled
+		-Dlirc=disabled
+		-Dopenssl=disabled
+		-Dorc=disabled
+		-Doss-output=disabled
+		-Dsamplerate=disabled # Matches upstream
+		-Dsoxr=disabled
+		-Dspeex=disabled
+		$(meson_native_use_feature systemd)
+		-Dtcpwrap=disabled
+		-Dudev=disabled
+		$(meson_native_use_feature valgrind)
+		$(meson_feature X x11)
+
+		# Echo cancellation
+		-Dadrian-aec=false
+		-Dwebrtc-aec=disabled
+	)
+
+	if multilib_is_native_abi; then
+		# Make padsp work for non-native ABI, supposedly only possible with glibc;
+		# this is used by /usr/bin/padsp that comes from native build, thus we need
+		# this argument for native build
+		if use elibc_glibc; then
+			emesonargs+=( -Dpulsedsp-location="${EPREFIX}"'/usr/\\$$LIB/pulseaudio' )
+		fi
+	else
+		emesonargs+=( -Dman=false )
+		if ! use elibc_glibc; then
+			# Non-glibc multilib is probably non-existent but just in case:
+			ewarn "padsp wrapper for OSS emulation will only work with native ABI applications!"
+		fi
+	fi
+
+	meson_src_configure
+}
+
+multilib_src_compile() {
+	meson_src_compile
+
+	if multilib_is_native_abi; then
+		if use doc; then
+			einfo "Generating documentation ..."
+			meson_src_compile doxygen
+		fi
+	fi
+}
+
+multilib_src_install() {
+	# The files referenced in the DOCS array do not exist in the multilib source directory,
+	# therefore clear the variable when calling the function that will access it.
+	DOCS= meson_src_install
+
+	# Upstream installs 'pactl' if client is built, with all symlinks except for
+	# 'pulseaudio', 'pacmd' and 'pasuspender' which are installed if server is built.
+	# This trips QA warning, workaround:
+	# - install missing aliases in media-libs/libpulse (client build)
+	# - remove corresponding symlinks in media-sound/pulseaudio-daemonclient (server build)
+	bashcomp_alias pactl pulseaudio
+	bashcomp_alias pactl pacmd
+	bashcomp_alias pactl pasuspender
+
+	if multilib_is_native_abi; then
+		if use doc; then
+			einfo "Installing documentation ..."
+			docinto html
+			dodoc -r doxygen/html/.
+		fi
+	fi
+}
+
+multilib_src_install_all() {
+	einstalldocs
+
+	find "${ED}" \( -name '*.a' -o -name '*.la' \) -delete || die
+}
+
+pkg_postinst() {
+	optfeature_header "PulseAudio can be enhanced by installing the following:"
+	use dbus && optfeature "restricted realtime capabilities via D-Bus" sys-auth/rtkit
+}

diff --git a/media-libs/libpulse/libpulse-16.99.1-r1.ebuild b/media-libs/libpulse/libpulse-16.99.1-r1.ebuild
new file mode 100644
index 000000000000..680ac1f67b16
--- /dev/null
+++ b/media-libs/libpulse/libpulse-16.99.1-r1.ebuild
@@ -0,0 +1,210 @@
+# Copyright 1999-2024 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI="7"
+
+MY_PV="${PV/_pre*}"
+MY_P="pulseaudio-${MY_PV}"
+inherit bash-completion-r1 flag-o-matic gnome2-utils meson-multilib optfeature systemd udev
+
+DESCRIPTION="Libraries for PulseAudio clients"
+HOMEPAGE="https://www.freedesktop.org/wiki/Software/PulseAudio/"
+
+if [[ ${PV} = 9999 ]]; then
+	inherit git-r3
+	EGIT_BRANCH="master"
+	EGIT_REPO_URI="https://gitlab.freedesktop.org/pulseaudio/pulseaudio"
+else
+	SRC_URI="https://freedesktop.org/software/pulseaudio/releases/${MY_P}.tar.xz"
+	KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~loong ~ppc ~ppc64 ~riscv ~sparc ~x86 ~amd64-linux ~x86-linux"
+fi
+
+S="${WORKDIR}/${MY_P}"
+
+LICENSE="LGPL-2.1+"
+
+SLOT="0"
+IUSE="+asyncns dbus doc +glib gtk selinux systemd test valgrind X"
+RESTRICT="!test? ( test )"
+
+# NOTE: libpcre needed in some cases, bug #472228
+# TODO: libatomic_ops is only needed on some architectures and conditions, and then at runtime too
+RDEPEND="
+	dev-libs/libatomic_ops
+	>=media-libs/libsndfile-1.0.20[${MULTILIB_USEDEP}]
+	asyncns? ( >=net-libs/libasyncns-0.1[${MULTILIB_USEDEP}] )
+	dbus? ( >=sys-apps/dbus-1.4.12[${MULTILIB_USEDEP}] )
+	elibc_mingw? ( dev-libs/libpcre:3 )
+	glib? ( >=dev-libs/glib-2.28.0:2[${MULTILIB_USEDEP}] )
+	gtk? ( x11-libs/gtk+:3 )
+	selinux? ( sec-policy/selinux-pulseaudio )
+	systemd? ( sys-apps/systemd:= )
+	valgrind? ( dev-util/valgrind )
+	X? (
+		x11-libs/libX11[${MULTILIB_USEDEP}]
+		>=x11-libs/libxcb-1.6[${MULTILIB_USEDEP}]
+	)
+	!<media-sound/pulseaudio-16.1
+	!<media-sound/pulseaudio-daemon-16.99.1
+"
+
+DEPEND="${RDEPEND}
+	test? ( >=dev-libs/check-0.9.10 )
+	X? ( x11-base/xorg-proto )
+"
+
+# pulseaudio ships a bundled xmltoman, which uses XML::Parser
+BDEPEND="
+	dev-lang/perl
+	dev-perl/XML-Parser
+	sys-devel/gettext
+	sys-devel/m4
+	virtual/libiconv
+	virtual/libintl
+	virtual/pkgconfig
+	doc? ( app-doc/doxygen )
+"
+PDEPEND="
+	|| (
+		media-video/pipewire[sound-server(+)]
+		media-sound/pulseaudio-daemon
+		media-sound/pulseaudio[daemon(+)]
+	)
+"
+
+DOCS=( NEWS README )
+
+# patches merged upstream, to be removed with 16.99.2 or later bump
+PATCHES=(
+	"${FILESDIR}"/pulseaudio-16.99.1-memfd-compat.patch
+)
+
+src_prepare() {
+	default
+
+	# disable autospawn by client
+	sed -i -e 's:; autospawn = yes:autospawn = no:g' src/pulse/client.conf.in || die
+
+	gnome2_environment_reset
+}
+
+multilib_src_configure() {
+	append-ldflags $(test-flags-CCLD -Wl,--undefined-version)
+
+	local emesonargs=(
+		--localstatedir="${EPREFIX}"/var
+
+		-Ddaemon=false
+		-Dclient=true
+		$(meson_native_use_bool doc doxygen)
+		-Dgcov=false
+		# tests involve random modules, so just do them for the native # TODO: tests should run always
+		$(meson_native_use_bool test tests)
+		-Ddatabase=simple # Not used for non-daemon, simple database avoids external dep checks
+		-Dstream-restore-clear-old-devices=true
+		-Drunning-from-build-tree=false
+
+		# Paths
+		-Dmodlibexecdir="${EPREFIX}/usr/$(get_libdir)/pulseaudio/modules" # Was $(get_libdir)/${P}
+		-Dsystemduserunitdir=$(systemd_get_userunitdir)
+		-Dudevrulesdir="${EPREFIX}$(get_udevdir)/rules.d"
+		-Dbashcompletiondir="$(get_bashcompdir)" # Alternatively DEPEND on app-shells/bash-completion for pkg-config to provide the value
+
+		# Optional features
+		-Dalsa=disabled
+		$(meson_feature asyncns)
+		-Davahi=disabled
+		-Dbluez5=disabled
+		-Dbluez5-gstreamer=disabled
+		-Dbluez5-native-headset=false
+		-Dbluez5-ofono-headset=false
+		$(meson_feature dbus)
+		-Delogind=disabled
+		-Dfftw=disabled
+		$(meson_feature glib) # WARNING: toggling this likely changes ABI
+		-Dgsettings=disabled
+		-Dgstreamer=disabled
+		$(meson_native_use_feature gtk)
+		-Dhal-compat=false
+		-Dipv6=true
+		-Djack=disabled
+		-Dlirc=disabled
+		-Dopenssl=disabled
+		-Dorc=disabled
+		-Doss-output=disabled
+		-Dsamplerate=disabled # Matches upstream
+		-Dsoxr=disabled
+		-Dspeex=disabled
+		$(meson_native_use_feature systemd)
+		-Dtcpwrap=disabled
+		-Dudev=disabled
+		$(meson_native_use_feature valgrind)
+		$(meson_feature X x11)
+
+		# Echo cancellation
+		-Dadrian-aec=false
+		-Dwebrtc-aec=disabled
+	)
+
+	if multilib_is_native_abi; then
+		# Make padsp work for non-native ABI, supposedly only possible with glibc;
+		# this is used by /usr/bin/padsp that comes from native build, thus we need
+		# this argument for native build
+		if use elibc_glibc; then
+			emesonargs+=( -Dpulsedsp-location="${EPREFIX}"'/usr/\\$$LIB/pulseaudio' )
+		fi
+	else
+		emesonargs+=( -Dman=false )
+		if ! use elibc_glibc; then
+			# Non-glibc multilib is probably non-existent but just in case:
+			ewarn "padsp wrapper for OSS emulation will only work with native ABI applications!"
+		fi
+	fi
+
+	meson_src_configure
+}
+
+multilib_src_compile() {
+	meson_src_compile
+
+	if multilib_is_native_abi; then
+		if use doc; then
+			einfo "Generating documentation ..."
+			meson_src_compile doxygen
+		fi
+	fi
+}
+
+multilib_src_install() {
+	# The files referenced in the DOCS array do not exist in the multilib source directory,
+	# therefore clear the variable when calling the function that will access it.
+	DOCS= meson_src_install
+
+	# Upstream installs 'pactl' if client is built, with all symlinks except for
+	# 'pulseaudio', 'pacmd' and 'pasuspender' which are installed if server is built.
+	# This trips QA warning, workaround:
+	# - install missing aliases in media-libs/libpulse (client build)
+	# - remove corresponding symlinks in media-sound/pulseaudio-daemonclient (server build)
+	bashcomp_alias pactl pulseaudio
+	bashcomp_alias pactl pacmd
+	bashcomp_alias pactl pasuspender
+
+	if multilib_is_native_abi; then
+		if use doc; then
+			einfo "Installing documentation ..."
+			docinto html
+			dodoc -r doxygen/html/.
+		fi
+	fi
+}
+
+multilib_src_install_all() {
+	einstalldocs
+
+	find "${ED}" \( -name '*.a' -o -name '*.la' \) -delete || die
+}
+
+pkg_postinst() {
+	optfeature_header "PulseAudio can be enhanced by installing the following:"
+	use dbus && optfeature "restricted realtime capabilities via D-Bus" sys-auth/rtkit
+}


             reply	other threads:[~2024-01-03 10:40 UTC|newest]

Thread overview: 55+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2024-01-03 10:40 Sam James [this message]
  -- strict thread matches above, loose matches on Subject: below --
2024-03-22  5:45 [gentoo-commits] repo/gentoo:master commit in: media-libs/libpulse/ Ionen Wolkens
2024-03-13  0:54 Sam James
2024-03-05 18:00 Arthur Zamarin
2024-03-05 18:00 Arthur Zamarin
2024-03-05 17:59 Arthur Zamarin
2024-03-04 11:24 Sam James
2024-03-02 22:07 Sam James
2024-03-02 18:18 Arthur Zamarin
2024-02-24 11:29 Sam James
2024-02-22 20:33 Arthur Zamarin
2024-02-07  4:55 Ionen Wolkens
2024-02-07  4:55 Ionen Wolkens
2024-02-07  4:55 Ionen Wolkens
2024-02-07  4:55 Ionen Wolkens
2024-02-02  2:29 Sam James
2024-01-17  2:46 Ionen Wolkens
2023-11-25  5:36 Sam James
2023-10-30  5:15 Sam James
2023-10-23  1:44 Sam James
2023-10-06 12:09 Sam James
2023-05-14 17:11 Sam James
2023-03-31 11:44 Arthur Zamarin
2023-03-31 11:44 Arthur Zamarin
2023-03-31 11:44 Arthur Zamarin
2023-03-31 11:44 Arthur Zamarin
2023-03-07 17:18 Sam James
2023-02-01 16:12 Arthur Zamarin
2023-01-27  6:21 Sam James
2022-10-28 19:53 Sam James
2022-09-26 16:11 Sam James
2022-07-31  3:29 Sam James
2022-07-31  3:29 Sam James
2022-07-31  3:29 Sam James
2022-07-31  3:29 Sam James
2022-07-29  8:02 Agostino Sarubbo
2022-07-29  3:18 Sam James
2022-07-29  1:53 Sam James
2022-07-04 21:40 Sam James
2022-06-23  4:29 Sam James
2022-06-12  8:32 Agostino Sarubbo
2022-06-12  8:30 Agostino Sarubbo
2022-06-11  7:40 Agostino Sarubbo
2022-06-11  7:40 Agostino Sarubbo
2022-06-11  7:39 Agostino Sarubbo
2022-06-11  7:37 Agostino Sarubbo
2022-06-10  8:10 Sam James
2022-06-10  6:56 Sam James
2022-05-29  6:45 Sam James
2022-05-28 19:19 Sam James
2022-04-28 16:00 Sam James
2022-02-27  1:04 Sam James
2022-02-22 20:54 Sam James
2021-12-28 22:26 Sam James
2021-09-24 20:33 Mart Raudsepp

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=1704278393.f1e4b343e8eb99e399d8ff048db3e00b6edc5c38.sam@gentoo \
    --to=sam@gentoo.org \
    --cc=gentoo-commits@lists.gentoo.org \
    --cc=gentoo-dev@lists.gentoo.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox