all messages for Guix-related lists mirrored at yhetil.org
 help / color / mirror / code / Atom feed
* 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

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.