aboutsummaryrefslogtreecommitdiff
path: root/nixpkgs/pkgs/applications/audio/cantata
diff options
context:
space:
mode:
Diffstat (limited to 'nixpkgs/pkgs/applications/audio/cantata')
-rw-r--r--nixpkgs/pkgs/applications/audio/cantata/default.nix21
-rw-r--r--nixpkgs/pkgs/applications/audio/cantata/dont-check-for-perl-in-PATH.diff17
2 files changed, 34 insertions, 4 deletions
diff --git a/nixpkgs/pkgs/applications/audio/cantata/default.nix b/nixpkgs/pkgs/applications/audio/cantata/default.nix
index 799cefc7819..95b7dd18425 100644
--- a/nixpkgs/pkgs/applications/audio/cantata/default.nix
+++ b/nixpkgs/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.
@@ -10,7 +10,7 @@
, withTaglib ? true, taglib, taglib_extras
, withHttpStream ? true, qtmultimedia
-, withReplaygain ? true, ffmpeg, speex, mpg123
+, withReplaygain ? true, ffmpeg_3, speex, mpg123
, withMtp ? true, libmtp
, withOnlineServices ? true
, withDevices ? true, udisks2
@@ -38,6 +38,8 @@ let
withUdisks = (withTaglib && withDevices);
+ perl' = perl.withPackages (ppkgs: [ ppkgs.URI ]);
+
in mkDerivation {
name = "${pname}-${version}";
@@ -48,9 +50,20 @@ 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 speex mpg123 ]
+ ++ lib.optionals withReplaygain [ ffmpeg_3 speex mpg123 ]
++ lib.optional withHttpStream qtmultimedia
++ lib.optional withCdda cdparanoia
++ lib.optional withCddb libcddb
diff --git a/nixpkgs/pkgs/applications/audio/cantata/dont-check-for-perl-in-PATH.diff b/nixpkgs/pkgs/applications/audio/cantata/dont-check-for-perl-in-PATH.diff
new file mode 100644
index 00000000000..effb0f3b502
--- /dev/null
+++ b/nixpkgs/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)) {
+