pytrainer: unpin python 3.10
[NixPkgs.git] / pkgs / games / stepmania / default.nix
blob000b07c5433d96b78d0f845c42329ba2ab7f0641
1 { lib
2 , stdenv
3 , fetchFromGitHub
4 , fetchpatch
5 , cmake
6 , nasm
7 , alsa-lib
8 , ffmpeg_6
9 , glew
10 , glib
11 , gtk2
12 , libmad
13 , libogg
14 , libpng
15 , libpulseaudio
16 , libvorbis
17 , udev
18 , xorg
21 stdenv.mkDerivation {
22   pname = "stepmania";
23   version = "5.1.0-b2-unstable-2022-11-14";
25   src = fetchFromGitHub {
26     owner = "stepmania";
27     repo  = "stepmania";
28     rev   = "d55acb1ba26f1c5b5e3048d6d6c0bd116625216f";
29     hash = "sha256-49H2Q61R4l/G0fWsjCjiAUXeWwG3lcsDpV5XvR3l3QE=";
30   };
32   patches = [
33     # https://github.com/stepmania/stepmania/pull/2247
34     (fetchpatch {
35       name = "fix-building-with-ffmpeg6.patch";
36       url = "https://github.com/stepmania/stepmania/commit/3fef5ef60b7674d6431f4e1e4ba8c69b0c21c023.patch";
37       hash = "sha256-m+5sP+mIpcSjioRBdzChqja5zwNcwdSNAfvSJ2Lww+g=";
38     })
39   ];
41   postPatch = ''
42     sed '1i#include <ctime>' -i src/arch/ArchHooks/ArchHooks.h # gcc12
43   '';
45   nativeBuildInputs = [ cmake nasm ];
47   buildInputs = [
48     alsa-lib
49     ffmpeg_6
50     glew
51     glib
52     gtk2
53     libmad
54     libogg
55     libpng
56     libpulseaudio
57     libvorbis
58     udev
59     xorg.libXtst
60   ];
62   cmakeFlags = [
63     "-DWITH_SYSTEM_FFMPEG=1"
64     "-DWITH_SYSTEM_PNG=on"
65     "-DGTK2_GDKCONFIG_INCLUDE_DIR=${gtk2.out}/lib/gtk-2.0/include"
66     "-DGTK2_GLIBCONFIG_INCLUDE_DIR=${glib.out}/lib/glib-2.0/include"
67   ];
69   postInstall = ''
70     mkdir -p $out/bin
71     ln -s $out/stepmania-5.1/stepmania $out/bin/stepmania
73     mkdir -p $out/share/
74     cp -r $src/icons $out/share/
76     install -Dm444 $src/stepmania.desktop -t $out/share/applications
77   '';
79   meta = with lib; {
80     homepage = "https://www.stepmania.com/";
81     description = "Free dance and rhythm game for Windows, Mac, and Linux";
82     platforms = platforms.linux;
83     license = licenses.mit; # expat version
84     maintainers = with maintainers; [ h7x4 ];
85     mainProgram = "stepmania";
86   };