superfile: 1.1.6 -> 1.1.7 (#371308)
[NixPkgs.git] / pkgs / by-name / gl / glava / package.nix
blob742fbe2a72d048df20b5c166ccd0fbac9bcc152a
2   lib,
3   stdenv,
4   writeScript,
5   fetchFromGitHub,
6   libGL,
7   libX11,
8   libXext,
9   python3,
10   libXrandr,
11   libXrender,
12   libpulseaudio,
13   libXcomposite,
14   enableGlfw ? false,
15   glfw,
16   runtimeShell,
19 let
20   inherit (lib) optional makeLibraryPath;
22   wrapperScript = writeScript "glava" ''
23     #!${runtimeShell}
24     case "$1" in
25       --copy-config|-C)
26         # The binary would symlink it, which won't work in Nix because the
27         # garbage collector will eventually remove the original files after
28         # updates
29         echo "Nix wrapper: Copying glava config to ~/.config/glava"
30         cp -r --no-preserve=all @out@/etc/xdg/glava ~/.config/glava
31         ;;
32       *)
33         exec @out@/bin/.glava-unwrapped "$@"
34     esac
35   '';
37 stdenv.mkDerivation rec {
38   pname = "glava";
39   version = "1.6.3";
41   src = fetchFromGitHub {
42     owner = "wacossusca34";
43     repo = "glava";
44     rev = "v${version}";
45     sha256 = "0kqkjxmpqkmgby05lsf6c6iwm45n33jk5qy6gi3zvjx4q4yzal1i";
46   };
48   buildInputs = [
49     libX11
50     libXext
51     libXrandr
52     libXrender
53     libpulseaudio
54     libXcomposite
55   ] ++ optional enableGlfw glfw;
57   nativeBuildInputs = [
58     python3
59   ];
61   preConfigure = ''
62     for f in $(find -type f);do
63       substituteInPlace $f \
64         --replace /etc/xdg $out/etc/xdg
65     done
67     substituteInPlace Makefile \
68       --replace '$(DESTDIR)$(SHADERDIR)' '$(SHADERDIR)'
70     substituteInPlace Makefile \
71       --replace 'unknown' 'v${version}'
72   '';
74   makeFlags = optional (!enableGlfw) "DISABLE_GLFW=1";
76   installFlags = [
77     "DESTDIR=$(out)"
78   ];
80   fixupPhase = ''
81     mkdir -p $out/bin
82     mv $out/usr/bin/glava $out/bin/.glava-unwrapped
83     rm -rf $out/usr
85     patchelf \
86       --set-rpath "$(patchelf --print-rpath $out/bin/.glava-unwrapped):${makeLibraryPath [ libGL ]}" \
87       $out/bin/.glava-unwrapped
89     substitute ${wrapperScript} $out/bin/glava --subst-var out
90     chmod +x $out/bin/glava
91   '';
93   meta = with lib; {
94     description = ''
95       OpenGL audio spectrum visualizer
96     '';
97     mainProgram = "glava";
98     homepage = "https://github.com/wacossusca34/glava";
99     platforms = platforms.linux;
100     license = licenses.gpl3;
101     maintainers = with maintainers; [
102       eadwu
103     ];
104   };