-
Notifications
You must be signed in to change notification settings - Fork 76
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
rqt-{robot,common}-plugins is pulling in multiple python-qt-binding packages and failing to build #301
Comments
This is because rqt-robot-plugins includes rqt-rviz, and RViz uses a modified version of python-qt-binding. I suggest removing rqt-rviz. You can still use it at the same time by building another environment just for it, if that helps. { pkgs ? import ../. {} }:
with pkgs;
with rosPackages.noetic;
mkShell {
nativeBuildInputs = [
(buildEnv {
paths = [
(rqt-robot-plugins.overrideAttrs ({ propagatedBuildInputs ? [ ], ... }: {
propagatedBuildInputs = lib.remove rqt-rviz propagatedBuildInputs;
}))
];
})
];
} |
This is from a much larger derivation: rqtScript =
let
env = (with rosDistro; buildEnv {
name = "configured-rqt-env";
paths = [
ros-environment
rospack
rqt-gui-bin
# rqt-robot-plugins seems to pull in conflicting versions of python-qt5 and python-qt-binding
# rqt-common-plugins does something similar.
# https://github.com/lopsided98/nix-ros-overlay/issues/301
#rqt-common-plugins
#rqt-robot-plugins
] ++ extraMsgs;
}).override ({ paths, ... }: {
paths = paths ++ (with rosDistro.python.pkgs; [
# many plugins require these
pycryptodomex
python-gnupg
defusedxml
# rqt-bag
pillow
pycairo
cairocffi
cffi
# process monitor
psutil
# rqt-graph
pydot
# rqt-plot requires one of these:
pyqtgraph
matplotlib
# navigation viewer
pyopengl
# web
# JAK: Disable to avoid collisions with gazebo_sims. Maybe there's an alternative for this.
# pyqt5_with_qtwebkit
]
# We no longer install dev outputs by default, which means we don't get
# propagatedBuildInputs from non-ROS packages in buildEnv. Propagate
# pyqt's PyQt5.sip dependency manually.
#++ pyqt5_with_qtwebkit.propagatedBuildInputs
);
});
defaultArgs = if (defaultRqtConfig == null) then [ ] else [ defaultRqtConfig ];
in
writeConfiguredScriptBin "configured-rqt" ''
# Fix up the python path so rqt can find its plugins
export PYTHONPATH="${env}/${rosDistro.python.sitePackages}''${PYTHONPATH:+:$PYTHONPATH}"
# If no args are explicitly given, use a platform-specific config file
if [[ $# == 0 ]]; then set -- ${lib.escapeShellArgs defaultArgs}; fi
exec ${env}/bin/rqt "$@"
''; That makes it's way into a |
New to this whole process and working with nix. Is there a way to solve this globally? I have a ROS module being imported from a flake nixosConfiguration and I would like to just be able to use 'desktop' for simplicity sake. I am looking into overriding the package but I am unsure how this works with such a large dependency tree. Can I 'iteratively' override packages and their respective dependencies? Would this even solve the problem? Not sure if I have the domain knowledge to ask this properly so I apologize in advance. Here is my ROS.nix module:
|
I threw the following under
examples/
and did anix-build ./ros-blah.nix
:I get this error:
The same thing occurs if you replace
rqt-robot-plugins
withrqt-common-plugins
and enableNIXPKGS_ALLOW_INSECURE=1
forqtwebkit-5.212.0-alpha4
The text was updated successfully, but these errors were encountered: