Glob2-0.8.9 (and earlier versions, if the forum is to be believed) dies on startup unless esd is active (maybe it also works with arts, I am not sure). The problem is that in SoundMixer.cpp, the mixer thinks that since it asked for an SDL_AudioSpec to supply the mixer callback with 128k of data at a time, then SDL_AudioSpec will faithfully obey. As a matter of fact, SDL_AudioSpec does behave as expected when the mixer is around, but when playing to a raw alsa device, it only gives the callback function 2k of data at a time. This triggers a spurious assert() - the mixer callback has no features whatsoever that depend on an exact numerical value of the length of the data stream, but the authors of glob2 had deciced to practice some paranoid defensive programming... Reproducible: Always Steps to Reproduce: 1. make sure sound dameons aren't active 2. emerge glob2 3. $ glob2 Actual Results: Toolkit : Initialized : Graphic Context created Toolkit : Screen set to 640x480 at 0 bpp in window glob2: SoundMixer.cpp:70: void mixaudio(void*, Uint8*, int): Assertion `nsamples == 8192*8' failed. Aborted Expected Results: glob2 successfully runs
Created attachment 41915 [details, diff] glob2-0.8.9.soundmixer.patch Patch to change the assertion to something more sensible. Also, typo above: change "SDL_AudioSpec does behave as expected when the mixer is around" to "SDL_AudioSpec does behave as expected when the sound daemon is around"
Created attachment 41916 [details] glob2-0.8.9.ebuild to use the patch above
Let's have the output of emerge --info please.
Turned down the assert checking. Upstream will pick this up for the next release. Thanks for the bug report. Resync and remerge for the fix. Since it works for me as is and for most people, I imagine, there's no rev bump.