'Twas brillig, and Randell Jesup at 21/10/11 04:28 did gyre and gimble:
[ I initially posted this to the -users list, but it may be more appropriate here ]
At Mozilla, we're in the process of adding support for WebRTC (http://webrtc.org/), which is being standardized by the IETF (their part is 'rtcweb'), and the W3C. This adds real-time audio and video (and data) communication to browsers, peer-to-peer over encrypted channels.
We have a sound library that can load either Pulse or Alsa. However, for Alsa, it wants to look at snd_device_name_hint() and also _get_hint() and _free_hint(). It lazy-binds to libasound, so it will dlopen() it and then dlsym() all the symbols it uses; if any fail it unloads the lib and says it's not there. It uses the hint functions to build a device list, for example for presenting to the user.
I have two problems:
- Firefox is build on machines configured with I believe Centos5, and
I'm told the machines run Alsa 1.0.12, while the hints() functions were added in 1.0.14 (released June 2007). Right now I can't build release or 'try' builds on the build servers because of this.
Are you sure? CentOS 5 is fairly new and on a box I have access to:
[csuk@shake ~]$ cat /etc/redhat-release CentOS release 5.5 (Final) [csuk@shake ~]$ rpm -q alsa-lib alsa-lib-1.0.17-1.el5
So I guess it's likely CentOS 4? Even still updating alsa-lib to 1.0.14 should be pretty trivial and safe. Or do you not have any control at all over the version used?
- We'd like to run on older machines if possible, and official release
builds are made on those servers. On older machines, _hint() aren't available, so even if I make them optional to dlsym-loading, I would need some other method to get the information I assume using older, now-deprecated-or-gone interfaces.
Not sure, but I suspect strongly that you should simply not worry about this too much. While it's nice to give a good experience to everyone, people with systems 4 years old have got to expect a degree of degradation over a more recent install.
My €0.02
Col