Subject: bug#53334: [PATCH] qbittorrent: Phase patch to use full nix path for python-gate to avoid "Missing Python Runtime" failure on search engine

From: Jacob Hrbek <[email-masked]>
Date: Tue, 18 Jan 2022 03:16:52 +0000

Fixes: https://issues.guix.gnu.org/53334

Signed-off-by: Jacob Hrbek <[email-masked]>
---
 gnu/packages/bittorrent.scm | 7 +++++++
 1 file changed, 7 insertions(+)

diff --git a/gnu/packages/bittorrent.scm b/gnu/packages/bittorrent.scm
index fa88c91163..f222b87692 100644
--- a/gnu/packages/bittorrent.scm
+++ b/gnu/packages/bittorrent.scm
@@ -491,6 +491,13 @@ (define-public qbittorrent
                            (guix build qt-utils))
        #:phases
        (modify-phases %standard-phases
+         ;; The package is checking for a `python` or `python3` executable in an environment variable `PATH` which causes the search engine to fail with "Missing Python Runtime" this phase substitutes the python executables with full path in the nix store executable -- https://issues.guix.gnu.org/53334
+	 ;; FIXME-QA(Krey): This codeblock depends on upstream's declaration of https://github.com/qbittorrent/qBittorrent/blob/master/src/base/utils/foreignapps.cpp#L277, if the fi
le declaration changes then this phase will be malfunction -> Consider optimizing the upstream code for nix userland
+	 (add-after 'unpack 'python-path-compat
+           (lambda* (#:key inputs #:allow-other-keys)
+	     (substitute* "src/base/utils/foreignapps.cpp"
+	       (("if \\(testPythonInstallation\\(\"python3\", pyInfo\\)\\)")
+		 (string-append "if (testPythonInstallation(\"" (search-input-file inputs "/bin/python") "\", pyInfo))")))))
          (add-after 'install 'wrap-qt
            (lambda* (#:key outputs inputs #:allow-other-keys)
              (let ((out (assoc-ref outputs "out")))
--
2.34.0