Again ALSA, today it’s a day dedicated entirely or almost entirely to ALSA it seems, and I’m really not sure why I’m doing it as I’m far from enjoying it.
As I said, some time ago I removed the feature that allowed to reduce the amount of software built by the media-sound/alsa-tools package. I removed it because, although documented by the ALSA users guide, the codepath was totally out of the package manager’s control, as you could have asked for a GTK+-based tool and not enabled the gtk useflag, resulting in an «automagic» dependency (or a failure to build if you didn’t have GTK installed before. I decided to just build everything that wasn’t disabled by useflags, adding a midi useflag so that I could check for alsa-lib’s midi useflag being enabled for the tools requiring that.
Now, after fixing alsa-firmware to use ALSA_CARDS variable to decide which firmwares to install and which to skip, I thought that it would have been nice to do the same for alsa-tools, so that I could give back the ability to enable or disable tools without having to add a new USE_EXPAND, and without having to leave it outside package manager’s control.
This resulted in me taking a deeper look at alsa-tools, like I never did before, which shown me that there were a few tools missing, a loader or two, and the ld10k1 package that is supposed to allowing load patches into emu10k1- and emu10k2-based soundcards (SoundBlaster Live!); I’ve now added it to the ebuild to be enabled if emu10k1 or emu10k1x drivers are in ALSA_CARDS, but the problem is that part of that particular tool should run as a service, and I have no idea how to handle that because, well, I don’t have an emu10k1/emu10k2 based card. Contributions on that are absolutely welcome.
For who’s wondering, here is how alsa-firmware and alsa-tools appear now:
[ebuild R ] media-sound/alsa-tools-1.0.14_rc1-r1 USE="-fltk -gtk -midi" ALSA_CARDS="-emu10k1 -emu10k1x -hdsp -hdspm -ice1712 -mixart -pcxhr -rme32 -rme96 -sb16 -sbawe -sscape -usb-usx2y -vx222" 0 kB [ebuild N ] media-sound/alsa-firmware-1.0.14_rc2-r1 ALSA_CARDS="(-asihpi) -hdsp -hdspm -korg1212 -maestro3 -mixart -pcxhr -sb16 -usb-usx2y -vx222" 0 kB
(well actually the committed version will have one more cards value, thanks to Marco (lavish) who’s gonna tell me which driver EchoAudio cards will be using.
After this, you’ll have very barebone packages if you don’t have any of the cards listed there, which makes them cheaper to just suggest merging there on the guide as they stand.
Of course, it will require people not using alsa-driver to start setting their ALSA_CARDS variable. As I said when I proposed to make it an USE expansions, alsa-driver is not the only ebuild where ALSA_CARDS can be used.