]> git.ipfire.org Git - thirdparty/openembedded/openembedded-core.git/commitdiff
alsa-utils: fix packaging
authorRoss Burton <ross.burton@arm.com>
Fri, 16 Jan 2026 17:41:28 +0000 (17:41 +0000)
committerRichard Purdie <richard.purdie@linuxfoundation.org>
Thu, 22 Jan 2026 14:21:21 +0000 (14:21 +0000)
In the previous refactoring of this package[1] I forgot to add provides
when merging some packages, which meant that installation of alsa-utils
wouldn't succeed:

  - nothing provides alsa-utils-aplaymidi needed by alsa-utils-1.2.15.1-r0.cortexa57 from oe-repo
  - nothing provides alsa-utils-aplaymidi2 needed by alsa-utils-1.2.15.1-r0.cortexa57 from oe-repo
  - nothing provides alsa-utils-arecordmidi needed by alsa-utils-1.2.15.1-r0.cortexa57 from oe-repo
  - nothing provides alsa-utils-arecordmidi2 needed by alsa-utils-1.2.15.1-r0.cortexa57 from oe-repo
  - nothing provides alsa-utils-axfer needed by alsa-utils-1.2.15.1-r0.cortexa57 from oe-repo

This is because the auto-splitting generates a package for each of the
binaries, but there are explicit FILES that take priority which result
in the binaries being in another package.  However, the dependencies
still exist. We could filter the package list after the split, but it is
easier to add RPROVIDES for arecord and a*midi to the relevant packages,
so that the dependencies are satisfied.

Also axfer is a separate tool, so put that in its own package instead of
merging with aplay.

Finally, add a PR, as it appears that dynamically-generated packaging
isn't enough to change the hash, and the wrong packages were being pulled
from sstate.

Signed-off-by: Ross Burton <ross.burton@arm.com>
Tested-by: Ryan Eatmon <reatmon@ti.com>
Signed-off-by: Antonin Godard <antonin.godard@bootlin.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
meta/recipes-multimedia/alsa/alsa-utils_1.2.15.2.bb

index ef3efdc83043c529f9c1d09edb474ebe34ac17ae..6d75bff09e5cb76c9df40da35bbe87ab2eb6c540 100644 (file)
@@ -11,6 +11,9 @@ LIC_FILES_CHKSUM = "file://COPYING;md5=59530bdf33659b29e73d4adb9f9f6552 \
                     file://alsactl/utils.c;beginline=3;endline=18;md5=96cc06a4cebe5eb7975688ffb0e65642"
 DEPENDS = "alsa-lib ncurses libsamplerate0 bash"
 
+# Only needed as the dynamic packaging was altered, remove on upgrade
+PR = "r1"
+
 # alsa-utils specified in SRC_URI due to alsa-utils-scripts recipe
 SRC_URI = "https://www.alsa-project.org/files/pub/utils/alsa-utils-${PV}.tar.bz2"
 SRC_URI[sha256sum] = "7aaaafbfb01942113ec0c31e51f705910e81079205088ca2f8f137a3869e1a3a"
@@ -35,7 +38,7 @@ FILES:${PN}-alsabat      = "${sbindir}/alsabat-test.sh"
 FILES:${PN}-alsactl      = "*/udev/rules.d/90-alsa-restore.rules */*/udev/rules.d/90-alsa-restore.rules ${systemd_unitdir} ${localstatedir}/lib/alsa ${datadir}/alsa/init/"
 FILES:${PN}-alsatplg     = "${libdir}/alsa-topology"
 FILES:${PN}-amidi        = "${bindir}/amidi ${bindir}/aplaymidi* ${bindir}/arecordmidi*"
-FILES:${PN}-aplay        = "${bindir}/aplay ${bindir}/arecord ${bindir}/axfer"
+FILES:${PN}-aplay        = "${bindir}/aplay ${bindir}/arecord"
 FILES:${PN}-speaker-test = "${datadir}/sounds/alsa/"
 
 SUMMARY:${PN}-aconnect       = "ALSA sequencer connection manager"
@@ -53,12 +56,16 @@ SUMMARY:${PN}-aplay          = "Play (and record) sound files using ALSA"
 SUMMARY:${PN}-aseqdump       = "Shows the events received at an ALSA sequencer port"
 SUMMARY:${PN}-aseqnet        = "Network client/server for ALSA sequencer"
 SUMMARY:${PN}-aseqsend       = "Send arbitrary messages to ALSA seqencer port"
+SUMMARY:${PN}-axfer          = "Transfer audio data frames"
 SUMMARY:${PN}-iecset         = "ALSA utility for setting/showing IEC958 (S/PDIF) status bits"
 SUMMARY:${PN}-nhlt-dmic-info = "Dumps microphone array information from ACPI NHLT table"
 SUMMARY:${PN}-speaker-test   = "ALSA surround speaker test utility"
 
 RRECOMMENDS:${PN}-alsactl = "alsa-states"
 
+RPROVIDES:${PN}-aplay += "${PN}-arecord"
+RPROVIDES:${PN}-amidi += "${PN}-aplaymidi ${PN}-aplaymidi2 ${PN}-arecordmidi ${PN}-arecordmidi2"
+
 do_install:append() {
        # If udev is disabled, we told configure to install the rules
        # in /unwanted, so we can remove them now. If udev is enabled,