gnuradio / pybombs

PyBOMBS (Python Build Overlay Managed Bundle System) is the GNU Radio install management system for resolving dependencies and pulling in out-of-tree projects.
https://gnuradio.org
GNU General Public License v3.0
414 stars 189 forks source link

[ERROR] Package has no install method: qt5 #555

Closed bairimenglan closed 3 years ago

bairimenglan commented 4 years ago

I have already installed qt package through Homebrew, but it still point out that there is no install method:qt5, how can i deal this case?


~/SDR/gnuradio » pybombs prefix init ~/SDR/gnuradio -R gnuradio-default                                                                                                                qing@qingdeMacBook-Pro
[INFO] Prefix Python version is: 2.7.16
[INFO] PyBOMBS Version 2.3.4a0
[WARNING] There already is a prefix in `/Users/qing/SDR/gnuradio'.
Continue using this path Y/[N]? Y
[INFO] Prefix Python version is: 2.7.16
[INFO] Prefix Python version is: 2.7.16
[INFO] Installing default packages for prefix...
[INFO]
  - gnuradio
[INFO] Phase 1: Creating install tree and installing binary packages:
[ERROR] Package has no install method: qt5
brianredbeard commented 4 years ago

This is specifically because an install type is being requested which the package qt5 has no method/mechanism of supporting. Specifically the recipe for QT5 supports the following:

  deb: libqt5opengl5-dev && libqt5svg5-dev && qt5-default
  rpm: (qt5-qtbase-devel && qt5-qtsvg-devel) || (devel_qt5 && libqt5-qtsvg-devel)
  pacman: qt5-base
  port: qt5 && qt5-qtbase
  portage: dev-qt/qtgui

I experienced this same issue when attempting to first do a fully source based install, then when splitting the difference and using pip for some packages.

Be warned though, this problem is endemic across the various recipes. Some other packages (e.g. python-click-plugins) only support binary installs despite the fact that it's perfectly sufficient to do pip based installation.

embedded-bert commented 4 years ago

got the same problem attempting to install gnuradio 3.8 using PyBOMBS in git console on win10 machine - see log:

$ pybombs auto-config
[INFO] Prefix Python version is: 3.7.5
[INFO] PyBOMBS Version 2.3.4a0
[INFO] Using config file: None

user@MACHINE MINGW64 /c
$ pybombs recipes add-defaults
[INFO] Prefix Python version is: 3.7.5
[INFO] PyBOMBS Version 2.3.4a0
[INFO] Creating new git cache in C:\Users\bert\.pybombs\gitcache
remote: Enumerating objects: 42, done.
remote: Counting objects: 100% (42/42), done.
remote: Compressing objects: 100% (40/40), done.
remote: Total 1825 (delta 23), reused 5 (delta 2), pack-reused 1783
Receiving objects: 100% (1825/1825), 368.66 KiB | 1.61 MiB/s, done.
Resolving deltas: 100% (1483/1483), done.
From https://github.com/gnuradio/gr-recipes
 * [new branch]      homebrew   -> gr-recipes/homebrew
 * [new branch]      master     -> gr-recipes/master
Cloning into 'gr-recipes'...
warning: no common commits
remote: Enumerating objects: 40, done.
remote: Counting objects: 100% (40/40), done.
remote: Compressing objects: 100% (34/34), done.
remote: Total 519 (delta 23), reused 13 (delta 6), pack-reused 479
Receiving objects: 100% (519/519), 100.12 KiB | 1.05 MiB/s, done.
Resolving deltas: 100% (344/344), done.
From https://github.com/gnuradio/gr-etcetera
 * [new branch]      master     -> gr-etcetera/master
Cloning into 'gr-etcetera'...

user@MACHINE MINGW64 /c
$ pybombs prefix init ~/gnuradio -R gnuradio-default
[INFO] Prefix Python version is: 3.7.5
[INFO] PyBOMBS Version 2.3.4a0
[INFO] Creating directory `C:\Users\bert\gnuradio'
[INFO] Prefix Python version is: 3.7.5
[INFO] Creating new config file C:\Users\bert\gnuradio\.pybombs\config.yml
[INFO] Prefix Python version is: 3.7.5
[INFO] Installing default packages for prefix...
[INFO]
  - gnuradio
[INFO] Phase 1: Creating install tree and installing binary packages:
[ERROR] Package has no install method: qt5

user@MACHINE MINGW64 /c
$
geekbleek commented 3 years ago

