nixpkgs-suyu/pkgs/applications/audio/gmu/default.nix
Sergei Trofimovich dee3169047 gmu: pull pending upstream inclusion fix for ncurses-6.3
Without the fix build on ncurses-6.3 fails as:

    src/tools/ui.c: In function 'ui_draw_footer_button':
    src/tools/ui.c:329:9: error: format not a string literal and no format arguments [-Werror=format-security]
      329 |         wprintw(ui->win_footer->win, key);
          |         ^~~~~~~

While at it pulled fix for upstream gcc-10 and clang-12 which
default to -fno-common. Otherwise build would fail as:

    $ nix build --impure --expr 'with import ./. {}; gmu.override { stdenv = clang12Stdenv; }' -L
    ...
    gmu> ld: feloader.o:(.bss+0x8): multiple definition of `dlsymunion';
      decloader.o:(.bss+0x8): first defined here
2021-11-07 09:51:15 +00:00

50 lines
1.5 KiB
Nix

{lib, stdenv, fetchurl, fetchpatch, SDL, SDL_gfx, SDL_image, tremor, flac, mpg123, libmikmod
, speex, ncurses
, keymap ? "default"
, conf ? "unknown"
}:
stdenv.mkDerivation rec {
pname = "gmu";
version = "0.10.1";
src = fetchurl {
url = "https://wej.k.vu/files/${pname}-${version}.tar.gz";
sha256 = "03x0mc0xw2if0bpf0a15yprcyx1xccki039zvl2099dagwk6xskv";
};
patches = [
# pull pending upstream inclusion fix for ncurses-6.3:
# https://github.com/jhe2/gmu/pull/7
(fetchpatch {
name = "ncurses-6.3.patch";
url = "https://github.com/jhe2/gmu/commit/c8b3a10afee136feb333754ef6ec26383b11072f.patch";
sha256 = "0xp2j3jp8pkmv6yvnzi378m2dylbfsaqrsrkw7hbxw6kglzj399r";
})
# pull upstream fix for -fno-common toolchains like
# upstream gcc-10 of clang-13.
(fetchpatch {
name = "fno-common.patch";
url = "https://github.com/jhe2/gmu/commit/b705209f08ddfda141ad358ccd0c3d2d099be5e6.patch";
sha256 = "1ci2b8kz3r58rzmivlfhqjmcgqwlkwlzzhnyxlk36vmk240a3gqq";
})
];
buildInputs = [ SDL SDL_gfx SDL_image tremor flac mpg123 libmikmod speex ncurses ];
makeFlags = [ "PREFIX=$(out)" ];
postInstall = ''
cp ${keymap}.keymap $out/share/gmu/default.keymap
cp gmuinput.${conf}.conf $out/share/gmu/gmuinput.conf
mkdir -p $out/etc/gmu
cp gmu.${conf}.conf $out/etc/gmu/gmu.conf
'';
meta = {
homepage = "http://wejp.k.vu/projects/gmu";
description = "Open source music player for portable gaming consoles and handhelds";
license = lib.licenses.gpl2;
};
}