From 524369c4ba016ec372aba13a2b78a2c08303bddf Mon Sep 17 00:00:00 2001 From: Cole Helbling Date: Tue, 8 Sep 2020 11:03:12 -0700 Subject: [PATCH] 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. (cherry picked from commit fca7cc57ad7ff3f72324636ed3a48d51ed29019f) --- pkgs/applications/audio/cantata/default.nix | 17 +++++++++++++++-- .../cantata/dont-check-for-perl-in-PATH.diff | 17 +++++++++++++++++ 2 files changed, 32 insertions(+), 2 deletions(-) create mode 100644 pkgs/applications/audio/cantata/dont-check-for-perl-in-PATH.diff diff --git a/pkgs/applications/audio/cantata/default.nix b/pkgs/applications/audio/cantata/default.nix index e5d62b15f450b7..95b7dd18425b1f 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 00000000000000..effb0f3b502cf3 --- /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)) { +