Open ZanderBrown opened 6 years ago
Looks like pyqt5 simply only ships binary releases on pypi, this script explicitly avoids binary releases since well.. that isn't portable or useful for many flatpaks.
The good news is dozens of packages build pyqt from source that you can use as an example: https://github.com/search?q=org%3Aflathub+pyqt&type=Code
this script explicitly avoids binary releases since well.. that isn't portable or useful for many flatpaks.
Agreed, though I'd still want to get an initial generated-sources.json
, including the problematic pyqt5
entry, to avoid writing them by hand. I can then remove the pyqt5
entry and add it to the manifest separately using one of your examples.
Right now, it's all or nothing sadly.
@ghisvail or just emit a warning and omit the entry? Largely anything but the current situation.
@ZanderBrown, you can't really omit the entry, since you still need potential leaf dependencies for these packages which don't provide an appropriate source release on PyPI.
I tried hacking a solution by fiddling with the arguments baked to the pip download
subprocess, using the --only-binary
option followed by a selected set of dependencies (pyqt5, sip...). The script still fails further down the line for the applications I have tried (mu-editor
and spyder
).
The ideal solution would be to have these projects adopt Pipfiles and commit a corresponding Pipfile.lock
to the codebase. This way, the process of generating the corresponding generated-sources.json
would be similar to what is done currently with Javascript.
Pipfile support was on my todo list, it has nothing to do with this issue though. Using binaries at all is not a solution, period.
The best UX we can provide is manually generate a correct pyqt entry to build from source when it is detected.
@ZanderBrown
If you would like to migrate to Qt 5.11, feel free to reuse my modules: https://github.com/scx/flathub/blob/6dda0c2b19205a0a2e1cc3bc777256c86a22fecf/python3-sip.yaml https://github.com/scx/flathub/blob/6dda0c2b19205a0a2e1cc3bc777256c86a22fecf/python3-qt5.yaml
I can reproduce this issue in the latest master version.
(.env) dan@dan-Librem-13-v2:~/Projects/flatpak-builder-tools/pip$ python flatpak-pip-generator pyqt5
Collecting pyqt5
Downloading https://files.pythonhosted.org/packages/12/63/a7a32557fdce42b1ddf2353d9e2a576143376046ead0b1918fd4cfe01b90/PyQt5-5.13.1-5.13.1-cp35.cp36.cp37.cp38-abi3-manylinux1_x86_64.whl (62.1MB)
|████████████████████████████████| 62.2MB 188kB/s
Saved /tmp/pip-generator-python3-pyqt5-8lbye91x/PyQt5-5.13.1-5.13.1-cp35.cp36.cp37.cp38-abi3-manylinux1_x86_64.whl
Collecting PyQt5_sip<13,>=4.19.19
Downloading https://files.pythonhosted.org/packages/37/15/de717dffb8b7a9f6e976dcb3611b31f62213527f21734462fcdbd6744e43/PyQt5_sip-12.7.0-cp38-cp38-manylinux1_x86_64.whl (275kB)
|████████████████████████████████| 276kB 922kB/s
Saved /tmp/pip-generator-python3-pyqt5-8lbye91x/PyQt5_sip-12.7.0-cp38-cp38-manylinux1_x86_64.whl
Successfully downloaded pyqt5 PyQt5-sip
ERROR: Could not find a version that satisfies the requirement PyQt5-5.13.1 (from versions: none)
ERROR: No matching distribution found for PyQt5-5.13.1
Failed to download pyqt5
Please fix the module manually in the generated file
Maybe this is related, spyder analysis fails with:
[...]
Collecting pyxdg>=0.26
Using cached pyxdg-0.26.tar.gz (57 kB)
Saved /tmp/pip-generator-python3-spyder-h6jhiw_5/pyxdg-0.26.tar.gz
ERROR: Could not find a version that satisfies the requirement pyqt5<5.13 (from spyder) (from versions: 5.14.0, 5.14.1, 5.14.2)
ERROR: No matching distribution found for pyqt5<5.13 (from spyder)
Failed to download spyder
Please fix the module manually in the generated file
For PyQt the recommended way is to use the baseapp. I don't thing it's solvable differently without a lot or effort.
When running against the mu-editor package
Or against pyqt5 directly