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 via email to