commit: 2f0d9a4a24a350f3a7cf7314acd8bce82dce9d56
Author: Ceres <ceres <AT> ceressees <DOT> dev>
AuthorDate: Wed Nov 5 19:09:34 2025 +0000
Commit: Ceres Milner <ceres <AT> ceressees <DOT> dev>
CommitDate: Wed Nov 5 19:09:34 2025 +0000
URL: https://gitweb.gentoo.org/repo/proj/guru.git/commit/?id=2f0d9a4a
media-sound/libcava: new package, add 0.10.2
Signed-off-by: Ceres <ceres <AT> ceressees.dev>
media-sound/libcava/Manifest | 1 +
.../files/libcava-0.8.0-gentoo-iniparser4.patch | 15 ++++++
media-sound/libcava/libcava-0.10.2.ebuild | 59 ++++++++++++++++++++++
3 files changed, 75 insertions(+)
diff --git a/media-sound/libcava/Manifest b/media-sound/libcava/Manifest
new file mode 100644
index 0000000000..4a65aec10a
--- /dev/null
+++ b/media-sound/libcava/Manifest
@@ -0,0 +1 @@
+DIST libcava-0.10.2.tar.gz 133928 BLAKE2B
638208ef02240542dfd238e5073a70b2c75ae0562b004318a2f6f2293eba72af5815e36cbf2ed37d26f24b39efa5d2c97c53267d6f6bd7baa8a71fcd9cc6fe76
SHA512
8614fc57faa8184527c3840e370192cfeb9c28d12b958d3884cb7151886d288e3e728c2202a00ec8c4f3a96b2d12aea977616d382646846da0c18d7cd711ea24
diff --git a/media-sound/libcava/files/libcava-0.8.0-gentoo-iniparser4.patch
b/media-sound/libcava/files/libcava-0.8.0-gentoo-iniparser4.patch
new file mode 100644
index 0000000000..3dcb060c28
--- /dev/null
+++ b/media-sound/libcava/files/libcava-0.8.0-gentoo-iniparser4.patch
@@ -0,0 +1,15 @@
+Gentoo uses non-standard naming for slotted iniparser:4 and it
+does not have a pkg-config file (ideally should be unslotted).
+Cava can use iniparser:0 as well but <3.2 forces legacy mode.
+--- a/configure.ac
++++ b/configure.ac
+@@ -259,6 +259,6 @@
+
+-AC_CHECK_LIB(iniparser,iniparser_load, have_iniparser=yes, have_iniparser=no)
++AC_CHECK_LIB(iniparser4,iniparser_load, have_iniparser=yes, have_iniparser=no)
+ if [[ $have_iniparser = "yes" ]] ; then
+- LIBS="$LIBS -liniparser"
+- CPPFLAGS="$CPPFLAGS -I/usr/include/iniparser"
++ LIBS="$LIBS -liniparser4"
++ CPPFLAGS="$CPPFLAGS -I${GENTOO_SYSROOT}/usr/include/iniparser4"
+ AC_LINK_IFELSE([AC_LANG_PROGRAM([[#include <iniparser.h>]],
diff --git a/media-sound/libcava/libcava-0.10.2.ebuild
b/media-sound/libcava/libcava-0.10.2.ebuild
new file mode 100644
index 0000000000..983a1bd762
--- /dev/null
+++ b/media-sound/libcava/libcava-0.10.2.ebuild
@@ -0,0 +1,59 @@
+# Copyright 2022-2024 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+inherit meson
+
+DESCRIPTION="Console-based Audio Visualizer for Alsa"
+HOMEPAGE="https://github.com/LukashonakV/cava/"
+SRC_URI="https://github.com/LukashonakV/cava/archive/refs/tags/${PV}.tar.gz ->
${P}.tar.gz"
+
+S="${WORKDIR}/cava-${PV}"
+
+LICENSE="MIT Unlicense"
+SLOT="0"
+KEYWORDS="~amd64 ~arm64"
+IUSE="alsa jack +ncurses pipewire portaudio pulseaudio sdl sndio"
+
+RDEPEND="
+ dev-libs/iniparser
+ sci-libs/fftw:3.0=
+ alsa? ( media-libs/alsa-lib )
+ jack? ( virtual/jack )
+ ncurses? ( sys-libs/ncurses:= )
+ pipewire? ( media-video/pipewire:= )
+ portaudio? ( media-libs/portaudio )
+ pulseaudio? ( media-libs/libpulse )
+ sdl? (
+ media-libs/libglvnd
+ media-libs/libsdl2[opengl,video]
+ )
+ sndio? ( media-sound/sndio:= )
+"
+DEPEND="${RDEPEND}
+ virtual/pkgconfig
+"
+
+MYMESONARGS="-Dcava_font=false"
+
+src_prepare() {
+ default
+
+ echo ${PV} > version || die
+}
+
+src_configure() {
+ meson_src_configure
+}
+
+pkg_postinst() {
+ if [[ -z ${REPLACING_VERSIONS} ]]; then
+ elog "A default ~/.config/cava/config will be created after
initial"
+ elog "use of ${PN}, see it and
${EROOT}/usr/share/doc/${PF}/README*"
+ elog "for configuring audio input and more."
+ elif ver_test ${REPLACING_VERSIONS##* } -lt 0.9; then
+ elog "If used, the noise_reduction config option in
~/.config/cava/config needs"
+ elog "to be updated from taking a float to integer (e.g.
replace 0.77 with 77)."
+ fi
+}