Sun, 23 Oct 2011
RFBP: Request for birthday present/package
There is a program that I love: bb.
bb is a demo of the famous ASCII Art library, aalib.
dT8 8Tb dT 8 8 Tb dT 8 8 Tb <PROJECT><PROJECT> dT 8 8 Tb dT 8 8 Tb
bb has a serious bug, however: BB's "graphics" freeze when music starts.
Here's the issue.
- bb uses libmikmod to play sound.
- Back in the twentieth century, many of us thought it would be cool to have applications play sound through a system service called EsounD. To enable that, the libmikmod maintainers added the ability for libmikmod to send audio to that daemon.
- libmikmod detects if your system uses esound, and if so, sends sound there by default.
- libmikmod's esound support is broken, and bb half-crashes (as per #123150) when it gets used.
- Today, nearly everyone's sound output goes through pulseaudio, which supports ALSA as well as the old esound protocol for backwards-compatibility.
So if your system (like most GNU/Linux systems) uses pulseaudio for sound, then bb is broken. That means every Ubuntu user and most desktop Debian users can't use it.
There are a few possible fixes, depending on where you'd want to solve the problem. If you just want bb to run on your own machine, without recompiling anything, you can adjust pulseaudio's configuration (in /etc/pulse/default.pa) to disable esound support. If you want to do that, just comment out this line:
load-module module-esound-protocol-unix
We could also possibly patch bb so that it asks libmikmod not to use its esound "support."
I think the smarter thing to do is to adjust libmikmod. Since its esound support seems to be just plain broken, it should be removed. At very least, it should not be the default when ALSA output is available. There is a new upstream release of libmikmod, maybe the esound output is fixed.
In Debian, libmikmod is orphaned. When a package is orphaned, it means that a new person must step in and adopt the package. Debian packages need ongoing care and commitment to fix issues and make changes like this that benefit the users.
In this case, you'd need to understand some C and be willing to maintain a shared library. Maintaining a library in Debian requires attention to detail, but it is quite doable. Since you would be adopting an existing package, most of the work is already done for you. I would also be quite willing to answer questions. If you're not a Debian developer, I would happily sponsor uploads of this package into Debian so that the fixes are part of the distribution.
So: who will maintain libmikmod and fix bb? Could it be you?
It would make a really great birthday present if the amazing bb program worked in the next Debian release. Leave a comment if you have questions or are interested!
P.S. In a pinch, I can be convinced to maintain libmikmod myself, but I think this is a great opportunity for someone new to Debian to make a big difference.