Subject: [bug#31934] [PATCH] Fix ALSA_PLUGIN_DIR usage

From: [email-masked] (宋文武)
Date: Sun, 24 Jun 2018 15:05:17 +0800

Julien Lepiller <[email-masked]> writes:

> Hi, this patch fixes an issue with the patch for alsa-lib and defines
> a search-path rather than a native-search-path. In order to make the
> alsa-service work properly, you still need to have alsa-lib and
> alsa-plugins:pulseaudio in the same profile, and point ALSA_PLUGIN_DIR
> to $PROFILE/lib/alsa-lib.

Hello, after some hours of searching...  I found that we can use the
'lib' option in 'pcm_type' and 'ctl_type' to specify the library path
for alsa plugins, e.g:

--8<---------------cut here---------------start------------->8---
# Use PulseAudio by default
pcm_type.pulse {
  lib "/gnu/store/icvba55494j4vxb7yp97iya1h6g1l30h-alsa-plugins-1.1.6-pulseaudio/lib/alsa-lib/libasound_module_pcm_pulse.so"
}

ctl_type.pulse {
  lib "/gnu/store/icvba55494j4vxb7yp97iya1h6g1l30h-alsa-plugins-1.1.6-pulseaudio/lib/alsa-lib/libasound_module_ctl_pulse.so"
}

pcm.!default {
  type pulse
  fallback "sysdefault"
  hint {
    show on
    description "Default ALSA Output (currently PulseAudio Sound Server)"
  }
}

ctl.!default {
  type pulse
  fallback "sysdefault"
}
--8<---------------cut here---------------end--------------->8---

So I think we can make our 'alsa-service' do this, instead of patching
alsa-lib for 'ALSA_PLUGIN_DIR'.  We could document it in the manual, so
that a user wanting to use other alsa plugins get a hint to add:
  'lib "/home/xxx/.guix-profile/lib/alsa-lib/libasound_xxx.so"'
in '~/.asoundrc'.  How's this sound?

Also, NixOS did this actually, and they went far to support running
32-bit alsa applications with 64-bit pulseaudio:

https://github.com/NixOS/nixpkgs/commit/0c8ad65560fa1df07ea7b7937e02b44b1ce2b498

I think we don't need this now...