pytrainer: unpin python 3.10
[NixPkgs.git] / pkgs / games / ultrastardx / default.nix
blob1a8187f7f0e361eb65b22ce3936705e24207e994
1 { lib, stdenv
2 , autoreconfHook
3 , fetchFromGitHub
4 , pkg-config
5 , lua
6 , fpc
7 , pcre
8 , portaudio
9 , freetype
10 , libpng
11 , SDL2
12 , SDL2_image
13 , SDL2_gfx
14 , SDL2_mixer
15 , SDL2_net, SDL2_ttf
16 , ffmpeg
17 , sqlite
18 , zlib
19 , libX11
20 , libGLU
21 , libGL
24 let
25   sharedLibs = [
26     pcre portaudio freetype
27     SDL2 SDL2_image SDL2_gfx SDL2_mixer SDL2_net SDL2_ttf
28     sqlite lua zlib libX11 libGLU libGL ffmpeg
29   ];
31 in stdenv.mkDerivation rec {
32   pname = "ultrastardx";
33   version = "2024.10.0";
35   src = fetchFromGitHub {
36     owner = "UltraStar-Deluxe";
37     repo = "USDX";
38     rev = "v${version}";
39     hash = "sha256-X5LixPRAI7A8Ns3D2A24T05w0iHag1EJVqt0aW1ZBps=";
40   };
42   nativeBuildInputs = [ pkg-config autoreconfHook ];
43   buildInputs = [ fpc libpng ] ++ sharedLibs;
45   postPatch = ''
46     substituteInPlace src/config.inc.in \
47       --subst-var-by libpcre_LIBNAME libpcre.so.1
48   '';
50   preBuild =
51     let items = lib.concatMapStringsSep " " (x: "-rpath ${lib.getLib x}/lib") sharedLibs;
52     in ''
53       export NIX_LDFLAGS="$NIX_LDFLAGS ${items}"
54     '';
56   # dlopened libgcc requires the rpath not to be shrinked
57   dontPatchELF = true;
59   meta = with lib; {
60     homepage = "https://usdx.eu/";
61     description = "Free and open source karaoke game";
62     mainProgram = "ultrastardx";
63     license = licenses.gpl2Plus;
64     maintainers = with maintainers; [ Profpatsch ];
65     platforms = platforms.linux;
66   };