* bug#53334: qbittorrent(<=4.4.0)'s search window fails with "Python is required to use the search engine but it does not seem to be installed"
@ 2022-01-18 3:00 Jacob Hrbek
[not found] ` <handler.53334.B.164247484129040.ack@debbugs.gnu.org>
` (3 more replies)
0 siblings, 4 replies; 6+ messages in thread
From: Jacob Hrbek @ 2022-01-18 3:00 UTC (permalink / raw)
To: 53334
[-- Attachment #1.1.1: Type: text/plain, Size: 4021 bytes --]
qbittorrent <=4.4.0 (current latest version) fails with:
```
Missing Python Runtime
Python is required to use the search engine but it does not seem to be
installed
```
which is triggered from `qbittorrent/src/gui/mainwindow.cpp`:
```cpp
/*https://github.com/qbittorrent/qBittorrent/blob/00f6bb7c8225285a7929426187a1513d247b582b/src/gui/mainwindow.cpp#L1847 */
void MainWindow::on_actionSearchWidget_triggered()
{
if (!m_hasPython && m_ui->actionSearchWidget->isChecked())
{
const Utils::ForeignApps::PythonInfo pyInfo = Utils::ForeignApps::pythonInfo();
// Not installed
if (!pyInfo.isValid())
{
m_ui->actionSearchWidget->setChecked(false);
Preferences::instance()->setSearchEnabled(false);
#ifdef Q_OS_WIN
const QMessageBox::StandardButton buttonPressed = QMessageBox::question(this, tr("Missing Python Runtime")
, tr("Python is required to use the search eng
ine but it does not seem to be installed.\nDo you want to install it now?")
, (QMessageBox::Yes | QMessageBox::No), QMessageBox::Yes);
if (buttonPressed == QMessageBox::Yes)
installPython();
#else
QMessageBox::information(this, tr("Missing Python Runtime")
, tr("Python is required to use the search engine but it does not seem to be installed."));
#endif
return;
}
// Check version requirement
if (!pyInfo.isSupportedVersion())
{
m_ui->actionSearchWidget->setChecked(false);
Preferences::instance()->setSearchEnabled(false);
#ifdef Q_OS_WIN
const QMessageBox::StandardButton buttonPressed = QMessageBox::question(this, tr("Old Python Runtime")
, tr("Your Python version (%1) is outdated. Minimum requirement: %2.\nDo you want to install a newer version now?")
.arg(pyInfo.ve
rsion, QLatin1String("3.5.0"))
, (QMessageBox::Yes | QMessageBox::No), QMessageBox::Yes);
if (buttonPressed == QMessageBox::Yes)
installPython();
#else
QMessageBox::information(this, tr("Old Python Runtime")
, tr("Your Python version (%1) is outdated. Please upgrade to latest version for search engines to work.\nMinimum requirement: %2.")
.arg(pyInfo.version, QLatin1String("3.5.0")));
#endif
return;
}
m_hasPython = true;
m_ui->actionSearchWidget->setChecked(true);
Preferences::instance()->setSearchEnabled(true);
}
displaySearchTab(m_ui->actionSearchWidget->isChecked());
}
```
To call `Utils::ForeignApps::pythonInfo()` definition in
`qbittorrent/src/base/utils/foreignapps.cpp` as:
```cpp
/*https://github.com/qbittorrent/qBittorrent/blob/5c0378a6845e3484023f4c76893ff9f0e5178460/src/base/utils/foreignapps.c
pp#L272 */
PythonInfo Utils::ForeignApps::pythonInfo()
{
static PythonInfo pyInfo;
if (!pyInfo.isValid())
{
if (testPythonInstallation("python3", pyInfo))
return pyInfo;
if (testPythonInstallation("python", pyInfo))
return pyInfo;
#if defined(Q_OS_WIN)
if (testPythonInstallation(findPythonPath(), pyInfo))
return pyInfo;
#endif
LogMsg(QCoreApplication::translate("Utils::ForeignApps", "Python not detected"), Log::INFO);
}
return pyInfo;
}
```
Where:
```cpp
if (testPythonInstallation("python3", pyInfo)) ...
```
Is important as it's checking for a `python3` (or `python`) executable
in PATH that is not provided by guix's build procedure -> The package
has compatibility issues with GNU Guix and has to be patched.
### Steps to reproduce:
0. Get qbittorrent on GNU Guix
1. Open the GUI: View > Search engine and observe the highlighted error
pre
venting to use the search engine functionality
Relevants:
R1. https://github.com/qbittorrent/qBittorrent/issues/16139
--
Jacob Hrbek
[-- Attachment #1.1.2: Type: text/html, Size: 5177 bytes --]
[-- Attachment #1.2: publickey - kreyren@rixotstudio.cz - 1677db82.asc --]
[-- Type: application/pgp-keys, Size: 713 bytes --]
[-- Attachment #2: OpenPGP digital signature --]
[-- Type: application/pgp-signature, Size: 249 bytes --]
^ permalink raw reply [flat|nested] 6+ messages in thread
* bug#53334: Acknowledgement (qbittorrent(<=4.4.0)'s search window fails with "Python is required to use the search engine but it does not seem to be installed")
[not found] ` <handler.53334.B.164247484129040.ack@debbugs.gnu.org>
@ 2022-01-18 3:01 ` Jacob Hrbek
2022-01-19 7:15 ` Jacob Hrbek
1 sibling, 0 replies; 6+ messages in thread
From: Jacob Hrbek @ 2022-01-18 3:01 UTC (permalink / raw)
To: 53334
[-- Attachment #1.1: Type: text/plain, Size: 850 bytes --]
Assigned myself to address the issue
On 1/18/22 04:01, help-debbugs@gnu.org wrote:
> Thank you for filing a new bug report with debbugs.gnu.org.
>
> This is an automatically generated reply to let you know your message
> has been received.
>
> Your message is being forwarded to the package maintainers and other
> interested parties for their attention; they will reply in due course.
>
> Your message has been sent to the package maintainer(s):
> bug-guix@gnu.org
>
> If you wish to submit further information on this problem, please
> send it to 53334@debbugs.gnu.org.
>
> Please do not send mail to help-debbugs@gnu.org unless you wish
> to report a problem with the Bug-tracking system.
>
> --
> 53334: http://debbugs.gnu.org/cgi/bugreport.cgi?bug=53334
> GNU Bug Tracking System
> Contact help-debbugs@gnu.org with problems
--
Jacob Hrbek
[-- Attachment #1.2: publickey - kreyren@rixotstudio.cz - 1677db82.asc --]
[-- Type: application/pgp-keys, Size: 713 bytes --]
[-- Attachment #2: OpenPGP digital signature --]
[-- Type: application/pgp-signature, Size: 249 bytes --]
^ permalink raw reply [flat|nested] 6+ messages in thread
* bug#53334: [PATCH] qbittorrent: Phase patch to use full nix path for python-gate to avoid "Missing Python Runtime" failure on search engine
2022-01-18 3:00 bug#53334: qbittorrent(<=4.4.0)'s search window fails with "Python is required to use the search engine but it does not seem to be installed" Jacob Hrbek
[not found] ` <handler.53334.B.164247484129040.ack@debbugs.gnu.org>
@ 2022-01-18 3:16 ` Jacob Hrbek
2022-01-18 9:53 ` bug#53334: (No Subject) Attila Lendvai
2022-02-27 9:09 ` bug#53334: Acknowledgement (qbittorrent(<=4.4.0)'s search window fails with "Python is required to use the search engine but it does not seem to be installed") Jacob Hrbek
3 siblings, 0 replies; 6+ messages in thread
From: Jacob Hrbek @ 2022-01-18 3:16 UTC (permalink / raw)
To: 53334; +Cc: Jacob Hrbek
[-- Attachment #1.1: Type: text/plain, Size: 1601 bytes --]
Fixes: https://issues.guix.gnu.org/53334
Signed-off-by: Jacob Hrbek <kreyren@rixotstudio.cz>
---
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
[-- Attachment #1.2: publickey - kreyren@rixotstudio.cz - 1677db82.asc --]
[-- Type: application/pgp-keys, Size: 713 bytes --]
[-- Attachment #2: OpenPGP digital signature --]
[-- Type: application/pgp-signature, Size: 249 bytes --]
^ permalink raw reply related [flat|nested] 6+ messages in thread
* bug#53334: (No Subject)
2022-01-18 3:00 bug#53334: qbittorrent(<=4.4.0)'s search window fails with "Python is required to use the search engine but it does not seem to be installed" Jacob Hrbek
[not found] ` <handler.53334.B.164247484129040.ack@debbugs.gnu.org>
2022-01-18 3:16 ` bug#53334: [PATCH] qbittorrent: Phase patch to use full nix path for python-gate to avoid "Missing Python Runtime" failure on search engine Jacob Hrbek
@ 2022-01-18 9:53 ` Attila Lendvai
2022-02-27 9:09 ` bug#53334: Acknowledgement (qbittorrent(<=4.4.0)'s search window fails with "Python is required to use the search engine but it does not seem to be installed") Jacob Hrbek
3 siblings, 0 replies; 6+ messages in thread
From: Attila Lendvai @ 2022-01-18 9:53 UTC (permalink / raw)
To: 53334@debbugs.gnu.org
i may be misunderstanding something here... but when i add python to
my user's profile, then for me search does work in vanilla
qBittorrent.
i think the entire point of this is to keep the python dependency
optional at runtime.
--
• attila lendvai
• PGP: 963F 5D5F 45C7 DFCD 0A39
--
“If you have 10,000 regulations, you destroy all respect for the law.”
— Winston Churchill (1874–1965)
^ permalink raw reply [flat|nested] 6+ messages in thread
* bug#53334: Acknowledgement (qbittorrent(<=4.4.0)'s search window fails with "Python is required to use the search engine but it does not seem to be installed")
[not found] ` <handler.53334.B.164247484129040.ack@debbugs.gnu.org>
2022-01-18 3:01 ` bug#53334: Acknowledgement (qbittorrent(<=4.4.0)'s search window fails with "Python is required to use the search engine but it does not seem to be installed") Jacob Hrbek
@ 2022-01-19 7:15 ` Jacob Hrbek
1 sibling, 0 replies; 6+ messages in thread
From: Jacob Hrbek @ 2022-01-19 7:15 UTC (permalink / raw)
To: 53334
[-- Attachment #1.1: Type: text/plain, Size: 1421 bytes --]
> i may be misunderstanding something here... but when i add python to
my user's profile, then for me search does work in vanilla qBittorrent.
> i think the entire point of this is to keep the python dependency
optional at runtime. -- Landvai
`$ guix shell qbittorrent python` works, but i think it's better to
address it this way to make sure that it works out of the box since the
dependency (afaik) is in the store either way if qbittorrent is installed.
On 1/18/22 04:01, Jacob Hrbek wrote:
> Assigned myself to address the issue
>
> On 1/18/22 04:01, help-debbugs@gnu.org wrote:
>> Thank you for filing a new bug report with debbugs.gnu.org.
>>
>> This is an automatically generated reply to let you know your message
>> has been received.
>>
>> Your message is being forwarded to the package maintainers and other
>> interested parties for their attention; they will reply in due course.
>>
>> Your message has been sent to the package maintainer(s):
>> bug-guix@gnu.org
>>
>> If you wish to submit further information on this problem, please
>> send it to 53334@debbugs.gnu.org.
>>
>> Please do not send mail to help-debbugs@gnu.org unless you wish
>> to report a problem with the Bug-tracking system.
>>
>> --
>> 53334: http://debbugs.gnu.org/cgi/bugreport.cgi?bug=53334
>> GNU Bug Tracking System
>> Contact help-debbugs@gnu.org with problems
>
--
Jacob Hrbek
[-- Attachment #1.2: publickey - kreyren@rixotstudio.cz - 1677db82.asc --]
[-- Type: application/pgp-keys, Size: 713 bytes --]
[-- Attachment #2: OpenPGP digital signature --]
[-- Type: application/pgp-signature, Size: 249 bytes --]
^ permalink raw reply [flat|nested] 6+ messages in thread
* bug#53334: Acknowledgement (qbittorrent(<=4.4.0)'s search window fails with "Python is required to use the search engine but it does not seem to be installed")
2022-01-18 3:00 bug#53334: qbittorrent(<=4.4.0)'s search window fails with "Python is required to use the search engine but it does not seem to be installed" Jacob Hrbek
` (2 preceding siblings ...)
2022-01-18 9:53 ` bug#53334: (No Subject) Attila Lendvai
@ 2022-02-27 9:09 ` Jacob Hrbek
3 siblings, 0 replies; 6+ messages in thread
From: Jacob Hrbek @ 2022-02-27 9:09 UTC (permalink / raw)
To: 53334
[-- Attachment #1.1: Type: text/plain, Size: 201 bytes --]
Documentation about the issue and it's workaround added in the community
wiki:
* https://guix.miraheze.org/wiki/Packages/qbittorrent
--
Jacob Hrbek, In support of ukraine sovereignty #supportUkraine
[-- Attachment #1.2: publickey - kreyren@rixotstudio.cz - 1677db82.asc --]
[-- Type: application/pgp-keys, Size: 713 bytes --]
[-- Attachment #2: OpenPGP digital signature --]
[-- Type: application/pgp-signature, Size: 249 bytes --]
^ permalink raw reply [flat|nested] 6+ messages in thread
end of thread, other threads:[~2022-02-27 9:11 UTC | newest]
Thread overview: 6+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2022-01-18 3:00 bug#53334: qbittorrent(<=4.4.0)'s search window fails with "Python is required to use the search engine but it does not seem to be installed" Jacob Hrbek
[not found] ` <handler.53334.B.164247484129040.ack@debbugs.gnu.org>
2022-01-18 3:01 ` bug#53334: Acknowledgement (qbittorrent(<=4.4.0)'s search window fails with "Python is required to use the search engine but it does not seem to be installed") Jacob Hrbek
2022-01-19 7:15 ` Jacob Hrbek
2022-01-18 3:16 ` bug#53334: [PATCH] qbittorrent: Phase patch to use full nix path for python-gate to avoid "Missing Python Runtime" failure on search engine Jacob Hrbek
2022-01-18 9:53 ` bug#53334: (No Subject) Attila Lendvai
2022-02-27 9:09 ` bug#53334: Acknowledgement (qbittorrent(<=4.4.0)'s search window fails with "Python is required to use the search engine but it does not seem to be installed") Jacob Hrbek
Code repositories for project(s) associated with this external index
https://git.savannah.gnu.org/cgit/guix.git
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.