blob: 46d39b0de8d5d84edd366bbf767c17f86eacee2f [file] [log] [blame]
Andrew Geissler82c905d2020-04-13 13:39:40 -05001SUMMARY = "ALSA sound utilities"
Andrew Geissler90fd73c2021-03-05 15:25:55 -06002DESCRIPTION = "collection of small and often extremely powerful applications \
3designed to allow users to control the various parts of the ALSA system."
Andrew Geissler82c905d2020-04-13 13:39:40 -05004HOMEPAGE = "http://www.alsa-project.org"
5BUGTRACKER = "http://alsa-project.org/main/index.php/Bug_Tracking"
6SECTION = "console/utils"
Andrew Geissler9aee5002022-03-30 16:27:02 +00007# Some parts are GPL-2.0-or-later, some are GPL-2.0-only (e.g. axfer, alsactl)
8# so result is GPL-2.0-only
Andrew Geissler7e0e3c02022-02-25 20:34:39 +00009LICENSE = "GPL-2.0-only"
Andrew Geissler82c905d2020-04-13 13:39:40 -050010LIC_FILES_CHKSUM = "file://COPYING;md5=59530bdf33659b29e73d4adb9f9f6552 \
11 file://alsactl/utils.c;beginline=3;endline=18;md5=96cc06a4cebe5eb7975688ffb0e65642"
12DEPENDS = "alsa-lib ncurses libsamplerate0"
13
14PACKAGECONFIG ??= "udev"
15
16# alsabat can be built also without fftw support (with reduced functionality).
17# It would be better to always enable alsabat, but provide an option for
18# enabling/disabling fftw. The configure script doesn't support that, however
19# (at least in any obvious way), so for now we only support alsabat with fftw
20# or no alsabat at all.
21PACKAGECONFIG[bat] = "--enable-bat,--disable-bat,fftwf"
22
23PACKAGECONFIG[udev] = "--with-udev-rules-dir=`pkg-config --variable=udevdir udev`/rules.d,--with-udev-rules-dir=/unwanted/rules.d,udev"
24PACKAGECONFIG[manpages] = "--enable-xmlto, --disable-xmlto, xmlto-native docbook-xml-dtd4-native docbook-xsl-stylesheets-native"
25
26# alsa-utils specified in SRC_URI due to alsa-utils-scripts recipe
Andrew Geissler517393d2023-01-13 08:55:19 -060027SRC_URI = "https://www.alsa-project.org/files/pub/utils/alsa-utils-${PV}.tar.bz2 \
28 file://0001-aplay-axfer-Replace-off64_t-with-off_t.patch \
29 "
Patrick Williams7784c422022-11-17 07:29:11 -060030SRC_URI[sha256sum] = "e140fa604c351f36bd72167c8860c69d81b964ae6ab53992d6434dde38e9333c"
Andrew Geissler82c905d2020-04-13 13:39:40 -050031
32# On build machines with python-docutils (not python3-docutils !!) installed
33# rst2man (not rst2man.py) is detected and compile fails with
34# | make[1]: *** No rule to make target 'alsaucm.1', needed by 'all-am'. Stop.
35# Avoid this by disabling expicitly
36EXTRA_OECONF = "--disable-rst2man"
37
38inherit autotools gettext pkgconfig manpages
39
40# This are all packages that we need to make. Also, the now empty alsa-utils
41# ipk depends on them.
42
43ALSA_UTILS_PKGS = "\
44 ${@bb.utils.contains('PACKAGECONFIG', 'bat', 'alsa-utils-alsabat', '', d)} \
45 alsa-utils-alsamixer \
46 alsa-utils-alsatplg \
47 alsa-utils-midi \
48 alsa-utils-aplay \
49 alsa-utils-amixer \
50 alsa-utils-aconnect \
51 alsa-utils-iecset \
52 alsa-utils-speakertest \
53 alsa-utils-aseqnet \
54 alsa-utils-aseqdump \
55 alsa-utils-alsactl \
56 alsa-utils-alsaloop \
57 alsa-utils-alsaucm \
Andrew Geissler78b72792022-06-14 06:47:25 -050058 alsa-utils-scripts \
Andrew Geissler82c905d2020-04-13 13:39:40 -050059 "
60
61PACKAGES += "${ALSA_UTILS_PKGS}"
Patrick Williams213cb262021-08-07 19:21:33 -050062RDEPENDS:${PN} += "${ALSA_UTILS_PKGS}"
Andrew Geissler82c905d2020-04-13 13:39:40 -050063
Patrick Williams213cb262021-08-07 19:21:33 -050064FILES:${PN} = ""
65ALLOW_EMPTY:alsa-utils = "1"
66FILES:alsa-utils-alsabat = "${bindir}/alsabat"
Andrew Geissler78b72792022-06-14 06:47:25 -050067FILES:alsa-utils-alsatplg = "${bindir}/alsatplg ${libdir}/alsa-topology"
Patrick Williams213cb262021-08-07 19:21:33 -050068FILES:alsa-utils-aplay = "${bindir}/aplay ${bindir}/arecord ${bindir}/axfer"
69FILES:alsa-utils-amixer = "${bindir}/amixer"
70FILES:alsa-utils-alsamixer = "${bindir}/alsamixer"
71FILES:alsa-utils-speakertest = "${bindir}/speaker-test ${datadir}/sounds/alsa/ ${datadir}/alsa/speaker-test/"
72FILES:alsa-utils-midi = "${bindir}/aplaymidi ${bindir}/arecordmidi ${bindir}/amidi"
73FILES:alsa-utils-aconnect = "${bindir}/aconnect"
74FILES:alsa-utils-aseqnet = "${bindir}/aseqnet"
75FILES:alsa-utils-iecset = "${bindir}/iecset"
76FILES:alsa-utils-alsactl = "${sbindir}/alsactl */udev/rules.d/90-alsa-restore.rules */*/udev/rules.d/90-alsa-restore.rules ${systemd_unitdir} ${localstatedir}/lib/alsa ${datadir}/alsa/init/"
77FILES:alsa-utils-aseqdump = "${bindir}/aseqdump"
78FILES:alsa-utils-alsaloop = "${bindir}/alsaloop"
79FILES:alsa-utils-alsaucm = "${bindir}/alsaucm */udev/rules.d/89-alsa-ucm.rules */*/udev/rules.d/89-alsa-ucm.rules"
Andrew Geissler78b72792022-06-14 06:47:25 -050080FILES:alsa-utils-scripts = "${sbindir}/alsaconf \
81 ${sbindir}/alsa-info.sh \
82 ${sbindir}/alsabat-test.sh \
83 "
Andrew Geissler82c905d2020-04-13 13:39:40 -050084
Patrick Williams213cb262021-08-07 19:21:33 -050085SUMMARY:alsa-utils-alsabat = "Command-line sound tester for ALSA sound card driver"
86SUMMARY:alsa-utils-alsatplg = "Converts topology text files into binary format for kernel"
87SUMMARY:alsa-utils-aplay = "Play (and record) sound files using ALSA"
88SUMMARY:alsa-utils-amixer = "Command-line control for ALSA mixer and settings"
89SUMMARY:alsa-utils-alsamixer = "ncurses-based control for ALSA mixer and settings"
90SUMMARY:alsa-utils-speakertest = "ALSA surround speaker test utility"
91SUMMARY:alsa-utils-midi = "Miscellaneous MIDI utilities for ALSA"
92SUMMARY:alsa-utils-aconnect = "ALSA sequencer connection manager"
93SUMMARY:alsa-utils-aseqnet = "Network client/server for ALSA sequencer"
94SUMMARY:alsa-utils-iecset = "ALSA utility for setting/showing IEC958 (S/PDIF) status bits"
95SUMMARY:alsa-utils-alsactl = "Saves/restores ALSA-settings in /etc/asound.state"
96SUMMARY:alsa-utils-aseqdump = "Shows the events received at an ALSA sequencer port"
97SUMMARY:alsa-utils-alsaloop = "ALSA PCM loopback utility"
98SUMMARY:alsa-utils-alsaucm = "ALSA Use Case Manager"
Andrew Geissler78b72792022-06-14 06:47:25 -050099SUMMARY:alsa-utils-scripts = "Shell scripts that show help info and create ALSA configuration files"
Andrew Geissler82c905d2020-04-13 13:39:40 -0500100
Patrick Williams213cb262021-08-07 19:21:33 -0500101RRECOMMENDS:alsa-utils-alsactl = "alsa-states"
Andrew Geissler82c905d2020-04-13 13:39:40 -0500102
103do_install() {
104 autotools_do_install
105
Andrew Geissler78b72792022-06-14 06:47:25 -0500106 install -d ${D}${sbindir}
107 install -m 0755 ${B}/alsaconf/alsaconf ${D}${sbindir}/
108 install -m 0755 ${S}/alsa-info/alsa-info.sh ${D}${sbindir}/
109 if ${@bb.utils.contains('PACKAGECONFIG', 'bat', 'true', 'false', d)}; then
110 install -m 0755 ${S}/bat/alsabat-test.sh ${D}${sbindir}/
111 fi
Andrew Geissler82c905d2020-04-13 13:39:40 -0500112
113 # If udev is disabled, we told configure to install the rules
114 # in /unwanted, so we can remove them now. If udev is enabled,
115 # then /unwanted won't exist and this will have no effect.
116 rm -rf ${D}/unwanted
117}
Andrew Geissler78b72792022-06-14 06:47:25 -0500118
119
120PROVIDES = "alsa-utils-alsaconf alsa-utils-scripts"
121
122RDEPENDS:${PN}-scripts += "bash"