After last sdl-mixer update supertux and other games stoped loading MOD files. Changelog of sdl-mixer update suggests change on mikmod. Downgrading sdl-mixer to 1.2.5-r1 solved the problem. Reproducible: Always Steps to Reproduce:
paul: what did i break ? :)
Apparently the use of libmikmod instead of the internal version is not as straightforward as appeared. I suggest to mask -r2 until we can make it work.
This breaks pretty much every SDL game's sound for me, causing most of them to crash.
1.2.5-r2 has been packaged masked
*** Bug 52082 has been marked as a duplicate of this bug. ***
This bug also exists with sdl-mixer-1.2.5-r3. I commented out the line epatch ${FILESDIR}/${PV}-system-mikmod.patch in sdl-mixer-1.2.5-r3.ebuild and mods started working again in tuxracer, etc. The exact same line is present in sdl-mixer-1.2.5-r2. Suggest leaving out this "fix", all it does is break things.
I was going to comment on the bug being on sdl-mixer but someone was faster than me :). Also, shouldn't the AMD64 patches be applied only when the arch is amd64?
All the patches do is patch the ifdefs to let it detect native 64-bit under amd64; they don't alter the code in any proprietary amd64 way, so what's the harm? Easier to just patch everything.
The system-mikmod patch is not really amd64 only. It was a simple attempt at trying to put some sanity in sdl-mixer. It sadly fails, so more work is probably needed to make it work with the system libmikmod.
What does this part of the patch does? --- SDL_mixer-1.2.5.orig/music.c.orig 2004-05-23 18:41:25.760726312 -0400 +++ SDL_mixer-1.2.5/music.c 2004-05-23 18:43:37.272733448 -0400 @@ -1058,4 +1058,7 @@ } +static int _pl_synchro_value; +#define Player_SetSynchroValue(x) _pl_synchro_value=x; +#define Player_GetSynchroValue() _pl_synchro_value; int Mix_SetSynchroValue(int i) { @@ -1110,8 +1111,8 @@ #endif #ifdef MOD_MUSIC MikMod_Exit(); - MikMod_UnregisterAllLoaders(); - MikMod_UnregisterAllDrivers(); +// MikMod_UnregisterAllLoaders(); +// MikMod_UnregisterAllDrivers(); #endif } ? To me it's only defining a global variable ( static int _pl_synchro_value; ) I'll try to compile without it and post the results.
It moves a (seemingly pointless) piece of source from the internal mikmod implementation to the client file, such as to give the interface. The last one is because libmikmod does not contain the closing code that the internal mikmod does.
yeah, the amd64 peeps released -r3 on us :) i package masked that too and added the amd64 patch to -r1
*** This bug has been marked as a duplicate of 51852 ***
Closing to clean up after bugzilla upgrade. reopen if closed in error. Thanks.
clean up bug list after bugzilla update