diff options
author | V3n3RiX <venerix@koprulu.sector> | 2023-10-27 08:42:41 +0100 |
---|---|---|
committer | V3n3RiX <venerix@koprulu.sector> | 2023-10-27 08:42:41 +0100 |
commit | 0fcaac21e786bd7911b1e8f436cd885c5e2f6437 (patch) | |
tree | ba392915815492b0ce486fc0e3ad5afb4a849b6f /media-libs/libpulse | |
parent | e30edd47e1804bf3ed1ea7be2eac67f4b8cd9f38 (diff) |
gentoo auto-resync : 27:10:2023 - 08:42:41
Diffstat (limited to 'media-libs/libpulse')
-rw-r--r-- | media-libs/libpulse/Manifest | 3 | ||||
-rw-r--r-- | media-libs/libpulse/files/pulseaudio-16.99.1-memfd-compat.patch | 24 | ||||
-rw-r--r-- | media-libs/libpulse/libpulse-16.99.1.ebuild | 215 |
3 files changed, 242 insertions, 0 deletions
diff --git a/media-libs/libpulse/Manifest b/media-libs/libpulse/Manifest index 36e83bbcb671..66856d10db21 100644 --- a/media-libs/libpulse/Manifest +++ b/media-libs/libpulse/Manifest @@ -4,8 +4,11 @@ AUX pulseaudio-16.1-memfd-cleanup.patch 988 BLAKE2B cbb25ef86099e1c13bd07c33c871 AUX pulseaudio-16.1-proplist-util-without-gdkx.patch 1486 BLAKE2B 74b6ed59dff2ab4c62bab9e218874ff4da1d651f8ff80d715965b7be61323d77436851f6f2ffb9f8667c9ee918d6eca315fea3f6fe2670798f1ef6ed58728a3c SHA512 a5b5ac40083237ea0cd916506eb490891937affc1d69f81399a6a1f8f0782ebe9654641463ab33931add749282880ab415dbf0f89bd1a1d6a0f88f2845886d13 AUX pulseaudio-16.1-smoother-start-paused.patch 1177 BLAKE2B 33e23e6ff9f08674550c8d349cdf2c8e50e5b203228c7b42bde0acddaa351647efda81d9ef173c2724a6a32b672a9db09075f0df2b7b567d354628e0adcd9c4b SHA512 3bcd728dc70349710f919c9990d5145100b0dae9ee496d2c4d4d8d43bd6e331a5625fe2b124d3f81326b52a072bc4f335ef24b68245518c545fa3258283a8d07 AUX pulseaudio-16.1-smoother-time-calculation.patch 1354 BLAKE2B 2fc644c66a0329ad03ad617590811ca980b7f2cd91b7f3ed0ea7831b4ece70dced407cfa4ac09efe4d3100fc7205d08341a28c6b0e1a6870aa5fae101279c9e6 SHA512 7ead95b6325ad921ec532f086ef62007f189d3ec533c07f985f09eb1618d5f600b3ce80d0ca64c60f9eb31e3e576bb98454d619e406c46ae2ec7fc5bfbf814be +AUX pulseaudio-16.99.1-memfd-compat.patch 971 BLAKE2B 6228f8b01cd8799221d5e121a8c1bc2f3635acebf2c75f1538abf88f2f717da93c3d90ebee038a5fb3bfe8d015c6d3a4f5d6e20026eb44b889fde3d45f6c6769 SHA512 498f86291cb5837494a6b698ea7590ae778edf58ca9b82d58b2d93e30f5e424b93f3ecf8a0a203817eba7bcea7702bf3f1a6cdd346b02088f1748cd1231787bf DIST pulseaudio-16.1.tar.xz 1545596 BLAKE2B 535706abcea2cae39834b23c8bdc37f71b0e633de2d8e43ea4425da97a850b57c2f980c318681cbc86cf1e746200609dad41f8b96ecf4568f86d94aa6831c9a1 SHA512 33b0b4292f05e0882f3ec822cf5720414bb34c523d80fe287b9740d6be219787c562e8024c9b0d9e2ee010771ca72c7ae4f27df1bbef9c9cb6bb6a23cbcc412f +DIST pulseaudio-16.99.1.tar.xz 1565020 BLAKE2B 02aad918e2b76dcf250bd55e03460206c7781cd1b43aa2efe46b25258626892e07f478b9966fa5027c9ae0a370145f5204dba05d2f5dfbfd3ba956225ccb3cad SHA512 1a3347e4c892ba0e321d39184f8bd52cfd16f59e66e52a753d6f706dfbf3f170f87b7ff27c0a6cdf3e462e6dd531ecde6829d48a374d0be2622688fb85abaac2 EBUILD libpulse-16.1-r1.ebuild 5765 BLAKE2B 1d7612f22f43daee09d1a3ccc6bf1d854410d293a2bfdd9e6c60453ff39556f3e40c21e776a9ed02bf6e62a29b4d7ec5be87003f9cdf64df4e0add642be423df SHA512 558d94ef4d2cde4a9a41e364a592ecf3acca0939d2f8c2f069b502c800549cd8a9400a6a3e3ad3645fda83b48c84811ac9bf1e8d6f9a614545e1fe2d0b4e2e03 EBUILD libpulse-16.1-r2.ebuild 5880 BLAKE2B 78dbe7da864b8c36cdc5730a98260b35a58ea0beaca798f86a63f9124b71f2ee2a449cb13f5c4cc3111c5298ecc900291e9c0d457c8d765be43bdd09d7e7c315 SHA512 3bb7b39fb201c202f3b20e605e37774b525a0a78979f8a24eabd464ae0a5b8314fc9362a9f9d8a47a43f3d534ddc5a9bd39b3874f3b9cc5ea402f7f897d12a38 EBUILD libpulse-16.1-r4.ebuild 6467 BLAKE2B a56b3974cb6be676856f1fd99596603907a2f3024329f6b9db3edf941a3693ba0af4c06a9cc6081ba546b698a2f9e99b518739a4f6eb9944c1a0605ba093dfd0 SHA512 40a7b8969aec1d4588e51c989325d57517e3ab74833c12e0b80cd2165491334388c2873c53e14a4f26c5a2e2872cf595de1d1593f30a8484b91ccb62b55a21bd +EBUILD libpulse-16.99.1.ebuild 6154 BLAKE2B 765f34cc85e5265aa52a05a4b28256ddae953906b4a7713d5fdfd72c5c61cbca351ec876228c08d572fe73518b8dcecbca5d387bc0192ddeb3699fdb00b2a2b4 SHA512 d9af02a4d83d9990dbc9c000a0097874551c96884c2496e84788069adb15dde26816075b0b9aa5036b9022dc235dc23d1b24c8294887232597711bd359ad694f MISC metadata.xml 859 BLAKE2B 7d292e39737f2dcfaf44c3ba84cae976f90e8cfe29ea91589f01376292d029177d2f700138879dde89bbbedb99eebce02e83171e3e168f04cf030453674e0eb5 SHA512 756bef21c1da1fb996083f1da163cc3e80f03e5d1314d00f07496aab22cece34db48c0ec950eeaabf50ea3ad08f00d85befdb97a5dd4115aa5f665040fe89310 diff --git a/media-libs/libpulse/files/pulseaudio-16.99.1-memfd-compat.patch b/media-libs/libpulse/files/pulseaudio-16.99.1-memfd-compat.patch new file mode 100644 index 000000000000..77af0ac915f6 --- /dev/null +++ b/media-libs/libpulse/files/pulseaudio-16.99.1-memfd-compat.patch @@ -0,0 +1,24 @@ +commit 421cf15486eea1b52f10e2b0be305018fee8c285 +Author: Rudi Heitbaum <rudi@heitbaum.com> +Date: Sun Aug 13 09:37:32 2023 +0000 + + shm: allow for older versions of Linux without MFD_NOEXEC_SEAL + + Part-of: <https://gitlab.freedesktop.org/pulseaudio/pulseaudio/-/merge_requests/794> + +diff --git a/src/pulsecore/shm.c b/src/pulsecore/shm.c +index 4247b0921..694f971b4 100644 +--- a/src/pulsecore/shm.c ++++ b/src/pulsecore/shm.c +@@ -164,7 +164,11 @@ static int sharedmem_create(pa_shm *m, pa_mem_type_t type, size_t size, mode_t m + #endif + #ifdef HAVE_MEMFD + case PA_MEM_TYPE_SHARED_MEMFD: ++ /* For linux >= 6.3 create fd with MFD_NOEXEC_SEAL flag */ + fd = memfd_create("pulseaudio", MFD_ALLOW_SEALING|MFD_CLOEXEC|MFD_NOEXEC_SEAL); ++ /* Retry creating fd without MFD_NOEXEC_SEAL to support linux < 6.3 */ ++ if (fd < 0) ++ fd = memfd_create("pulseaudio", MFD_ALLOW_SEALING|MFD_CLOEXEC); + break; + #endif + default: diff --git a/media-libs/libpulse/libpulse-16.99.1.ebuild b/media-libs/libpulse/libpulse-16.99.1.ebuild new file mode 100644 index 000000000000..616a3a730813 --- /dev/null +++ b/media-libs/libpulse/libpulse-16.99.1.ebuild @@ -0,0 +1,215 @@ +# Copyright 1999-2023 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 toolchain-funcs 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() { + # ideally we want !tc-ld-is-bfd for best future-proofing, but it needs + # https://github.com/gentoo/gentoo/pull/28355 + # mold needs this too but right now tc-ld-is-mold is also not available + if tc-ld-is-lld; then + append-ldflags -Wl,--undefined-version + fi + + 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 +} |