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.
This commit is contained in:
Cole Helbling 2020-09-08 11:03:12 -07:00
parent e6cbcc2ac1
commit fca7cc57ad
No known key found for this signature in database
GPG key ID: B37E0F2371016A4C
2 changed files with 32 additions and 2 deletions

View file

@ -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

View file

@ -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)) {