Skip to content

Commit

Permalink
cantata: add perl for dynamic playlists
Browse files Browse the repository at this point in the history
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.
  • Loading branch information
cole-h committed Sep 8, 2020
1 parent e6cbcc2 commit fca7cc5
Show file tree
Hide file tree
Showing 2 changed files with 32 additions and 2 deletions.
17 changes: 15 additions & 2 deletions 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.
Expand Down Expand Up @@ -38,6 +38,8 @@ let

withUdisks = (withTaglib && withDevices);

perl' = perl.withPackages (ppkgs: [ ppkgs.URI ]);

in mkDerivation {
name = "${pname}-${version}";

Expand All @@ -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
Expand Down
17 changes: 17 additions & 0 deletions 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)) {

0 comments on commit fca7cc5

Please sign in to comment.