aboutsummaryrefslogtreecommitdiff
path: root/infra/libkookie/nixpkgs/pkgs/applications/audio/picard/default.nix
diff options
context:
space:
mode:
Diffstat (limited to 'infra/libkookie/nixpkgs/pkgs/applications/audio/picard/default.nix')
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/audio/picard/default.nix64
1 files changed, 64 insertions, 0 deletions
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/audio/picard/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/audio/picard/default.nix
new file mode 100644
index 000000000000..fb6f59d0ded7
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/audio/picard/default.nix
@@ -0,0 +1,64 @@
+{ stdenv, python3Packages, fetchFromGitHub, gettext, chromaprint, qt5
+, enablePlayback ? true
+, gst_all_1
+}:
+
+let
+ pythonPackages = python3Packages;
+ pyqt5 = if enablePlayback then
+ pythonPackages.pyqt5_with_qtmultimedia
+ else
+ pythonPackages.pyqt5
+ ;
+in pythonPackages.buildPythonApplication rec {
+ pname = "picard";
+ version = "2.5.2";
+
+ src = fetchFromGitHub {
+ owner = "metabrainz";
+ repo = pname;
+ rev = "release-${version}";
+ sha256 = "193pk6fhrqar2ra8krj6xdd7sm5qfw0p708iazzwk4b8c8g0q72j";
+ };
+
+ nativeBuildInputs = [ gettext qt5.wrapQtAppsHook qt5.qtbase ]
+ ++ stdenv.lib.optionals (pyqt5.multimediaEnabled) [
+ qt5.qtmultimedia.bin
+ gst_all_1.gstreamer
+ gst_all_1.gst-vaapi
+ gst_all_1.gst-libav
+ gst_all_1.gst-plugins-base
+ gst_all_1.gst-plugins-good
+ ]
+ ;
+
+ propagatedBuildInputs = with pythonPackages; [
+ pyqt5
+ mutagen
+ chromaprint
+ discid
+ dateutil
+ ];
+
+ prePatch = ''
+ # Pesky unicode punctuation.
+ substituteInPlace setup.cfg --replace "‘" "'"
+ '';
+
+ # In order to spare double wrapping, we use:
+ preFixup = ''
+ makeWrapperArgs+=("''${qtWrapperArgs[@]}")
+ ''
+ + stdenv.lib.optionalString (pyqt5.multimediaEnabled) ''
+ makeWrapperArgs+=(--prefix GST_PLUGIN_SYSTEM_PATH_1_0 : "$GST_PLUGIN_SYSTEM_PATH_1_0")
+ ''
+ ;
+
+ meta = with stdenv.lib; {
+ homepage = "https://picard.musicbrainz.org/";
+ description = "The official MusicBrainz tagger";
+ maintainers = with maintainers; [ ehmry ];
+ license = licenses.gpl2Plus;
+ platforms = platforms.all;
+ };
+}