SDl2_mixer: fix MIDI playback by adding timidity paths
Noticed on fheroes2 package: before the change fheroes2 was not able to play MIDI samples and complained as: PlayMusic: music parameter was NULL It happens because default search paths for 'timidity.cfg' did not include any of nixos's paths in 'timidity/options.h': getenv("TIMIDITY_CFG") "." #define DEFAULT_PATH "/etc/timidity" #define DEFAULT_PATH1 "/usr/share/timidity" #define DEFAULT_PATH2 "/usr/local/share/timidity" #define DEFAULT_PATH3 "/usr/local/lib/timidity" As a result even with globally installed timidity MIDI can't be played. abuse package also has the same problem and works it around by changing directory to local copy of 'timidity.cfg': # The timidity bundled into SDL_mixer looks in . and in several global places # like /etc for its configuration file. cd @out@/etc exec @out@/bin/.abuse-bin "$@" The change fixes SDL2_mixer by changing "/usr/share/timidity" path to nix's timidity store path. Tested on fheroes2 with MIDI files.
This commit is contained in:
parent
31211d81df
commit
f11d1d91cb
1 changed files with 9 additions and 0 deletions
|
@ -13,6 +13,7 @@
|
||||||
, mpg123
|
, mpg123
|
||||||
, opusfile
|
, opusfile
|
||||||
, smpeg2
|
, smpeg2
|
||||||
|
, timidity
|
||||||
}:
|
}:
|
||||||
|
|
||||||
stdenv.mkDerivation rec {
|
stdenv.mkDerivation rec {
|
||||||
|
@ -42,8 +43,16 @@ stdenv.mkDerivation rec {
|
||||||
mpg123
|
mpg123
|
||||||
opusfile
|
opusfile
|
||||||
smpeg2
|
smpeg2
|
||||||
|
# MIDI patterns
|
||||||
|
timidity
|
||||||
];
|
];
|
||||||
|
|
||||||
|
# fix default path to timidity.cfg so MIDI files could be played
|
||||||
|
postPatch = ''
|
||||||
|
substituteInPlace timidity/options.h \
|
||||||
|
--replace "/usr/share/timidity" "${timidity}/share/timidity"
|
||||||
|
'';
|
||||||
|
|
||||||
configureFlags = [
|
configureFlags = [
|
||||||
"--disable-music-ogg-shared"
|
"--disable-music-ogg-shared"
|
||||||
"--disable-music-flac-shared"
|
"--disable-music-flac-shared"
|
||||||
|
|
Loading…
Reference in a new issue