Describe the bug
qutebrowser doesn't start
To Reproduce
Steps to reproduce the behavior:
Expected behavior
qutebrowser starts
Screenshots

Metadata
"x86_64-linux"Linux 4.19.60, NixOS, 19.09pre186326.62cb4f72282 (Loris)yesyesnix-env (Nix) 2.2.2""""/nix/store/82bi282j8b6xx1gksqxjvrmwqh1mzwh4-sourceMaintainer information:
# a list of nixpkgs attributes affected by the problem
attribute:
# a list of nixos modules affected by the problem
module:
The issue is present since 2b28e4c96ff59426b9797c771228d8938a26181e
I will figure out what commit from staging it was, but for now my computer is busy compiling :)
maintainers: @jagajaga @rnhmjoj
Related to https://github.com/NixOS/nixpkgs/pull/65150
Thanks to @emmanuelrosa for this valuable piece of information:
Adding wrapQtAppsHook only address plugins, such as xcb, not loading. It does not address the missing PyQt5.QtQml module. According to a working build of qutebrowser, that module is actually missing from PyQt5. This can be seen by comparing the PyQt5 referenced by working and non-working builds of qutebrowser. In the working build you'll see the files QtQml.pyi and QtQml.so in `/nix/store/PyQt/lib/python*/site-packages/PyQt5/. In the non-working build those two files will not be present. In fact, I recall seeing other missing files, such as QtWebEngine.
I tried some stuff and it seems like since 2b28e4c the propagatedBuildInputs are somehow ignored and configure.py can not find webengine or qml, even when adding qtdeclarative to propagatedBuildInputs. I have no idea why, but only when I put them in nativeBuildInputs, configure.py can pick up those dependency and will produce a pyqt version with webengine and qml modules and qutebrowser will start successfully. I know this is wrong, so maybe someone can find the cause of this and a proper solution.
https://github.com/petabyteboy/nixpkgs/commit/2958f22308fc132b5b8e571e84d750eb9551e1d3 fixes this, but it is not a proper fix.
Does anyone know a way to work around this bug, and get a working Qutebrowser, without having to compile it?
Does anyone know a way to work around this bug, and get a working Qutebrowser, without having to compile it?
You can install a qutebrowser version from an old nixpkgs revision to your user profile.
If you have cloned nixpkgs somewhere:
git checkout 2b28e4c~1 # one revision before it broke
nix-build . -A qutebrowser
nix-env -i result/
@petabyteboy Cool, thanks. But doesn't that build the whole thing? Building a web browser like this takes several hours, no?
This package should have a binary cache now.
@petabyteboy Cool, thanks. But doesn't that build the whole thing? Building a web browser like this takes several hours, no?
Not really: the engine (QtWebEngine) does, but the browser itself is just a relatively small collections of python scripts, so it's pretty fast. QtWebEngine, being part of the base Qt package set should always be cached, even if you modify qutebrowser.
When I installed the version mentioned above, it was still cached. Usually old packages are removed from the cache quite a while after they were replaced.
But as worldofpeace mentioned in current unstable qutebrowser should work just fine again.
Cool, I didn't know about that. Thanks!