I got the same issue on MacOS BigSur

pybombs prefix init -R gnuradio-default
[INFO] Prefix Python version is: 3.9.4
[INFO] PyBOMBS Version 2.3.4
[INFO] Prefix Python version is: 3.9.4
[INFO] Creating new config file /Users/geekbleek/projects/hackrf/.pybombs/config.yml
[INFO] Prefix Python version is: 3.9.4
[INFO] Installing default packages for prefix...
[INFO]
  - gnuradio
[INFO] Phase 1: Creating install tree and installing binary packages:
[ERROR] Package has no install method: qt5
ziyuanjun commented 3 years ago

I got the same issue on Manjaro

sudo pybombs install gnuradio [INFO] Prefix Python version is: 3.8.5 [INFO] PyBOMBS Version 2.3.4 [INFO] Phase 1: Creating install tree and installing binary packages: [ERROR] Package has no install method: qt5

marcidy commented 3 years ago

So this is a work-around if you happen to have the exact same cause for this as I do, which happened to be specific to debian bullseye. The approach may help others. Basically the recipes are out of sync with official repos.

The qt5 recipe looks for 3 packages: deb: libqt5opengl5-dev && libqt5svg5-dev && qt5-default

Specifically on debian bullseye, it looks like qt5-default was removed from the official stable repo.

looking at the file list from the qt5-default buster, it's got 3 whole files: https://packages.debian.org/buster/qt5-default

/usr/lib/x86_64-linux-gnu/qtchooser/default.conf
/usr/share/doc/qt5-default/changelog.Debian.gz
/usr/share/doc/qt5-default/copyright

only the default.conf looks interesting.

Extracting the deb from buster, that file is just a symlink:

default.conf -> ../../../share/qtchooser/qt5-x86_64-linux-gnu.conf

So if you have the exact same problem as me (don't have qt5-default in repo) you can make the symlink yourself and then remove the dependency.

change the qt5 recipe and remove the qt5-default dependency.
deb: libqt5opengl5-dev && libqt5svg5-dev

Then run the install again.

willcode commented 3 years ago

If you know of fix that works for all deb platforms, you can put in a PR for gr-recipes at https://github.com/gnuradio/gr-recipes

marcidy commented 3 years ago

At the moment I can only confirm what I saw is a Debian bullseye (Debian 11) issue. qt5-default was in buster (Debian 10) but is not in bullseye (Debian 11). I can take a look at Ubuntu and rpi relatively easily.

I wouldn't be surprised if it's similar issue. The package just creates a symlink, and I am checking if the symlink is even necessary. But it depends on the distro's packaging being in-sync with the recipe. It doesn't look like the package was replaced, so it may even be an oversight in bullseye. I'll take a closer look but debugging other distro's packing is a bit of a pain.

It may help if people posted output from

$ pybombs -v -v -v -v install qt5

This would show which packages specifically (on which OS) were causing problems in the recipe and would allow more granular investigation on each platform.

marcidy commented 3 years ago

Ubuntu's bug report for the missed package may have the answer: https://bugs.launchpad.net/ubuntu/+source/qtbase-opensource-src/+bug/1926802

Qt 4 was removed, Qt 5 is now default, so that package is no longer needed.

I believe this means the dependency is only required on (now) older distros.

So on newer versions of debian distros (which should now include stable and anything derived from stable), qt5-default is not needed.

However, I'm not sure if pybombs/gnuradio needs to support older distros, or how the recipes would do it.

I can submit the PR and see how the discussion goes from there.

k-bx commented 2 years ago

Why was this closed? Still getting this error on my macOS:

$ pybombs prefix init ~/tmp/gnuradio -R gnuradio-default
[INFO] Prefix Python version is: 3.9.13
[INFO] PyBOMBS Version 2.3.5
[WARNING] There already is a prefix in `/Users/kb/tmp/gnuradio'.
Continue using this path Y/[N]? Y
[INFO] Prefix Python version is: 3.9.13
[INFO] Prefix Python version is: 3.9.13
[INFO] Installing default packages for prefix...
[INFO]
  - gnuradio
[INFO] Phase 1: Creating install tree and installing binary packages:
[ERROR] Package has no install method: qt5
mhenstell commented 2 years ago

Same error on macOS 11.6.7

k-bx commented 2 years ago

Created a https://github.com/gnuradio/pybombs/issues/618 for macOS specific report that is still "open"