summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorIonen Wolkens <ionen@gentoo.org>2022-04-17 05:40:23 -0400
committerIonen Wolkens <ionen@gentoo.org>2022-04-17 06:49:04 -0400
commitbc697ac1c922fa98ec928659f50ba87fb84bbe19 (patch)
tree0adc7809a59e9b8199284bcdc86e035043ee2c33 /media-sound/cava
parentsys-apps/systemd-utils: fix tmpfiles test typo (diff)
downloadgentoo-bc697ac1c922fa98ec928659f50ba87fb84bbe19.tar.gz
gentoo-bc697ac1c922fa98ec928659f50ba87fb84bbe19.tar.bz2
gentoo-bc697ac1c922fa98ec928659f50ba87fb84bbe19.zip
media-sound/cava: new package, add 0.8.0
Been using this locally for a while and been getting more activity / releases this year, let's add it. Closes: https://bugs.gentoo.org/617084 Signed-off-by: Ionen Wolkens <ionen@gentoo.org>
Diffstat (limited to 'media-sound/cava')
-rw-r--r--media-sound/cava/Manifest1
-rw-r--r--media-sound/cava/cava-0.8.0.ebuild75
-rw-r--r--media-sound/cava/files/cava-0.8.0-gentoo-iniparser4.patch15
-rw-r--r--media-sound/cava/files/cava-0.8.0-maxed-bars.patch17
-rw-r--r--media-sound/cava/metadata.xml14
5 files changed, 122 insertions, 0 deletions
diff --git a/media-sound/cava/Manifest b/media-sound/cava/Manifest
new file mode 100644
index 000000000000..4e8b8b36d7cc
--- /dev/null
+++ b/media-sound/cava/Manifest
@@ -0,0 +1 @@
+DIST cava-0.8.0.tar.gz 99198 BLAKE2B e9b5c6697aef9e9a1a54bcb928933fbaad68be0ab27f91defdeadd39a0b38d278835c43ed16fd8757d6c57d36924551304e43b8721b7a31dcac3a586041dd0e4 SHA512 3072504592f2f2d5b525874eb9bd23fca4beed89425651104a82b8ea5c7e34abd38c4355d712f2c17bb489eb2c8c28a6914fd40a1b1003a9fcce9055290a9794
diff --git a/media-sound/cava/cava-0.8.0.ebuild b/media-sound/cava/cava-0.8.0.ebuild
new file mode 100644
index 000000000000..f862363da236
--- /dev/null
+++ b/media-sound/cava/cava-0.8.0.ebuild
@@ -0,0 +1,75 @@
+# Copyright 2022 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+inherit autotools
+
+DESCRIPTION="Console-based Audio Visualizer"
+HOMEPAGE="https://github.com/karlstav/cava/"
+SRC_URI="https://github.com/karlstav/cava/archive/refs/tags/${PV}.tar.gz -> ${P}.tar.gz"
+
+LICENSE="MIT"
+SLOT="0"
+KEYWORDS="~amd64 ~x86"
+IUSE="alsa +ncurses portaudio pulseaudio sdl sndio"
+
+RDEPEND="
+ dev-libs/iniparser:4
+ sci-libs/fftw:=
+ alsa? ( media-libs/alsa-lib )
+ ncurses? ( sys-libs/ncurses:= )
+ portaudio? ( media-libs/portaudio )
+ pulseaudio? ( media-sound/pulseaudio )
+ sdl? ( media-libs/libsdl2[opengl,video] )
+ sndio? ( media-sound/sndio:= )"
+DEPEND="${RDEPEND}"
+BDEPEND="app-editors/vim-core"
+
+PATCHES=(
+ "${FILESDIR}"/${PN}-0.8.0-gentoo-iniparser4.patch
+ "${FILESDIR}"/${P}-maxed-bars.patch
+)
+
+src_prepare() {
+ default
+
+ # see autogen.sh
+ echo ${PV} > version || die
+ xxd -i example_files/config config_file.h || die
+
+ sed -i 's/-Werror //' Makefile.am || die
+
+ eautoreconf
+}
+
+src_configure() {
+ local econfargs=(
+ $(use_enable alsa input-alsa)
+ $(use_enable portaudio input-portaudio)
+ $(use_enable pulseaudio input-pulse)
+ $(use_enable sndio input-sndio)
+
+ $(use_enable ncurses output-ncurses)
+ $(use_enable sdl output-sdl)
+
+ GENTOO_SYSROOT="${ESYSROOT}" # see iniparser4.patch
+ )
+
+ econf "${econfargs[@]}"
+}
+
+pkg_postinst() {
+ if [[ ! ${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 inputs and more."
+ fi
+
+ if use !alsa && use !portaudio && use !pulseaudio && use !sndio; then
+ # give a warning given greets with a segfault without proper configuration
+ ewarn "All audio backends are disabled, ${PN} will only function if first"
+ ewarn "configured to use 'method = fifo' or 'shmem'."
+ ewarn "Tip: fifo is versatile, e.g. mkfifo fifo && jack_capture --daemon -ws > fifo"
+ fi
+}
diff --git a/media-sound/cava/files/cava-0.8.0-gentoo-iniparser4.patch b/media-sound/cava/files/cava-0.8.0-gentoo-iniparser4.patch
new file mode 100644
index 000000000000..3dcb060c2873
--- /dev/null
+++ b/media-sound/cava/files/cava-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/cava/files/cava-0.8.0-maxed-bars.patch b/media-sound/cava/files/cava-0.8.0-maxed-bars.patch
new file mode 100644
index 000000000000..a685b7a11c3f
--- /dev/null
+++ b/media-sound/cava/files/cava-0.8.0-maxed-bars.patch
@@ -0,0 +1,17 @@
+https://github.com/karlstav/cava/issues/447
+https://github.com/karlstav/cava/commit/6519a027036f2de94728819d215672dc2c0b50b6
+From: karlstav <karl@stavestrand.no>
+Date: Sun, 17 Apr 2022 10:04:14 +0200
+Subject: [PATCH] #447: fix wrong noise reduction default value causing maxed
+ out bars
+--- a/config.c
++++ b/config.c
+@@ -471,7 +471,7 @@ bool load_config(char configPath[PATH_MAX], struct config_params *p, bool colors
+ p->integral = iniparser_getdouble(ini, "smoothing:integral", 77);
+ p->gravity = iniparser_getdouble(ini, "smoothing:gravity", 100);
+ p->ignore = iniparser_getdouble(ini, "smoothing:ignore", 0);
+- p->noise_reduction = iniparser_getdouble(ini, "smoothing:noise_reduction", 1);
++ p->noise_reduction = iniparser_getdouble(ini, "smoothing:noise_reduction", 0.77);
+
+ if (!load_colors(p, ini, error)) {
+ return false;
diff --git a/media-sound/cava/metadata.xml b/media-sound/cava/metadata.xml
new file mode 100644
index 000000000000..7b32cdd182c8
--- /dev/null
+++ b/media-sound/cava/metadata.xml
@@ -0,0 +1,14 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "https://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <maintainer type="person">
+ <email>ionen@gentoo.org</email>
+ <name>Ionen Wolkens</name>
+ </maintainer>
+ <use>
+ <flag name="sndio">Enable support for the <pkg>media-sound/sndio</pkg> backend</flag>
+ </use>
+ <upstream>
+ <remote-id type="github">karlstav/cava</remote-id>
+ </upstream>
+</pkgmetadata>