biglybt: 3.5.0.0 -> 3.6.0.0
[NixPkgs.git] / pkgs / applications / audio / friture / default.nix
blob60a098bb1ab8bb7357812bbbf8796e20b69d4e9b
1 { lib, fetchFromGitHub, python3Packages, wrapQtAppsHook }:
3 python3Packages.buildPythonApplication rec {
4   pname = "friture";
5   version = "0.49";
7   src = fetchFromGitHub {
8     owner = "tlecomte";
9     repo = pname;
10     rev = "v${version}";
11     sha256 = "sha256-xKgyBV/Qc+9PgXyxcT0xG1GXLC6KnjavJ/0SUE+9VSY=";
12   };
14   nativeBuildInputs = (with python3Packages; [ numpy cython scipy ]) ++
15     [ wrapQtAppsHook ];
17   propagatedBuildInputs = with python3Packages; [
18     sounddevice
19     pyopengl
20     pyopengl-accelerate
21     docutils
22     numpy
23     pyqt5
24     appdirs
25     pyrr
26     rtmixer
27   ];
29   postPatch = ''
30     # Remove version constraints from Python dependencies in setup.py
31     sed -i -E "s/\"([A-Za-z0-9]+)(=|>|<)=[0-9\.]+\"/\"\1\"/g" setup.py
32   '';
34   preFixup = ''
35     makeWrapperArgs+=("''${qtWrapperArgs[@]}")
36   '';
38   postInstall = ''
39     substituteInPlace $out/share/applications/friture.desktop --replace usr/bin/friture friture
41     for size in 16 32 128 256 512
42     do
43       mkdir -p $out/share/icons/hicolor/$size\x$size
44       cp $src/resources/images/friture.iconset/icon_$size\x$size.png $out/share/icons/hicolor/$size\x$size/friture.png
45     done
46     mkdir -p $out/share/icons/hicolor/scalable/apps/
47     cp $src/resources/images-src/window-icon.svg $out/share/icons/hicolor/scalable/apps/friture.svg
48   '';
50   meta = with lib; {
51     description = "A real-time audio analyzer";
52     mainProgram = "friture";
53     homepage = "https://friture.org/";
54     license = licenses.gpl3;
55     platforms = platforms.linux; # fails on Darwin
56     maintainers = with maintainers; [ laikq alyaeanyx ];
57   };