summary refs log tree commit diff
diff options
context:
space:
mode:
authorCole Helbling <cole.e.helbling@outlook.com>2020-09-08 11:03:12 -0700
committerCole Helbling <cole.e.helbling@outlook.com>2020-09-08 11:03:12 -0700
commitfca7cc57ad7ff3f72324636ed3a48d51ed29019f (patch)
tree978b05475be4745340d098688260d2d2fe0a9f33
parente6cbcc2ac1f042e13d36a5c8f5c89777dad128b5 (diff)
downloadnixpkgs-fca7cc57ad7ff3f72324636ed3a48d51ed29019f.tar
nixpkgs-fca7cc57ad7ff3f72324636ed3a48d51ed29019f.tar.gz
nixpkgs-fca7cc57ad7ff3f72324636ed3a48d51ed29019f.tar.bz2
nixpkgs-fca7cc57ad7ff3f72324636ed3a48d51ed29019f.tar.lz
nixpkgs-fca7cc57ad7ff3f72324636ed3a48d51ed29019f.tar.xz
nixpkgs-fca7cc57ad7ff3f72324636ed3a48d51ed29019f.tar.zst
nixpkgs-fca7cc57ad7ff3f72324636ed3a48d51ed29019f.zip
cantata: add perl for dynamic playlists
Cantata wants to check if perl is available at runtime, but we already patch the
script shebangs, making it unnecessary to be available at runtime --
thus, patch out this check.
-rw-r--r--pkgs/applications/audio/cantata/default.nix17
-rw-r--r--pkgs/applications/audio/cantata/dont-check-for-perl-in-PATH.diff17
2 files changed, 32 insertions, 2 deletions
diff --git a/pkgs/applications/audio/cantata/default.nix b/pkgs/applications/audio/cantata/default.nix
index e5d62b15f45..95b7dd18425 100644
--- a/pkgs/applications/audio/cantata/default.nix
+++ b/pkgs/applications/audio/cantata/default.nix
@@ -1,5 +1,5 @@
 { mkDerivation, lib, fetchFromGitHub, cmake, pkgconfig
-, qtbase, qtsvg, qttools
+, qtbase, qtsvg, qttools, perl
 
 # Cantata doesn't build with cdparanoia enabled so we disable that
 # default for now until I (or someone else) figure it out.
@@ -38,6 +38,8 @@ let
 
   withUdisks = (withTaglib && withDevices);
 
+  perl' = perl.withPackages (ppkgs: [ ppkgs.URI ]);
+
 in mkDerivation {
   name = "${pname}-${version}";
 
@@ -48,7 +50,18 @@ in mkDerivation {
     sha256 = "0ix7xp352bziwz31mw79y7wxxmdn6060p8ry2px243ni1lz1qx1c";
   };
 
-  buildInputs = [ qtbase qtsvg ]
+  patches = [
+    # Cantata wants to check if perl is in the PATH at runtime, but we
+    # patchShebangs the playlists scripts, making that unnecessary (perl will
+    # always be available because it's a dependency)
+    ./dont-check-for-perl-in-PATH.diff
+  ];
+
+  postPatch = ''
+    patchShebangs playlists
+  '';
+
+  buildInputs = [ qtbase qtsvg perl' ]
     ++ lib.optionals withTaglib [ taglib taglib_extras ]
     ++ lib.optionals withReplaygain [ ffmpeg_3 speex mpg123 ]
     ++ lib.optional  withHttpStream qtmultimedia
diff --git a/pkgs/applications/audio/cantata/dont-check-for-perl-in-PATH.diff b/pkgs/applications/audio/cantata/dont-check-for-perl-in-PATH.diff
new file mode 100644
index 00000000000..effb0f3b502
--- /dev/null
+++ b/pkgs/applications/audio/cantata/dont-check-for-perl-in-PATH.diff
@@ -0,0 +1,17 @@
+diff --git a/playlists/dynamicplaylists.cpp b/playlists/dynamicplaylists.cpp
+index 07b6dce3..6a3f97c9 100644
+--- a/playlists/dynamicplaylists.cpp
++++ b/playlists/dynamicplaylists.cpp
+@@ -211,11 +211,6 @@ void DynamicPlaylists::start(const QString &name)
+         return;
+     }
+ 
+-    if (Utils::findExe("perl").isEmpty()) {
+-        emit error(tr("You need to install \"perl\" on your system in order for Cantata's dynamic mode to function."));
+-        return;
+-    }
+-
+     QString fName(Utils::dataDir(rulesDir, false)+name+constExtension);
+ 
+     if (!QFile::exists(fName)) {
+