diff options
-rw-r--r-- | media-sound/alsa-tools/alsa-tools-1.2.5-r1.ebuild | 159 | ||||
-rw-r--r-- | media-sound/alsa-tools/files/alsa-tools-1.2.5-hdspmixer-crash.patch | 23 |
2 files changed, 182 insertions, 0 deletions
diff --git a/media-sound/alsa-tools/alsa-tools-1.2.5-r1.ebuild b/media-sound/alsa-tools/alsa-tools-1.2.5-r1.ebuild new file mode 100644 index 000000000000..7d92d8a908ac --- /dev/null +++ b/media-sound/alsa-tools/alsa-tools-1.2.5-r1.ebuild @@ -0,0 +1,159 @@ +# Copyright 1999-2023 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +inherit autotools flag-o-matic libtool xdg + +DESCRIPTION="Advanced Linux Sound Architecture tools" +HOMEPAGE="https://alsa-project.org/wiki/Main_Page" +SRC_URI="https://www.alsa-project.org/files/pub/tools/${P}.tar.bz2" + +LICENSE="GPL-2" +SLOT="0.9" +KEYWORDS="~alpha ~amd64 ~arm64 ~hppa ~ia64 ~mips ~ppc ~ppc64 ~riscv ~sparc ~x86" + +IUSE="fltk gtk alsa_cards_hdsp alsa_cards_hdspm alsa_cards_mixart +alsa_cards_vx222 alsa_cards_usb-usx2y alsa_cards_sb16 alsa_cards_sbawe +alsa_cards_emu10k1 alsa_cards_emu10k1x alsa_cards_ice1712 +alsa_cards_rme32 alsa_cards_rme96 alsa_cards_sscape alsa_cards_pcxhr" + +# bug #468294 +DEPEND=" + >=media-libs/alsa-lib-${PV} + >=dev-python/pyalsa-1.0.26 + fltk? ( >=x11-libs/fltk-1.3.0:1 ) + gtk? ( + dev-libs/gobject-introspection + x11-libs/gtk+:2 + x11-libs/gtk+:3 + ) +" +# bug #456114 +RDEPEND=" + ${DEPEND} + gtk? ( media-fonts/font-misc-misc ) +" +BDEPEND=" + virtual/pkgconfig +" + +PATCHES=( + "${FILESDIR}"/envy24control-config-dir.patch + "${FILESDIR}"/${PN}-1.2.5-hdspmixer-crash.patch +) + +pkg_setup() { + ALSA_TOOLS=( + seq/sbiload + us428control + hwmixvolume + hda-verb + $(usev alsa_cards_mixart mixartloader) + $(usev alsa_cards_vx222 vxloader) + $(usev alsa_cards_usb-usx2y usx2yloader) + $(usev alsa_cards_pcxhr pcxhrloader) + $(usev alsa_cards_sscape sscape_ctl) + ) + + if use gtk; then + ALSA_TOOLS+=( + echomixer + hdajackretask + $(usev alsa_cards_ice1712 envy24control) + ) + # Perhaps a typo the following && logic? + if use alsa_cards_rme32 && use alsa_cards_rme96 ; then + ALSA_TOOLS+=( rmedigicontrol ) + fi + fi + + if use alsa_cards_hdsp || use alsa_cards_hdspm ; then + ALSA_TOOLS+=( + hdsploader + $(usev fltk 'hdspconf hdspmixer') + ) + fi + + if use alsa_cards_sb16 || use alsa_cards_sbawe ; then + ALSA_TOOLS+=( sb16_csp ) + fi + + if use alsa_cards_emu10k1 || use alsa_cards_emu10k1x; then + ALSA_TOOLS+=( as10k1 ld10k1 ) + fi +} + +src_prepare() { + default + + # This block only deals with the tools that still use GTK and the + # AM_PATH_GTK macro. + for dir in echomixer envy24control rmedigicontrol; do + has "${dir}" "${ALSA_TOOLS[*]}" || continue + pushd "${dir}" &> /dev/null || die + eautoreconf + popd &> /dev/null || die + done + + # This block deals with the tools that are being patched + for dir in hdspconf; do + has "${dir}" "${ALSA_TOOLS[*]}" || continue + pushd "${dir}" &> /dev/null || die + eautoreconf + popd &> /dev/null || die + done + + elibtoolize +} + +src_configure() { + if use fltk; then + # hdspmixer requires fltk + append-ldflags "-L$(dirname $(fltk-config --libs))" + append-flags "-I$(fltk-config --includedir)" + fi + + local f + for f in ${ALSA_TOOLS[@]} ; do + cd "${S}/${f}" || die + case "${f}" in + echomixer,envy24control,rmedigicontrol ) + econf --with-gtk2 + ;; + * ) + econf + ;; + esac + done +} + +src_compile() { + local f + for f in ${ALSA_TOOLS[@]} ; do + cd "${S}/${f}" || die + emake + done +} + +src_install() { + local f + for f in ${ALSA_TOOLS[@]} ; do + # Install the main stuff + cd "${S}/${f}" || die + # hotplugdir is for usx2yloader/Makefile.am + emake DESTDIR="${D}" hotplugdir=/lib/firmware install + + # Install the text documentation + local doc + for doc in README TODO ChangeLog AUTHORS; do + if [[ -f "${doc}" ]]; then + mv "${doc}" "${doc}.$(basename ${f})" || die + dodoc "${doc}.$(basename ${f})" + fi + done + done + + # Punt at least /usr/lib/liblo10k1.la (last checked, 1.0.27) + find "${ED}" -type f -name '*.la' -delete || die +} diff --git a/media-sound/alsa-tools/files/alsa-tools-1.2.5-hdspmixer-crash.patch b/media-sound/alsa-tools/files/alsa-tools-1.2.5-hdspmixer-crash.patch new file mode 100644 index 000000000000..c80e3f7e47bb --- /dev/null +++ b/media-sound/alsa-tools/files/alsa-tools-1.2.5-hdspmixer-crash.patch @@ -0,0 +1,23 @@ +https://github.com/alsa-project/alsa-tools/commit/8c8d6941f21ea68894ce7fd13e92b3ac9f16dc8a + +From 8c8d6941f21ea68894ce7fd13e92b3ac9f16dc8a Mon Sep 17 00:00:00 2001 +From: wynnfeng <wynnfeng@tencent.com> +Date: Sun, 29 Jan 2023 20:47:53 +0800 +Subject: [PATCH] hdspmixer: fix core dump + +Initialize the name pointer to NULL. + +Fixes: https://github.com/alsa-project/alsa-tools/pull/14 +Signed-off-by: wynnfeng <wynnfeng@tencent.com> +Signed-off-by: Jaroslav Kysela <perex@perex.cz> +--- a/hdspmixer/src/hdspmixer.cxx ++++ b/hdspmixer/src/hdspmixer.cxx +@@ -39,7 +39,7 @@ int main(int argc, char **argv) + { + HDSPMixerWindow *window; + HDSPMixerCard *hdsp_cards[3]; +- char *name, *shortname; ++ char *name = NULL, *shortname; + int card; + int cards = 0; + |