about summary refs log tree commit diff
path: root/pkgs/by-name/fr/friture/package.nix
diff options
context:
space:
mode:
Diffstat (limited to 'pkgs/by-name/fr/friture/package.nix')
-rw-r--r--pkgs/by-name/fr/friture/package.nix76
1 files changed, 76 insertions, 0 deletions
diff --git a/pkgs/by-name/fr/friture/package.nix b/pkgs/by-name/fr/friture/package.nix
new file mode 100644
index 0000000000000..a0649dd728038
--- /dev/null
+++ b/pkgs/by-name/fr/friture/package.nix
@@ -0,0 +1,76 @@
+{
+  lib,
+  fetchFromGitHub,
+  python3Packages,
+  qt5,
+}:
+
+python3Packages.buildPythonApplication rec {
+  pname = "friture";
+  version = "0.49-unstable-2024-06-02";
+  pyproject = true;
+
+  src = fetchFromGitHub {
+    owner = "tlecomte";
+    repo = pname;
+    rev = "405bffa585ece0cb535c32d0f4f6ace932b40103";
+    hash = "sha256-4xvIlRuJ7WCFj1dEyvO9UOsye70nFlWjb9XU0owwgiM=";
+  };
+
+  pythonRelaxDeps = true;
+
+  postPatch = ''
+    sed -i -e '/packages=\[/a "friture.playback",' pyproject.toml
+  '';
+
+  nativeBuildInputs =
+    (with python3Packages; [
+      numpy
+      cython
+      scipy
+      setuptools
+    ])
+    ++ (with qt5; [ wrapQtAppsHook ]);
+
+  buildInputs = with qt5; [ qtquickcontrols2 ];
+
+  propagatedBuildInputs = with python3Packages; [
+    sounddevice
+    pyopengl
+    pyopengl-accelerate
+    docutils
+    numpy
+    pyqt5
+    appdirs
+    pyrr
+    rtmixer
+  ];
+
+  preFixup = ''
+    makeWrapperArgs+=("''${qtWrapperArgs[@]}")
+  '';
+
+  postInstall = ''
+    substituteInPlace $out/share/applications/friture.desktop --replace usr/bin/friture friture
+
+    for size in 16 32 128 256 512
+    do
+      mkdir -p $out/share/icons/hicolor/$size\x$size
+      cp $src/resources/images/friture.iconset/icon_$size\x$size.png $out/share/icons/hicolor/$size\x$size/friture.png
+    done
+    mkdir -p $out/share/icons/hicolor/scalable/apps/
+    cp $src/resources/images-src/window-icon.svg $out/share/icons/hicolor/scalable/apps/friture.svg
+  '';
+
+  meta = with lib; {
+    description = "Real-time audio analyzer";
+    mainProgram = "friture";
+    homepage = "https://friture.org/";
+    license = licenses.gpl3;
+    platforms = platforms.linux; # fails on Darwin
+    maintainers = with maintainers; [
+      laikq
+      alyaeanyx
+    ];
+  };
+}