| Message ID | 20260116174128.1478960-1-ross.burton@arm.com |
|---|---|
| State | New |
| Headers | show |
| Series | alsa-utils: fix packaging | expand |
On 1/16/2026 11:41 AM, Ross Burton via lists.openembedded.org wrote: > 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> > --- > meta/recipes-multimedia/alsa/alsa-utils_1.2.15.1.bb | 9 ++++++++- > 1 file changed, 8 insertions(+), 1 deletion(-) > > diff --git a/meta/recipes-multimedia/alsa/alsa-utils_1.2.15.1.bb b/meta/recipes-multimedia/alsa/alsa-utils_1.2.15.1.bb > index 927f94afb6..2e85f936fa 100644 > --- a/meta/recipes-multimedia/alsa/alsa-utils_1.2.15.1.bb > +++ b/meta/recipes-multimedia/alsa/alsa-utils_1.2.15.1.bb > @@ -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] = "5ad79f349e59c30c9a4929ad4995ebee33267473e0e632d7c1a30e2b093d3327" > @@ -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,
diff --git a/meta/recipes-multimedia/alsa/alsa-utils_1.2.15.1.bb b/meta/recipes-multimedia/alsa/alsa-utils_1.2.15.1.bb index 927f94afb6..2e85f936fa 100644 --- a/meta/recipes-multimedia/alsa/alsa-utils_1.2.15.1.bb +++ b/meta/recipes-multimedia/alsa/alsa-utils_1.2.15.1.bb @@ -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] = "5ad79f349e59c30c9a4929ad4995ebee33267473e0e632d7c1a30e2b093d3327" @@ -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,
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> --- meta/recipes-multimedia/alsa/alsa-utils_1.2.15.1.bb | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-)