Closed bairimenglan closed 3 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.
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
$
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
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
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.
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
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.
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.
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
Same error on macOS 11.6.7
Created a https://github.com/gnuradio/pybombs/issues/618 for macOS specific report that is still "open"
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?