Coder Social home page Coder Social logo

nix-ros-overlay's Introduction

ROS overlay for the Nix package manager

Easily install the Robot Operating System (ROS) on any Linux distribution

Want to use ROS, but don't want to run Ubuntu? This project uses the power of Nix make to it possible to develop and run ROS packages in the same way on any Linux machine.

Nix is a distro agnostic package manager that uses a purely functional programming language to reliably and reproducibly build software. These qualities have the potential to make it one of the easiest ways to run ROS on any machine, no matter the operating system.

This overlay is still experimental, so you may encounter some issues. Feel free to file a bug.

Setup

  1. Install Nix: https://nixos.org/nix/download.html
  2. (Optional) configure Nix to use ROS Cachix binary cache
  3. Try one of the examples

Examples

Turtlebot 3 simulation in Gazebo:

nix-shell \
  -I nix-ros-overlay=https://github.com/lopsided98/nix-ros-overlay/archive/master.tar.gz \
  --option extra-substituters 'https://ros.cachix.org' \
  --option trusted-public-keys 'cache.nixos.org-1:6NCHdD59X431o0gWypbMrAURkbJ16ZPMQFGspcDShjY= ros.cachix.org-1:dSyZxI8geDCJrwgvCOHDoAfOm5sV1wCPjBkKL+38Rvo=' \
  '<nix-ros-overlay/examples/turtlebot3-gazebo.nix>'
# If not on NixOS, nixGL (https://github.com/guibou/nixGL) is needed for OpenGL support
roslaunch turtlebot3_gazebo turtlebot3_world.launch
# Spawn a new nix-shell in a new terminal and then:
roslaunch turtlebot3_teleop turtlebot3_teleop_key.launch

Flakes

With Flakes enabled, the equivalent of the above is:

nix develop github:lopsided98/nix-ros-overlay#example-turtlebot3-gazebo
# Then use roslaunch commands as above

Using the overlay in your flake.nix-based project could look like this:

{
  inputs = {
    nix-ros-overlay.url = "github:lopsided98/nix-ros-overlay";
    nixpkgs.follows = "nix-ros-overlay/nixpkgs";  # IMPORTANT!!!
  };
  outputs = { self, nix-ros-overlay, nixpkgs }:
    nix-ros-overlay.inputs.flake-utils.lib.eachDefaultSystem (system:
      let
        pkgs = import nixpkgs {
          inherit system;
          overlays = [ nix-ros-overlay.overlays.default ];
        };
      in {
        devShells.default = pkgs.mkShell {
          name = "Example project";
          packages = with pkgs.rosPackages.humble; [
            pkgs.colcon
            ros-core
            # ...
          ];
        };
      });
  nixConfig = {
    extra-substituters = [ "https://ros.cachix.org" ];
    extra-trusted-public-keys = [ "ros.cachix.org-1:dSyZxI8geDCJrwgvCOHDoAfOm5sV1wCPjBkKL+38Rvo=" ];
  };
}

Current status

What works:

  1. More than 1400 packages successfully built for ROS Noetic
  2. Fully functional ROS development environment using nix-shell
  3. Automated generation of Nix package definitions using standard ROS tools (superflore)

What still needs to be done:

  1. Upstream changes to nixpkgs and ROS tools
  2. Test on more Linux distributions
  3. aarch64 binary cache
  4. macOS support

Configure Binary Cache

Prebuilt ROS packages are hosted on Cachix and built using GitHub Actions on public infrastructure.

To use this binary cache, either run cachix use ros or manually set the following options in nix.conf:

substituters = https://cache.nixos.org https://ros.cachix.org
trusted-public-keys = cache.nixos.org-1:6NCHdD59X431o0gWypbMrAURkbJ16ZPMQFGspcDShjY= ros.cachix.org-1:dSyZxI8geDCJrwgvCOHDoAfOm5sV1wCPjBkKL+38Rvo=

Frequently Asked Questions

Q: Why are some packages missing?

A: All ROS packages published in the package index are potentially available in this overlay. If a package is missing, that probably means one of its system dependencies is not packaged. To determine the offending dependency, find the last "rosdistro sync" PR in this repository and search the missing dependencies list for your package's dependencies. In some cases, you may only need to add a mapping between the rosdep key and the nixpkgs attribute to the rosdistro YAML files. If there is no Nix expression for the package, you should try to package it and submit it upstream to nixpkgs. In some cases it may be appropriate to add the package to this overlay instead, but this should be avoided if possible.

Q: Why do some packages fail to evaluate?

A: Some packages fail to evaluate with a error like the following:

at: (69:16) in file: /nix/store/7cy8wbxh0jmsy00219hi9pkrqm9lsh5j-source/lib/customisation.nix

    68|     let
    69|       result = f origArgs;
      |                ^
    70|

anonymous function at nix-ros-overlay/distros/<distro>/<package>/default.nix:5:1 called without required argument '<dependency>'

This means all the system dependencies of <package> were available, so its Nix expression was generated, but some of <dependency>'s system dependencies were missing. See the question above for what to do next.

Q: Why do some packages fail to build?

There are thousands of ROS packages, so it is infeasible to make sure every package builds. I generally aim to keep at least 80-90% of the packages in a distribution successfully building, but this percentage tends to decrease as distributions get older and develop incompatibilities with newer software. If a package you need does not build, please open an issue or try to fix it yourself. In many cases, build failures occur due to bugs in the packages themselves, and should be fixed upstream. In other cases, overrides may need to be added to this overlay to fix the auto-generated expressions.

nix-ros-overlay's People

Contributors

3noch avatar acowley avatar gergondet avatar hacker1024 avatar jtojnar avatar kjeremy avatar kknives avatar koalp avatar lopsided98 avatar matthewcroughan avatar mikepurvis avatar movefasta avatar natto1784 avatar sascha8a avatar walshbp avatar wentasah avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

nix-ros-overlay's Issues

Installation failed due to python's "--install-layout=deb" problem

Thank you very much for your great package.

I've tried your package to run ROS on my Pop_OS! 18.10 (Ubuntu 18.10 variant), but unfortunately failed.

Screenshot from 2019-08-30 11-56-13

The error message said 'error: option --install-layout not recognized'. This looks like a problem of original ROS/catkin problem.

So, I guess we can avoid this problem by adding '-DSETUPTOOLS_DEB_LAYOUT=OFF' to catkin_make_isolated invocation. (But I could not, because I'm novice for nix)

ros/catkin#863
ros/catkin#863 (comment)

rqt error under foxy, missing resource file?

I am new to both ros and nix. I am unable to get rqt to launch under foxy. I'm hoping someone can point me in the right direction. rqt throws the following:

Traceback (most recent call last):
  File "/nix/store/q83b273cy1wvwn8wx3kq59355394l19d-python3.9-ros-foxy-rqt-gui-1.1.2-r1/bin/.rqt-wrapped", line 8, in <module>
    sys.exit(main())
  File "/nix/store/rka0fnjhlf4bwjkzw8qhn9wm8s1d708p-ros-env/lib/python3.9/site-packages/rqt_gui/main.py", line 87, in main
    sys.exit(Main().main())
  File "/nix/store/rka0fnjhlf4bwjkzw8qhn9wm8s1d708p-ros-env/lib/python3.9/site-packages/rqt_gui/main.py", line 57, in main
    return super(
  File "/nix/store/4k5axw6iwisx4jzzg2k8nyh0s6s7cbg4-ros-foxy-qt-gui-1.1.3-r1/lib/python3.9/site-packages/qt_gui/main.py", line 447, in main
    app = self.create_application(argv)
  File "/nix/store/rka0fnjhlf4bwjkzw8qhn9wm8s1d708p-ros-env/lib/python3.9/site-packages/rqt_gui/main.py", line 64, in create_application
    rqt_gui_path = get_package_path('rqt_gui')
  File "/nix/store/4k5axw6iwisx4jzzg2k8nyh0s6s7cbg4-ros-foxy-qt-gui-1.1.3-r1/lib/python3.9/site-packages/qt_gui/ros_package_helper.py", line 35, in get_package_path
    _, package_path = get_resource('packages', name)
  File "/nix/store/rka0fnjhlf4bwjkzw8qhn9wm8s1d708p-ros-env/lib/python3.9/site-packages/ament_index_python/resources.py", line 49, in get_resource
    raise LookupError(
LookupError: Could not find the resource 'rqt_gui' of type 'packages'

For my nix file, I've modified examples/ros2-basic.nix:

with import ../. {};
with rosPackages.foxy;

mkShell {
  nativeBuildInputs = [
    (buildEnv {
      paths = [
        ros-environment
        ros2topic
        ros2node
        rqt
        rqt-gui
        rqt-action
        rqt-common-plugins
        geometry-msgs
        rmw-fastrtps-dynamic-cpp
      ];
    })
  ];

  RMW_IMPLEMENTATION = "rmw_fastrtps_dynamic_cpp";
}

Playing with the rqt python code a bit, it appears that it is looking for a "rqt_gui" resource file in a "ament_index/resource_index/packages/" subdirectory. No such file exists under my /nix/store directory.

How do I install the rqt_gui resource file? Was that suppose to be installed as part of the rqt_gui package? or am I missing another package?

Thanks,

Bryan

Shell script to setup nix-ros-overlay

I would like to use this awesome repo to develop with ros. The example command

nix-shell
-I nix-ros-overlay=https://github.com/lopsided98/nix-ros-overlay/archive/master.tar.gz
–option extra-substituters ‘https://ros.cachix.org’
–option trusted-public-keys ‘cache.nixos.org-1:6NCHdD59X431o0gWypbMrAURkbJ16ZPMQFGspcDShjY= ros.cachix.org-1:dSyZxI8geDCJrwgvCOHDoAfOm5sV1wCPjBkKL+38Rvo=’
‘<nix-ros-overlay/examples/turtlebot3-gazebo.nix>’

works fine. But I need to add an environment variable to the shell and other packages I really would like to put it all in an own default.nix that I can just call nix-shell. This is what I came up with so far (props to jonringer):

let
ros = import (builtins.fetchTarball https://github.com/lopsided98/nix-ros-overlay/archive/master.tar.gz) { };
in
with ros.pkgs;
stdenv.mkDerivation {
    name = "ros_overlay_shell";
    PATH_VARIABLE = "path/to/something";
}

the nix-shell can start with that script but it didn't include the needed packages, for example, roslaunch couldn't be found.
Is there a way to include the packages in the shell script?
Other approaches I tried are in this discussion in the nix forum (https://discourse.nixos.org/t/nixshell-for-overlay/9728/4)

use packages without nix-shell

I don't know how to use ROS packages provided by this overlay without relying on nix-shell. An example on how to use these packages when installed with nix-env would be great if such a thing is possible.

Getting rosbag2-bag-v2-plugins to build

The rosbag2-bag-v2-plugins package did not build out of the box for me with the following error,

> -- Checking for module 'roscpp'
> --   No package 'roscpp' found
> CMake Error at CMakeLists.txt:28 (message):
>   Failed to find ROS 1 roscpp, cannot build.

I was eventually able to get through the configure phase with these changes,

rosbag2-bag = ros.rosbag2-bag-v2-plugins.overrideAttrs (old: {
            buildInputs = old.buildInputs or [] ++ [ros1.roscpp ros1.cpp-common ros1.rosbag-storage];
            nativeBuildInputs = old.nativeBuildInputs or [] ++ [ros.pluginlib ros.std-msgs ros.rosgraph-msgs];
          });

Where I am working with flakes, and have,

ros = ros-flake.packages.${system}.foxy;
ros1 = ros-flake.packages.${system}.noetic;

The configure error I showed was due to pkg-config failing to find the things I added to buildInputs. Later during the configure phase, various msg definitions are wanted for code generation, so I added those dependencies.

I also had to hand edit the CMakeLists.txt file to mention ros1_rosbag_storage_vendor rather than ros1_rosbag_storage. That name is used to construct file names for cmake to look for which it fails to find as the actual files in the nix store have the _vendor part.

The next problem is that the build phase fails with,

Traceback (most recent call last):
  File "/home/acowley/Projects/ros/bag/rosbag2_bag_v2-release-release-foxy-rosbag2_bag_v2_plugins-0.0.10-1/src/generate_converter_cpp.py", line 19, in <module>
    from ros1_bridge import generate_messages
ModuleNotFoundError: No module named 'ros1_bridge'

I am a bit stuck here as the Python parts of ros1_bridge seem to be lost at some point.

So my questions are:

  1. Have I gone too far into the weeds here? Am I just missing a simpler fix for the original failure of this package not building?
  2. If I'm on a more or less good path to fixing this, can you suggest a maneuver to get the ros1-bridge python components included in its output?

Thank you!

turtlebot3_gazebo turtlebot3_world.launch fails to find setup.sh

OS: NixOS
Try to chck sample from README, but catch exceptions below.
I don't think this is relates to this repository, but maybe someone can suggest where to search fix?
As i understand, path to setup.sh got from scprit gazebo under ROS_PACKAGE_PATH:

setup_path=$(pkg-config --variable=prefix gazebo)/share/gazebo/

where pkg-config returns

/nix/store/kygqmmjhg5wqpx4nmhmn524l4sicl9qm-gazebo-11.5.1/lib/pkgconfig/../../../../../

I also find out place where this variable defined: /nix/store/HASH-gazebo-11.5.1/lib/pkgconfig/gazebo

but i'm stucked with how to change this?

Error full message:

[nix-shell:~]$ roslaunch turtlebot3_gazebo turtlebot3_world.launch 
... logging to /home/intey/.ros/log/58f5493c-0023-11ec-803e-d85ed301e4ef/roslaunch-puppa-39166.log
Checking log directory for disk usage. This may take a while.
Press Ctrl-C to interrupt
Done checking log file disk usage. Usage is <1GB.

xacro: in-order processing became default in ROS Melodic. You can drop the option.
started roslaunch server http://localhost:37841/

SUMMARY
========

PARAMETERS
 * /gazebo/enable_ros_network: True
 * /robot_description: <?xml version="1....
 * /rosdistro: noetic
 * /rosversion: 1.15.11
 * /use_sim_time: True

NODES
  /
    gazebo (gazebo_ros/gzserver)
    gazebo_gui (gazebo_ros/gzclient)
    spawn_urdf (gazebo_ros/spawn_model)

ROS_MASTER_URI=http://localhost:11311

process[gazebo-1]: started with pid [39180]
process[gazebo_gui-2]: started with pid [39181]
process[spawn_urdf-3]: started with pid [39183]
/nix/store/9p7vp211yb8ch03q09r6bxd0k1lhzx1k-ros-env/lib/gazebo_ros/gzserver: line 31: /nix/store/kygqmmjhg5wqpx4nmhmn524l4sicl9qm-gazebo-11.5.1/lib/pkgconfig/../../../../..//share/gazebo//setup.sh: No such file or directory
/nix/store/9p7vp211yb8ch03q09r6bxd0k1lhzx1k-ros-env/lib/gazebo_ros/gzclient: line 31: /nix/store/kygqmmjhg5wqpx4nmhmn524l4sicl9qm-gazebo-11.5.1/lib/pkgconfig/../../../../..//share/gazebo//setup.sh: No such file or directory
[gazebo-1] process has died [pid 39180, exit code 1, cmd /nix/store/9p7vp211yb8ch03q09r6bxd0k1lhzx1k-ros-env/lib/gazebo_ros/gzserver -e ode /nix/store/9p7vp211yb8ch03q09r6bxd0k1lhzx1k-ros-env/share/turtlebot3_gazebo/worlds/turtlebot3_world.world __name:=gazebo __log:=/home/intey/.ros/log/58f5493c-0023-11ec-803e-d85ed301e4ef/gazebo-1.log].
log file: /home/intey/.ros/log/58f5493c-0023-11ec-803e-d85ed301e4ef/gazebo-1*.log
[gazebo_gui-2] process has died [pid 39181, exit code 1, cmd /nix/store/9p7vp211yb8ch03q09r6bxd0k1lhzx1k-ros-env/lib/gazebo_ros/gzclient __name:=gazebo_gui __log:=/home/intey/.ros/log/58f5493c-0023-11ec-803e-d85ed301e4ef/gazebo_gui-2.log].
log file: /home/intey/.ros/log/58f5493c-0023-11ec-803e-d85ed301e4ef/gazebo_gui-2*.log
^C[spawn_urdf-3] killing on exit
Traceback (most recent call last):
  File "/nix/store/9p7vp211yb8ch03q09r6bxd0k1lhzx1k-ros-env/lib/gazebo_ros/spawn_model", line 239, in <module>
    exit_code = sm.run()
  File "/nix/store/9p7vp211yb8ch03q09r6bxd0k1lhzx1k-ros-env/lib/gazebo_ros/spawn_model", line 183, in run
    success = gazebo_interface.spawn_urdf_model_client(self.args.model, model_xml, self.args.robot_namespace,
  File "/nix/store/9p7vp211yb8ch03q09r6bxd0k1lhzx1k-ros-env/lib/python3.9/site-packages/gazebo_ros/gazebo_interface.py", line 28, in spawn_urdf_model_client
    rospy.wait_for_service(gazebo_namespace+'/spawn_urdf_model')
  File "/nix/store/9p7vp211yb8ch03q09r6bxd0k1lhzx1k-ros-env/lib/python3.9/site-packages/rospy/impl/tcpros_service.py", line 166, in wait_for_service
    raise ROSInterruptException("rospy shutdown")
rospy.exceptions.ROSInterruptException: rospy shutdown
shutting down processing monitor...
... shutting down processing monitor complete
done

Kobuki-driver not available in foxy ?

Hello,

I'm using this flake and I'm trying to get the kobuki-driver into my environment:

{
  description = "Testing ROS on NixOS";
  inputs = {
    flake-utils.url = "github:numtide/flake-utils";
    ros-flake.url = "github:lopsided98/nix-ros-overlay";
  };

  outputs = { self, nixpkgs, flake-utils, ros-flake }:
    flake-utils.lib.eachDefaultSystem (system:
      let
        pkgs = nixpkgs.legacyPackages.${system};
        ros = ros-flake.legacyPackages.${system}.foxy;
      in
      {
        devShell = pkgs.mkShell {
          buildInputs = [
            ros.kobuki-core
            #ros.kobuki-dock-drive
            ros.kobuki-driver
            ros.kobuki-firmware
            ros.kobuki-ftdi
            ros.turtlesim
            ros.ros2run
            ros.rmw-fastrtps-dynamic-cpp
          ];
          RMW_IMPLEMENTATION = "rmw_fastrtps_dynamic_cpp";
        };
      }
    );
}

It's listed in https://github.com/lopsided98/nix-ros-overlay/tree/720b793708d6b47a2b3aa648c6fc4995dfb68aaf/distros/foxy/kobuki-driver but it seems nix is not finding it, e.g. when doing a nix develop I'm getting this error message:

error: attribute 'kobuki-driver' missing                                                 
                                                                                         
       at /nix/store/x8irw0c8lrcy1svlivg7sq9v9108jncz-source/flake.nix:19:13:            
                                                                                         
           18|             #ros.kobuki-dock-drive                                        
           19|             ros.kobuki-driver                                             
             |             ^                                                             
           20|             ros.kobuki-firmware                                           
(use '--show-trace' to show detailed location information)                               

Is that expected ?

Thanks,
Rémy

Meshes not loading in Gazebo

(please ignore, I suspect this is for an older version of Gazebo or something)

Hello,

when trying to insert a pioneer2dx robot in Gazebo, I get the following error:

[Err] [Visual.cc:374] Ogre Error:ItemIdentityException: Resource with the name default::pioneer2dx::chassis::Visual_0_MATERIAL_gazebo_material_0 already exists. in ResourceManager::add at /build/sinbad-ogre-e73af6d1c819/OgreMain/src/OgreResourceManager.cpp (line 157)
[Err] [Visual.cc:375] Unable to create a mesh from /home/MYUSERNAME/.gazebo/models/pioneer2dx/meshes/chassis.dae

Unfortunately, I can't quite tell what's going wrong at all; I know that the mesh file exists, though.

urdf_tutorial appears to have some dependency issues

Hello again,

the package urdf_tutorial in noetic appears to be missing a dependency to xacro, and the path to urdf_tutorial appears to be missing from `ROS_PACKAGE_PATH, when installed into a nix shell.

I'll probably just be using rviz directly instead, but I figured I'd let you know.

turtlebot3_gazebo turtlebot3_world.launch fails to find libboost_system.so.1.65.1

Running the turtlebot example in the README gives the following:

roslaunch turtlebot3_gazebo turtlebot3_world.launch

started core service [/rosout]
/nix/store/isy3qy9dc2czy14szwhvm2qi46kjmj9m-ros-env/lib/rosout/rosout: error while loading shared libraries: libboost_system.so.1.65.1: cannot open shared object file: No such file or directory
process[gazebo-2]: started with pid [40132]
process[gazebo_gui-3]: started with pid [40136]
process[spawn_urdf-4]: started with pid [40138]
[rosout-1] process has died [pid 40129, exit code 127, cmd /nix/store/isy3qy9dc2czy14szwhvm2qi46kjmj9m-ros-env/lib/rosout/rosout __name:=rosout __log:=/home/jkolb/.ros/log/687686cf-8683-11eb-a16e-024247ea46e6/rosout-1.log].

Unable to run example in README.md

When I try to run

nix-shell \
  -I nix-ros-overlay=https://github.com/lopsided98/nix-ros-overlay/archive/master.tar.gz \
  --option extra-substituters 'https://ros.cachix.org' \
  --option trusted-public-keys 'cache.nixos.org-1:6NCHdD59X431o0gWypbMrAURkbJ16ZPMQFGspcDShjY= ros.cachix.org-1:dSyZxI8geDCJrwgvCOHDoAfOm5sV1wCPjBkKL+38Rvo=' \
  '<nix-ros-overlay/examples/turtlebot3-gazebo.nix>'

I get the following errors

CMake Error at /nix/store/m33sn6h5kgfbk3z4avwmgxam1dny07i0-cmake-3.21.2/share/cmake-3.21/Modules/CMakeTestCCompiler.cmake:69 (message
):
  The C compiler

    "/nix/store/s5hkav7whndbfz0szshpb46h4idqdq9a-gcc-wrapper-10.3.0/bin/gcc"

  is not able to compile a simple test program.

  It fails with the following output:

    Change Dir: /build/catkin-release-release-noetic-catkin-0.8.10-1/build/CMakeFiles/CMakeTmp

    Run Build Command(s):/nix/store/xgp0bgw4rpnbc3vr2qdsdbixp3zy4v1l-gnumake-4.3/bin/make -f Makefile cmTC_e9851/fast && /nix/store/x
gp0bgw4rpnbc3vr2qdsdbixp3zy4v1l-gnumake-4.3/bin/make  -f CMakeFiles/cmTC_e9851.dir/build.make CMakeFiles/cmTC_e9851.dir/build
    make: /bin/sh: No such file or directory
    make: *** [Makefile:127: cmTC_e9851/fast] Error 127

What am I missing ?

integration with default.nix or shell.nix file

I am very sorry, this may sound very naive question (and probably is because i still don't know nix very good), but i am trying since few days and i cant figure it out, so i am bothering you here.

I am trying to use this overlay but i want it to use in a default.nix or shell.nix file. and not to type always the command you have given.

Because i heavily use direnv, which when i enter a specific folder that has shell.nix file, it automatically invokes nix-shell.

I was thinking if you could explain how we/me can use your overlay.

What i am doing now, but very unsuccessfully is that, i modified ~/.config/nixpkgs/config.nix to

{
  packageOverrides = pkgs: {
    nur = import (builtins.fetchTarball "https://github.com/nix-community/NUR/archive/master.tar.gz") {
      inherit pkgs;
    };
    ros = import (builtins.fetchTarball "https://github.com/lopsided98/nix-ros-overlay/archive/master.tar.gz") {
      inherit pkgs;
    };
  };

  nix.binaryCaches = [
    https://cache.nixos.org
    https://aira.cachix.org
    https://ros.cachix.org
  ];

  nix.binaryCachePublicKeys = [
    "cache.nixos.org-1:6NCHdD59X431o0gWypbMrAURkbJ16ZPMQFGspcDShjY="
    "aira.cachix.org-1:/5nHPqhVrtvt7KCk04I8cH/jETANk8BtPHWsEtcwU/M="
    "ros.cachix.org-1:dSyZxI8geDCJrwgvCOHDoAfOm5sV1wCPjBkKL+38Rvo="
  ];
}

and i tried this in shell.nix file but does not work:

with import <nixpkgs> {
  config = {};
  overlays = [
    (import "https://github.com/lopsided98/nix-ros-overlay/archive/master.tar.gz")
  ];
};
stdenv.mkDerivation rec {
  name = "ros";
  buildInputs = [
    stdenv
    pkg-config
    gazebo
  ];
}

Thank you in advance.
Feel free to immediately close this issue if you think that is not the place here to ask question, and i am sorry in advance. I really hope to use this overlay. Its amazing.

ROS2 example

Could someone provide an example on how to use this overlay with ROS2 please ?

urdf compiling issues, from less than a week,

We're using the nix ros overlay, with great pleasure,
from one week ago, updates are breaking compilation for urdf module (on noetic),
this happend when this library is required. here it's for the rviz,

-- BUILD_SHARED_LIBS is on
-- Using these message generators: gencpp;geneus;genlisp;gennodejs;genpy
CMake Error at /nix/store/sr0c5qvlq8rnlvjxgx2mwz4x6szc79n3-ros-noetic-urdf-1.13.2-r1/share/urdf/cmake/urdfConfig.cmake:113 (message):
  Project 'urdf' specifies
  '/nix/store/8cs76yqhlc2vnp1w4pp26z0aclx8l3w1-urdfdom-3.0.0/lib/urdfdom/cmake//../../../../../../include'
  as an include dir, which is not found.  It does neither exist as an
  absolute directory nor in
  '${prefix}//nix/store/8cs76yqhlc2vnp1w4pp26z0aclx8l3w1-urdfdom-3.0.0/lib/urdfdom/cmake//../../../../../../include'.
  Check the issue tracker 'https://github.com/ros/urdf/issues' and consider
  creating a ticket if the problem has not been reported yet.
Call Stack (most recent call first):
  /nix/store/w1l1h5s0nh0b28m6gsdf3jyzb7r5pr97-ros-noetic-catkin-0.8.10-r1/share/catkin/cmake/catkinConfig.cmake:76 (find_package)
  CMakeLists.txt:117 (find_package)

using the git repo for the overlay and coming back in history, the issue seems to stay.

i'm using this typical shell for invocation,

with import <nix-ros-overlay> {};
with rosPackages.noetic;

mkShell {
  buildInputs = [
glibcLocales
      (buildEnv { paths = [
		rosbash
		rviz
		moveit-core
		rqt-common-plugins
		tf-conversions
		blas
		xacro
		robot-state-publisher
		joint-state-publisher
		moveit-ros-visualization
                catkin
                industrial-robot-client
                moveit-planners-ompl 
		cv-camera
		map-server
		image-view
		image-common
		compressed-image-transport
		image-transport-plugins
		ros-environment
 ]; } )
  ];
}

using the nix-shell and procedure to make the package, using this following actions :

use@alexa:~/ros-nix$ nix-shell -I nix-ros-overlay=./nix-ros-overlay '<nix-ros-overlay>' -A rosPackages.noetic.rviz

[nix-shell:~/ros-nix]$ unpack
unpack200    unpackFile   unpackPhase  

[nix-shell:~/ros-nix]$ unpackPhase 
unpacking source archive /nix/store/28j2wn6qn2njdlq2f9wj1q5ihr58h2fh-1.14.10-1.tar.gz
source root is rviz-release-release-noetic-rviz-1.14.10-1
setting SOURCE_DATE_EPOCH to timestamp 1632721861 of file rviz-release-release-noetic-rviz-1.14.10-1/srv/SendFilePath.srv

[nix-shell:~/ros-nix]$ cd rviz-release-release-noetic-rviz-1.14.10-1/

[nix-shell:~/ros-nix/rviz-release-release-noetic-rviz-1.14.10-1]$ configurePhase  
no configure script, doing nothing

[nix-shell:~/ros-nix/rviz-release-release-noetic-rviz-1.14.10-1]$ buildPhase 
no Makefile, doing nothing

[nix-shell:~/ros-nix/rviz-release-release-noetic-rviz-1.14.10-1]$ 

how can i solve this issue ? or go to some documentation for understanding the nix ros build process ?

Missing packages

Hi,
first of all thanks for your work!
I tried to install some packages and it seems like some dependencies are missing, no they are mentioned in the default.nix as argument but do not exist yet. E.g. cob-obstacle-distance.
I'm eager to help adding more packages, but would like to know if you already have some tooling to generate nix-files from the package.xml and if so what's the problem that lead to these missing packages and maybe general remarks for adding more ros packages here.

`nix flake show github:lopsided98/nix-ros-overlay` does not work

I only get

github:lopsided98/nix-ros-overlay/9fbde27da7c9a15970115c57e1eb1c02a1682dd4
├───nixosModule: unknown
├───overlay: Nixpkgs overlay
└───packages
    ├───aarch64-darwin
error: expected a derivation

It would be very cool if nix flake show works, in order to allow easy discovery of available packages.

ros2 support

Hi there,
I'm trying to use your overlay with ros2 foxy.

As the very firs try I have following example .nix file

with import ./nix-ros-overlay {};
with rosPackages.foxy;
with pythonPackages;

mkShell {
  buildInputs = [
    glibcLocales
    (buildEnv { paths = [
	examples-rclpy-minimal-publisher
    ]; })
  ];
}

Then with the command nix-shell example.nix I got an error:

building '/nix/store/0zjqinhpncs8a1i1sfn1lvif8z8by9l6-memory.drv'...
exporting https://github.com/foonathan/memory.git (rev HEAD) into /nix/store/c2qis49f1slcz02g0mcl5gq8dqjdwz0w-memory
Initialized empty Git repository in /nix/store/c2qis49f1slcz02g0mcl5gq8dqjdwz0w-memory/.git/
remote: Enumerating objects: 139, done.
remote: Counting objects: 100% (139/139), done.
remote: Compressing objects: 100% (132/132), done.
remote: Total 139 (delta 16), reused 19 (delta 3), pack-reused 0
Receiving objects: 100% (139/139), 221.24 KiB | 936.00 KiB/s, done.
Resolving deltas: 100% (16/16), done.
From https://github.com/foonathan/memory
 * branch            HEAD       -> FETCH_HEAD
Switched to a new branch 'fetchgit'
Enumerating objects: 139, done.
Counting objects: 100% (139/139), done.
Compressing objects: 100% (135/135), done.
Writing objects: 100% (139/139), done.
Total 139 (delta 16), reused 123 (delta 0), pack-reused 0
Enumerating objects: 139, done.
Nothing new to pack.
/nix/store/nmvkkh4ri1zf88inrlh8qfmdnl9yjbr8-stdenv-linux/setup: line 81: cd: /nix/store/c2qis49f1slcz02g0mcl5gq8dqjdwz0w-memory/cmake/comp: No such file or directory
builder for '/nix/store/0zjqinhpncs8a1i1sfn1lvif8z8by9l6-memory.drv' failed with exit code 1
building '/nix/store/gvrc50jlfbm8myhvqq9ilkbwbbfr0srv-ros-foxy-ament-cmake-include-directories-0.9.6-r1.drv'...
cannot build derivation '/nix/store/nkin9fdncd0b2jcnaqw6mggj3w3nviz7-ros-foxy-foonathan-memory-vendor-1.0.0-r2.drv': 1 dependencies couldn't be built
cannot build derivation '/nix/store/xdggskg6gc59xqmb7gxlcn1bw0nbms13-ros-env.drv': 1 dependencies couldn't be built
error: build of '/nix/store/xdggskg6gc59xqmb7gxlcn1bw0nbms13-ros-env.drv' failed

the directory make/comp does not exists indeed.
I'm new to nix, so my be I'm doing something wrong....

Automatically resolving dependencies from package.xml

I'm currently trying to figure out a good solution for distro-agnostic ROS2 development environments for my team and am toying with nix for that. I'm a big fan of nix already, but I don't want everyone else on my team to have to learn nix. I'm wondering if something like this is possible:

workspace_folder/
  src/  
    package_1/      
      package.xml        
    package_2/      
      package.xml        
    ...      
    package_n/      
      package.xml        
  flake.nix <-- devShell with all dependencies

nix develop in the root of the workspace would automatically pull all dependencies from each package's package.xml and colcon build would work.

Right now I think the best way to go about doing this is modifying https://github.com/lopsided98/superflore for this purpose and generate a default.nix in each package. I just wanted to see if there were any better ways to do something like this.

tf2-geometry-msgs/default.nix:5:1 called without required argument 'orocos-kdl'

Hello!

First of all, thank you so much for going through the trouble of building this overlay, installing Gazebo was very easy.

However, when trying to install desktop and desktop-full from noetic, I get this error:

error: anonymous function at /nix/store/arjab8nn57wlpi8rz0dm3lvcighp09km-source/distros/noetic/tf2-geometry-msgs/default.nix:5:1 called without required argument 'orocos-kdl', at /nix/store/8wi9lc6asmh74yng3k7cnx729m47pj9s-nixos-20.09.2382.ca119749d86/nixos/lib/customisation.nix:69:16

Nixifying robowflex, install phase?

Hello,

I'm trying to nixify the https://github.com/KavrakiLab/robowflex library, with the nixfile so far:

let 
    tb = builtins.fetchTarball {
        name = "nix-ros-overlay"; 
        url = "https://github.com/lopsided98/nix-ros-overlay/archive/be22697212debf9912e75bb5424285bfbbfbbe41.tar.gz"; 
    };
    pkgs = import tb {};
in
    with pkgs; with rosPackages.noetic; buildRosPackage {
        pname = "ros-noetic-robowflex";
        version = "rev-master";

        #src = fetchGit {
        #    url = "https://github.com/werner291/robowflex.git";
        #    rev = "aa6299f6b99bf9b9bc9a1c972b89994b45530541";
        #};
        src = /home/werner/catkin_ws/robowflex/robowflex; # See https://github.com/KavrakiLab/robowflex/pull/245

        buildType = "catkin";
        checkInputs = [ ];
        propagatedBuildInputs = [ 
            moveit-core
            moveit-ros-planning
            
            assimp boost bullet console-bridge eigen eigen-stl-containers fcl geometric-shapes geometry-msgs kdl-parser moveit-msgs octomap octomap-msgs pybind11-catkin random-numbers rosconsole roslib rostime sensor-msgs shape-msgs srdfdom std-msgs tf2-eigen tf2-geometry-msgs trajectory-msgs urdf urdfdom urdfdom-headers visualization-msgs xmlrpcpp 
            ];
        nativeBuildInputs = [ 
            catkin pkg-config 
            libyamlcpp
            hdf5
            hdf5-cpp
            rosbag
            ];
            
        configurePhase = ''
        cmake robowflex_library
        '';

        meta = {
            description = ''Wrapper library for MoveIt.'';
            #license = with lib.licenses; [ bsdOriginal ];
        };
    }

To my surprise, it actually compiles! However, I seem to be stuck on the install phase, with this output:

-- Install configuration: "Release"
CMake Error at cmake_install.cmake:48 (file):
  file problem creating directory: /var/empty/local


make: *** [Makefile:81: install] Error 1
builder for '/nix/store/bhkq74n04n5ds0z8bcbma5fclw8ixvya-ros-noetic-robowflex-rev-master.drv' failed with exit code 2
error: build of '/nix/store/bhkq74n04n5ds0z8bcbma5fclw8ixvya-ros-noetic-robowflex-rev-master.drv' failed

What's it trying to do there, exactly? Catkin is trying to install robowflex to the workspace somehow?

Practical usage example

Hi, thank you for attempting to package ROS with Nix. I'm struggling a little to wrap my head around how to use this in an actual ROS catkin workspace. I've looked at the example, and it does a local import of the default.nix and overlays.nix file.

My experience with Nix is limited, but the usage of the Emacs overlay is simple:

{
  nixpkgs.overlays = [
    (import (builtins.fetchTarball {
      url = https://github.com/nix-community/emacs-overlay/archive/master.tar.gz;
    }))
  ];
}

I was hoping that the usage of the this overlay would be similar, which would then expose rosPackages under pkgs, but I couldn't get this to work. Do you have a sample catkin workspace using this overlay that I could look at? Do you also develop work on ROS packages and build them with Nix?

Compilation failure, missing dependency to PyQt5?

Hello, while trying to start up the following shell.nix:

let
    ros_tar = (builtins.fetchTarball {
        name = "nix-ros-overlay";
        url = "https://github.com/lopsided98/nix-ros-overlay/archive/e90355503d47d9a6a5907673bb5c1939fa124d7d.tar.gz";
    });
in
    with import ros_tar { };
mkShell {
  buildInputs = with rosPackages.noetic; [
    rviz
  ];
  
  LD_LIBRARY_PATH = with pkgs.xlibs; "${pkgs.libGL}/lib";

  # Commenting this out brings rviz back.
  shellHook = "source devel/setup.bash";
}

I got the build error:

Scanning dependencies of target executable_autogen
[ 59%] Automatic MOC for target executable
[ 59%] Built target executable_autogen
Scanning dependencies of target librviz_sip
[ 59%] Running SIP generator for rviz_sip Python bindings...
Traceback (most recent call last):
  File "/nix/store/yqsqsqnkxwxyn3j9m5n2w1zv2gswl6f8-ros-noetic-python-qt-binding-0.4.3-r1/share/python_qt_binding/cmake/sip_configure.py", line 57, in get_sip_dir_flags
    sip_dir = config.pyqt_sip_dir
  File "/nix/store/clr06cdrd3gfn35aas9hbq5nq0laf9hm-python3.8-sip-4.19.25/lib/python3.8/site-packages/sipconfig.py", line 193, in __getattr__
    raise AttributeError("\"%s\" is not a valid configuration value or user option" % name)
AttributeError: "pyqt_sip_dir" is not a valid configuration value or user option

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "/nix/store/yqsqsqnkxwxyn3j9m5n2w1zv2gswl6f8-ros-noetic-python-qt-binding-0.4.3-r1/share/python_qt_binding/cmake/sip_configure.py", line 92, in <module>
    sip_dir, sip_flags = get_sip_dir_flags(config)
  File "/nix/store/yqsqsqnkxwxyn3j9m5n2w1zv2gswl6f8-ros-noetic-python-qt-binding-0.4.3-r1/share/python_qt_binding/cmake/sip_configure.py", line 72, in get_sip_dir_flags
    raise FileNotFoundError('The sip directory for PyQt5 could not be located. Please ensure' +
FileNotFoundError: The sip directory for PyQt5 could not be located. Please ensure that PyQt5 is installed
make[2]: *** [src/python_bindings/sip/CMakeFiles/librviz_sip.dir/build.make:114: sip/rviz_sip/Makefile] Error 1
make[1]: *** [CMakeFiles/Makefile2:2947: src/python_bindings/sip/CMakeFiles/librviz_sip.dir/all] Error 2
make: *** [Makefile:149: all] Error 2
builder for '/nix/store/mbsi61mgsbr1s2mf8na88mylbamb8gz1-ros-noetic-rviz-1.14.8-r1.drv' failed with exit code 2
error: build of '/nix/store/mbsi61mgsbr1s2mf8na88mylbamb8gz1-ros-noetic-rviz-1.14.8-r1.drv' failed

Error while installing Gazebo

I am trying to install gazebo and I get the following error.

/home/ashfaqf/.nix-profile/bin/home-manager: line 127: 17418 Killed                  nix-build "<home-manager/home-manager/home-manager.nix>" "${extraArgs[@]}" "${PASSTHROUGH_OPTS[@]}" --argstr confPath "$HOME_MANAGER_CONFIG" --argstr confAttr "$HOME_MANAGER_CONFIG_ATTRIBUTE"

I am not sure what might be the cause. It seems to have compiled to about 45%.

Also, not sure why it isn't fetching from the cache.

Thanks

example how to add the overlay to /etc/nixos/configuration.nix

maybe as a disclaimer: I'm new to nixos. But I've setup a nixos VM and so far I could help myself to setup everything I need.

But since a few days I'm completely stuck trying to add this repo globally as an overlay and installing command line tools like rostopic system wide. It would be great if you could add an example how to setup nixos with your overlay.

Using catkin_make outside of nix-shell

I have a following issue concerning the issue #3 and the features brought by the feature of the buildEnv. I am building a ros environment with this function, installing it with nix-env -i and trying to use catkin_make to build ros packages. Building packages works in nix-shell but fail with the installed version because of missing dependencies.

With the installed version running catkin_make --use-ninja

Base path: /kalifa/releases/newton_fake-latest/sources/src/ros_ws
Source space: /kalifa/releases/newton_fake-latest/sources/src/ros_ws/src
Build space: /kalifa/releases/newton_fake-latest/sources/src/ros_ws/build
Devel space: /kalifa/releases/newton_fake-latest/sources/src/ros_ws/devel
Install space: /kalifa/releases/newton_fake-latest/sources/src/ros_ws/install
####
#### Running command: "cmake /kalifa/releases/newton_fake-latest/sources/src/ros_ws/src -DCATKIN_DEVEL_PREFIX=/kalifa/releases/newton_fake-latest/sources/src/ros_ws/devel -DCMAKE_INSTALL_PREFIX=/kalifa/releases/newton_fake-latest/sources/src/ros_ws/install -G Ninja" in "/kalifa/releases/newton_fake-latest/sources/src/ros_ws/build"
####
-- Using CATKIN_DEVEL_PREFIX: /kalifa/releases/newton_fake-latest/sources/src/ros_ws/devel
-- Using CMAKE_PREFIX_PATH: /nix/store/n9581zn5dvq6425nkhfixk0hzvn0aqsb-ros-env
-- This workspace overlays: /nix/store/n9581zn5dvq6425nkhfixk0hzvn0aqsb-ros-env
-- Using PYTHON_EXECUTABLE: /nix/store/famvf5klpwbqvh1fal88hvkgrhfi3nbj-python-2.7.18/bin/python
-- Using default Python package layout
-- Could NOT find PY_em (missing: PY_EM) 
CMake Error at /nix/store/n9581zn5dvq6425nkhfixk0hzvn0aqsb-ros-env/share/catkin/cmake/empy.cmake:30 (message):
  Unable to find either executable 'empy' or Python module 'em'...  try
  installing the package 'python-empy'
Call Stack (most recent call first):
  /nix/store/n9581zn5dvq6425nkhfixk0hzvn0aqsb-ros-env/share/catkin/cmake/all.cmake:164 (include)
  /nix/store/n9581zn5dvq6425nkhfixk0hzvn0aqsb-ros-env/share/catkin/cmake/catkinConfig.cmake:20 (include)
  CMakeLists.txt:58 (find_package)


-- Configuring incomplete, errors occurred!
See also "/kalifa/releases/newton_fake-latest/sources/src/ros_ws/build/CMakeFiles/CMakeOutput.log".
Invoking "cmake" failed

With nix-shell running catkin_make --use-ninja

Base path: /home/xneomac/Developer/sultan2/src/ros_ws
Source space: /home/xneomac/Developer/sultan2/src/ros_ws/src
Build space: /home/xneomac/Developer/sultan2/src/ros_ws/build
Devel space: /home/xneomac/Developer/sultan2/src/ros_ws/devel
Install space: /home/xneomac/Developer/sultan2/src/ros_ws/install
####
#### Running command: "ninja build.ninja" in "/home/xneomac/Developer/sultan2/src/ros_ws/build"
####
[0/1] Re-running CMake...
CMake Warning (dev) in CMakeLists.txt:
  No project() command is present.  The top-level CMakeLists.txt file must
  contain a literal, direct call to the project() command.  Add a line of
  code such as

    project(ProjectName)

  near the top of the file, but after cmake_minimum_required().

  CMake is pretending there is a "project(Project)" command on the first
  line.
This warning is for project developers.  Use -Wno-dev to suppress it.

-- Using CATKIN_DEVEL_PREFIX: /home/xneomac/Developer/sultan2/src/ros_ws/devel
-- Using CMAKE_PREFIX_PATH: /nix/store/n9581zn5dvq6425nkhfixk0hzvn0aqsb-ros-env;/nix/store/cigh5dfwc0cslx7myygdqy5hjn8kaz1j-ignition-cmake-0.6.1;/nix/store/y03kn18w1jl52w7hf081ih89brk00qky-pkg-config-wrapper-0.29.2;/nix/store/icm74ybhq3zv5w01gzrgadlgwfwy5pap-lndir-1.0.3;/nix/store/p7xxgw0xak0pwah1qma6p6jnrc546s08-patchelf-0.12;/nix/store/lfl1davviy5mai3g80mpy2gkb97rh9j5-gcc-wrapper-9.3.0;/nix/store/14w5kfy0lpz9c5f7vfj8jbnbnmf0g78v-binutils-wrapper-2.31.1;/nix/store/c36777c29wkp4jxjv8pk3frvkdd3w89q-python2.7-autopep8-1.5.4;/nix/store/649h20dykdn6zccxn52wjyg6vr2w1nqs-python2.7-pycodestyle-2.6.0;/nix/store/famvf5klpwbqvh1fal88hvkgrhfi3nbj-python-2.7.18;/nix/store/73m791xz9kcqiyvhq7zpgmlja5hvdnpg-python2.7-toml-0.10.1;/nix/store/dm143vrm1riqng1yfhknr6dfll4jggq1-python2.7-pylint-1.9.5;/nix/store/zpk0w7l4gxaz4qs4l6j4qp8gjx36pbm6-python2.7-astroid-1.6.6;/nix/store/rz12vmh5k4r5ax5vxa7m9hsgvcw02l2n-python2.7-lazy-object-proxy-1.5.1;/nix/store/db5nranmxgvml761wk0kmw0kvdky4mph-python2.7-six-1.15.0;/nix/store/wl1rvgbqx776y4nxzh0nby7l6109zpwb-python2.7-wrapt-1.12.1;/nix/store/33jc6jxdz43rr1dq7p7h0cw1862fdb25-python2.7-enum34-1.1.10;/nix/store/dw5z1m3h4qk67q6w52l5y78cp0vlaa4d-python2.7-singledispatch-3.4.0.3;/nix/store/wxd5d74d8kbizym1b30wcczxg57958kk-python2.7-backports.functools_lru_cache-1.6.1;/nix/store/4z0hckgqmnx1nayyknhlsixrcaa4ii40-python2.7-isort-4.3.21;/nix/store/qr84kwsq698pf8ax02d487w5f3lmwzyn-python2.7-setuptools-44.0.0;/nix/store/cd6cpgdhj90lf4n7nh7fkcbx916nsk17-python2.7-futures-3.3.0;/nix/store/daik8rxcl3jpg64l0nm5klz55z7x4brb-python2.7-mccabe-0.6.1;/nix/store/yr9yz9kl0clp4m4nq0hx5j2pamd6dzwb-python2.7-configparser-4.0.2;/nix/store/2zxv9vvrxf6xidh8xgpgrchzqp6304wd-avahi-0.7;/nix/store/f84rn0bs6qq462v8ijr60y0cvsg99wgh-clang-wrapper-7.1.0;/nix/store/4fiibyqiq5y0dc1ma3far935r2sn58ak-cmake-3.18.2;/nix/store/2byra6ps0n6bpzxwqvry3k94r877rlh2-curl-7.73.0-dev;/nix/store/wc6z0ljl6jcl0h65p4c9xm19nvz4052q-nghttp2-1.41.0-dev;/nix/store/zf0f4qwl6cfw5ah3fbdmn7av1sswyf6i-nghttp2-1.41.0-bin;/nix/store/858hdp1irdixscwa8jzhs11gsj3j5a86-nghttp2-1.41.0-lib;/nix/store/k3wmwf51m3zxz8lz6pbyyya5w0bai34q-zlib-1.2.11-dev;/nix/store/ghrisqgvmz8blq4i9g0cqas1s3p0glx7-zlib-1.2.11;/nix/store/6b54aw7g7mfk52hsrlckhhi40s1vmz0b-libkrb5-1.18-dev;/nix/store/47lx978m7l4k8jraw9pl4dxskv9zc0n4-libkrb5-1.18;/nix/store/0qx3q365dnrna6pb5pvy9akcln27c5nk-openssl-1.1.1h-dev;/nix/store/6cin1mkj6q4wb9dwyvxn071gd2yzp91f-openssl-1.1.1h-bin;/nix/store/lgcr2hnww96958vnw8dymqy17x0klmwf-openssl-1.1.1h;/nix/store/w2flan0mfpjhzry58s3kdbwzx919frcw-libssh2-1.9.0-dev;/nix/store/29ivhjidchfcv03b0885qab96hv1h30s-libssh2-1.9.0;/nix/store/zgf5rl7p0g47259yh56p9008gg9msclh-curl-7.73.0-bin;/nix/store/mrkch665vqn6hs5xzhfja6nrb56wz5mi-curl-7.73.0;/nix/store/0ma9b86c5k12w53n5ps49z4rp0gip2gx-dbus-1.12.20-dev;/nix/store/c4hv8wchh7925h2vdbz1ag0bzbpwkxfw-expat-2.2.10-dev;/nix/store/cfi73kpb94c8sjv769d2cffbrsvmx4rc-expat-2.2.10;/nix/store/ab8x9lnqmbq7csk50z1livp15ibpvsq2-dbus-1.12.20-lib;/nix/store/mwb895frsfjbn0m035gg19zfvv2pvx1s-dbus-1.12.20;/nix/store/nwk8rivbjixsi9f9aghdx3940ga5px0w-glibc-locales-2.32;/nix/store/0pk3sjg92jyvh4n19sqg7wcpw252ni5v-gnused-4.8;/nix/store/xxzdxdy0vp08vcikmik9b194dhgp234a-hostname-1003.1-2008;/nix/store/cnznybpymsgkwxdlrpzfq9ghrq07s0qx-iproute2-5.9.0-dev;/nix/store/7fgxmjkb0nksf8bqwrn45mvivpzfwh58-iproute2-5.9.0;/nix/store/jf3nxgwiwv925ibp5ard9svyphnrqzrh-nginx-1.18.0;/nix/store/4qbjz29bqllw17scjkkls2k5rplz2217-opencv-3.4.8;/nix/store/g82la6r1spr1cnhq3pv22b1v0f6bn86f-openssh-8.4p1;/nix/store/qmr5rhxy942kdm70j8rs751y839zg6hb-protobuf-3.13.0;/nix/store/53gr2zfh5xvgv7n7arhbp3njbmm8is6s-python-2.7.18-env;/nix/store/7kv6l106ckpv70h6gw7y7mmsjn21kl13-python2.7-supervisor-3.3.5;/nix/store/1gifpryibycyx184blar1jkfg0d6mrmk-python2.7-meld3-2.0.1;/nix/store/izh7812h0m8m30p4lxpijs5g3xh3kam2-doctor;/nix/store/v89a8qfy20kx3hk6894yws20zz4m4lwd-boost-1.69.0-dev;/nix/store/3iccb2zby79yyf0xs6i0i0dsf0xf2yw0-boost-1.69.0;/nix/store/rf0w7ich2n7m00fzk1f4lhwj0vx908nm-cachix-0.5.1;/nix/store/zfk3j7g6gq3fgzrh9ag9jgxaa1np7ncy-cargo-watch-7.2.1;/nix/store/vpj11q9d229ljddka7hvv3jpm31jinhj-docker-19.03.13;/nix/store/56ga87ych3hdqcpimgxs3wjfij7f4knp-git-2.29.2;/nix/store/lkvcgsb80dcv3hz17gfaixspqhzfnqim-git-lfs-2.12.1;/nix/store/h4bf4y1lpjavqj55fhl9kkn32g5ns0wj-iputils-20200821;/nix/store/44mpvg182rw7slvlg2f50wp740xzvmpl-just-0.4.4;/nix/store/ik5ya16lfsmayk2rcnby9xz3dgijln0m-killall-1003.1-2008;/nix/store/85v5wvrfl95bchrqwwrdyns3pazhglgj-ninja-1.10.1;/nix/store/8kdyn3rkqdl1pl294b6wp1kmb1kvff3v-nix-2.3.8-dev;/nix/store/cnxvbx9w31g2yv7kbx8rlnsf3li24w4g-boehm-gc-8.0.4-dev;/nix/store/0phlidpg14j1696i6kl7scf0cn1n02cg-boehm-gc-8.0.4;/nix/store/rq4xg5nyfmmavnkcjrdqf9rrh07g53v7-nix-2.3.8;/nix/store/93v8wwl5ix6nq8lyq704rgasnp5fsdqw-nixops-1.7;/nix/store/wf5q4d62skrw7fi3askhp0bdwb99sz5j-nodejs-12.19.0;/nix/store/qdj3i18s7jl98a8b10wz5k98sb7qr7wn-openapi-generator;/nix/store/ygzg3rb738vwrny6dgnbmx9ra7knan66-rsync-3.2.3;/nix/store/yw756amsqnq91pr65yc8qh4imz43k6h8-rust-1.48.0-2020-11-16-7eac88abb;/nix/store/s6by8bi3iwm7zm3n0asjp9yalrxs9fc4-sccache-0.2.13;/nix/store/462imcgmf8aqrll76mlhjwmxm6ayz9yk-toxiproxy-2.1.4;/nix/store/3difzwxgvsidpqzapjkh8giyppk66w08-wget-1.20.3;/nix/store/9vi62ib3qzj4cxb4h9sj4ydcmddgckba-which-2.21;/nix/store/qww3wcvgh3dy04kadfszkb10gxi34mk6-wireguard-tools-1.0.20200827;/nix/store/x6mfg2m1fifs8zjy1v0r53j1bjgvjss0-yarn-1.22.5;/nix/store/ijblp09zqwla6ypqk2a0clz3bd1rmaa7-zsh-5.8;/nix/store/k00i1ylvygc749225r6ysz6b9a6n0948-pcl-1.11.1;/nix/store/wh8v8r395rq0d298nnjrahn6kfacsqvr-systemd-246.6-dev;/nix/store/8zd3z4az6y3caga8aw3ip2cp2iv82vjq-systemd-246.6;/nix/store/rwjcgpjysxf8ncpzmh08bfq2cd1sn1b9-librealsense2-udev-rules-2.41.0;/nix/store/6m5kardbypjdapsfazlb9ngz5njjgza6-source;/nix/store/akfrv61yj9ij6rmvmbvmf8pa5d37c0q4-can-utils-20170830;/nix/store/f8jaa95aymn71anf1xv32nap8fj1k7qh-cannelloni;/nix/store/6ch35ky4kzphiiilxwaq5nxw1i9if0va-mongodb-4.0.12;/nix/store/hldfi1h0ckh8mlpc0kb2xl4amfbk0p8c-lsb_release;/nix/store/2akwh1qll7vm6g8z6s4cfsfczlwrvl97-openjdk-8u272-b10;/nix/store/z1g55g1cfd5jj31qlrnfviki68rmcjkk-hook;/nix/store/pdv6wva1kwlcfc5qvxca2s4349lxfi9v-watchman-4.9.0;/nix/store/zlnw9r092lcfqivj12g7ckaglpm25x08-procps-3.3.16;/nix/store/zxhcfg8khcq3wz8xjlnh9pimxgp6djmj-emulator;/nix/store/w2cxqrgqwsiqfmirsvby2n5jnbhln7rj-kalifa;/nix/store/vja6lxzwzgbqf1jcp8ka4ls0vkf3hk7g-sultan_server;/nix/store/sghgakrlrcis3vy9gphcqysx1hs8m6b5-karbon_driver;/nix/store/2iwkgkxqfibdjawc1hxbv57970x0r5pw-vizyr_server;/nix/store/1ap0xvi77avf4n0ysjd5sh28hmzl2vfr-build_ros;/nix/store/n9581zn5dvq6425nkhfixk0hzvn0aqsb-ros-env;/nix/store/j58ybikq41fy8465d6gzqg161zgm072x-boost-1.69.0-dev;/nix/store/sldwyibifhka79mkx2vf9ym67yyh8pkn-boost-1.69.0;/nix/store/hv7kg4880razniafck63ykwcjak4xyj4-libpointmatcher-1.3.1;/nix/store/f59vr6bazsk5ndwmgw4d7x25bsvgm005-eigen-3.3.7;/nix/store/0cxg65wfnyxbiyhvrw320fqnqy77x11h-libyaml-cpp-0.6.3;/nix/store/hgz301595mi2vbh1k15cwjbaisf1l237-python2.7-backports.ssl_match_hostname-3.7.0.1;/nix/store/ky0qgk3fkq7f05wfm76vk93p7z06yjf5-python2.7-tornado-5.1.1;/nix/store/9na4m2y6p7768s76487qarxyqskgfgqc-python2.7-backports_abc-0.5;/nix/store/p2z10xf5dzsksn39j70811kfaisry736-python2.7-certifi-2020.6.20;/nix/store/9cp8kmaklns9fhjwfxnhlb6ahnb33j0a-python2.7-Twisted-20.3.0;/nix/store/z1i5wn5rf31j042xxm4mz7p91134d6al-python2.7-zope.interface-5.1.0;/nix/store/y5qr3xbjqmnvlh4dk6fc6rlrkwi4b98g-python2.7-zope.event-4.4;/nix/store/pda4nya5wscz1yzqnkp8pv677c84nxfp-python2.7-incremental-17.5.0;/nix/store/8vxqs549p4k4c7p5srcxa6b8isjjkb61-python2.7-Automat-20.2.0;/nix/store/0cwrw3j7l491vvk5mjcpj8wbsc7y2029-python2.7-attrs-19.3.0;/nix/store/lkg5nhscigwq4lwbj349vj1wp67v0f6h-python2.7-constantly-15.1.0;/nix/store/klwd5mfd9ipdna72ip4ihzsbjpvrnmm7-python2.7-hyperlink-20.0.1;/nix/store/75i5wsc3frn5v6kd4gwvfa26mi96rfkh-python2.7-idna-2.10;/nix/store/r2mz8c6d6hb2nm5ygjhaml0n5lhpfmlz-python2.7-typing-3.7.4.3;/nix/store/wlpliw10hdmc2g77n2k7ywjhpbip5n1g-python2.7-PyHamcrest-1.10.1;/nix/store/av83chp896aaf2y5gk8n55wvpm1550pl-libusb-1.0.23-dev;/nix/store/bg4lqksv9c0ff7dwfvr81sdcymffc7g7-systemd-minimal-246.6-dev;/nix/store/hahaja959an4920gcpjyr8x4byl82p7q-systemd-minimal-246.6;/nix/store/inmq5vpfc14swjw3ihnnf8c5r2wyhvly-libusb-1.0.23;/nix/store/95kylyfsgrm45bb6k8k79gqiis0iz6yg-ffmpeg-4.3.1-dev;/nix/store/7yvffjp3x8i5v27045mg32p3av4rn1j1-ffmpeg-4.3.1-bin;/nix/store/qg7r4zynz1n0lgrn3q3g5nyf5dxjgb0r-ffmpeg-4.3.1;/nix/store/hn2z97n1581hb2davv78k13m5x4av9gp-v4l-utils-1.20.0-dev;/nix/store/xzir11ji82y5l77jshdc34p97lm48qm0-libjpeg-turbo-2.0.5-dev;/nix/store/dd5gqqkz64n7z76q6hw2wms85i0s9v1s-libjpeg-turbo-2.0.5-bin;/nix/store/rw19jz88i1hcqvrv77d0j7s8dzp5mbzg-libjpeg-turbo-2.0.5;/nix/store/6vrdnm4sw211mrfq08c693dyr9l8aprz-qtbase-5.15.0-bin;/nix/store/9pmgkp0daj9s7063anivmnwwxnk5gh6x-qtsvg-5.15.0-bin;/nix/store/wy0p619xfykbc7d7vwmqc1q7zgnk0xl6-qtdeclarative-5.15.0-bin;/nix/store/3ny4q323q2xslc8p3vf0pfz01mvzryz0-qtquickcontrols-5.15.0;/nix/store/cr13hf6d01lx2dma8rgd06in3h9zglgl-qtwayland-5.15.0-bin;/nix/store/nb5409jl3alc26wawlh0byqg6wy3zrha-v4l-utils-1.20.0-lib;/nix/store/aw6yliy0hnzcaxmjifx7ay9pvqbg8pnj-v4l-utils-1.20.0;/nix/store/x0qw1h5chxxc244fnlbrwd7a2j9c95ib-tinyxml-2.6.2;/nix/store/kawczk48hw3idwhzfgsr3fbmpiz5lbdj-gazebo-9.16.0;/nix/store/aasd85gwv0m4z7hc6f4xxkr4nig2kv48-freeimage-3.18.0;/nix/store/1l4ywhkr9pvic6z175d3ml76gag2042q-sdformat-6.2.0;/nix/store/ffvp396c5gd91pz8ygzljq97b015wf78-ignition-math4-4.0.0;/nix/store/9ay7q03dq3chd62hjs28sr1966pax2p1-tbb-2019_U9;/nix/store/4jd3p15pyw6asax0v5rf7yfn1z6qs98b-ogre-1.10.11;/nix/store/2gda413k1m5r2ckmf1g57yvbgbqcg4xw-ignition-transport4-4.0.0;/nix/store/7gm6z7yg0zfs5bj4dqdq7dbw33spw7d6-cppzmq-4.6.0;/nix/store/2sw83amw84i29fxjjs64aq3gm752gz5b-zeromq-4.3.3;/nix/store/kbpj4aj902lkwcna5n2cbrdhmp8p7wf1-util-linux-2.36-dev;/nix/store/6bx3gx9b119b1759q4mgra5zrs9m982b-util-linux-2.36-bin;/nix/store/x7wcq0mdl300n1d66xl4zbindx9nahlc-util-linux-2.36;/nix/store/6wd7lng25mpzd79q50gc3n0jsqi4pkgc-ignition-msgs-1.0.0;/nix/store/k319rasqdnp6w3ad4a3gm2885fb278v2-ignition-fuel-tools1-1.2.0;/nix/store/fjzsvl2jhk56zk0df5scwjgw9nw553mv-ignition-common-1.1.1;/nix/store/9svjlam9m7zlhqvfqrfk05nm7giig4wd-gts-0.7.6-dev;/nix/store/sp3qds529nkmg1w8biq5m5q3wd992czw-glib-2.66.2-dev;/nix/store/3b9j0i3l86kq4z6yijy2i029nidx0m64-libffi-3.3-dev;/nix/store/w676wig0vsgvgplxdbf4f7n0wygz5hbg-libffi-3.3;/nix/store/929krjhxrkjifzlq0j76inray1bgkwwy-gettext-0.21;/nix/store/dsdvg2v82mp94ad5aml4khladwv4wg2s-glibc-iconv-2.32;/nix/store/c6chxjkaqfm6b624zm1kxh1qd9yz15xx-glib-2.66.2-bin;/nix/store/lk21dn0apza38f4zcvzw5nksy00r16rr-glib-2.66.2;/nix/store/v9j8jz38sqbjzbk4k5q53s2j7j3h4ph3-gts-0.7.6-bin;/nix/store/vm38cs41lq0c1dv918lyr001f9pyd5xz-gts-0.7.6;/nix/store/82vagn3r1zmdqidzv23qmdjndn5lrbvp-tinyxml-2-6.0.0;/nix/store/0nai6p3gg22hy8lrxxq5xaq17w25jgz8-jsoncpp-1.9.4-dev;/nix/store/vfq2ynmz9111542f5j5rqfkyyxcvxdz0-jsoncpp-1.9.4;/nix/store/frzq2xgd7as665prg65mb3r0ihi0ps0l-libyaml-0.2.5;/nix/store/1k40yh53mp87p5bb0csxhjr7g0wipc27-libzip-1.6.1-dev;/nix/store/ij2n4dyvdasy39rwzbx6szlwwd2vdgap-libzip-1.6.1;/nix/store/mz10a0v32ryf23clsnnrvf1bl0cpq012-assimp-5.0.1;/nix/store/7x2yfh7y19fnaw8id488dwg21im3iqy2-libGL-1.3.2-dev;/nix/store/mbnlc0hh1kb8aqfjv5andg0xi8avys1q-libGL-1.3.2;/nix/store/4szmklairdmp3qxas7f3sn29fk8216wj-libglvnd-1.3.2;/nix/store/6nydzz9jk0yjym01rfs4hngyml4ahzzw-libglvnd-1.3.2-dev;/nix/store/1drah3gkdhirs69m7v9d85b52j4wxcdq-glu-9.0.1-dev;/nix/store/2h4ax1304inn824ylgqwkv6yiph71nbs-glu-9.0.1;/nix/store/0iys2zq5vkpq1k0vz8gsshifcsx7zd1c-ogre-1.9.1;/nix/store/0c77xskyqvknwi482xwm72g7l4rk1whw-qtbase-5.15.0-dev;/nix/store/2x6lbscvrcn40wim352dd3qdk4xcvgy8-libxml2-2.9.10-dev;/nix/store/j1fla8ikka41l1967gi8a5pxswl8fbjf-hook;/nix/store/q3vyq1bx90xkay8wsg3134vr37y3gp74-libxml2-2.9.10-bin;/nix/store/dczf2l5x34ahm0yl7avcrad49w2kq69j-libxml2-2.9.10;/nix/store/19j2h3hbrviwhh1bm7pw6dbyn03q6fmv-libxslt-1.1.34-dev;/nix/store/ls95v3bml0w434pvb8njhi7z84g6c9fj-libxslt-1.1.34-bin;/nix/store/gfr89nxv2q1mnixq248vps20r2zyqscr-libxslt-1.1.34;/nix/store/wrrfa093x2vmrif3sbz62idn66wg2lbl-sqlite-3.33.0-dev;/nix/store/xwcqq96yxqnx3lc9cs6dprmizxi0i7vd-sqlite-3.33.0-bin;/nix/store/rj88r0ck0lgfqjafz895yhwas13c58mj-sqlite-3.33.0;/nix/store/hxzwymyqjw8azsxlk7kwx2njk7xhg2p1-harfbuzz-2.7.2-dev;/nix/store/af7src4yhmd1dw9j69q73g5ahzn4ypsf-graphite2-1.3.14;/nix/store/jlw1wg9d8ndkwgpcppp760hl2v1p7sg0-harfbuzz-2.7.2;/nix/store/krcw8byyzyykyjw1vj5v4mh56x8k69x2-icu4c-67.1-dev;/nix/store/mnvgmqqxf0b8gv4yb81rrkq2qm9qr0z9-icu4c-67.1;/nix/store/q7ph9174x0yskv76b63ir7gfny3d16wm-libpng-apng-1.6.37-dev;/nix/store/mz4lrsj37b8xh21v5fa87z174hdr8364-libpng-apng-1.6.37;/nix/store/2zs5ra7kag644kf49q8lq914681841f8-pcre2-10.35-dev;/nix/store/i3jkasf4jsrcpa5w0238bc9rbcmifsyx-pcre2-10.35-bin;/nix/store/302nj6jw1lq1hmjsrrk56qp2gpl1h4xa-pcre2-10.35;/nix/store/6v7d1zjq8nqfp2xff7v30vw6fmcww6jm-fontconfig-2.13.92-dev;/nix/store/hqglgaayz1jkgzpxf2s4v2gndyfmh93k-freetype-2.10.4-dev;/nix/store/25qhbb5fi8gcymhc9hlg011a9g3dps42-bzip2-1.0.6.0.1-dev;/nix/store/966d6qhlsy64idfq1sfx5j0lyalyxc38-bzip2-1.0.6.0.1-bin;/nix/store/pysh68v7zz50zwq97a7n98qwr927c0aq-bzip2-1.0.6.0.1;/nix/store/8cr6fdx94d8w1qwfdjwz9sfrhrgcri88-freetype-2.10.4;/nix/store/a396wgyz4czg9dpxh247hj0759a6h1i5-fontconfig-2.13.92-bin;/nix/store/a9b6mzf4hd9rnfk7q97lbacascicflj2-fontconfig-2.13.92-lib;/nix/store/ifg43hck0x4i7wd0i4xf2zj1wvzh6ssc-libX11-1.6.12-dev;/nix/store/nmwjb5bk1rhps59672vg3v81m6991hn7-xorgproto-2020.1;/nix/store/4c8h49bgz2vwjj41na2xnvyib1p5azw7-libxcb-1.14-dev;/nix/store/ywbaxs9k6sj71hk2qvxaipjdgd1wy5z5-libxcb-1.14;/nix/store/js0zdsdm707mjxgb2hhk6xbbhxpsspag-libX11-1.6.12;/nix/store/hrg3sww5q5qgyns61k6hswyip3z74m4m-libXcomposite-0.4.5-dev;/nix/store/qx6xf8l6wsqqh1h9hbhw7cg9j3xip0sh-libXfixes-5.0.3-dev;/nix/store/as3dmzwsf0y2ns7r3b7gv3jdncisvvvr-libXfixes-5.0.3;/nix/store/ybq7k01h8vm07gw8n5zxa7j0ywx5q5zz-libXcomposite-0.4.5;/nix/store/jjq573qpyxvpszsaydllprbyibvpknm3-libXext-1.3.4-dev;/nix/store/8x5djd7qsskr04ync2j6z2k6r2pra05d-libXau-1.0.9-dev;/nix/store/ycs942igsh9ikh48iks76znmas4a54i3-libXau-1.0.9;/nix/store/bzqp99x4mz1q9k9iivbl2ljmcmvz3bah-libXext-1.3.4;/nix/store/kgyg4cz6vl3pcpv9j7x07rwdgwjqmxs1-libXi-1.7.10-dev;/nix/store/id7a1i7kkv7r6cvh1mrp56yq7p95aswy-libXi-1.7.10;/nix/store/3sv7cbpa93apwv8gjdpqw6gx5l5j64q1-libXrender-0.9.10-dev;/nix/store/y1jxg79r23hxp9b6dsbadcsjvr3iwbd3-libXrender-0.9.10;/nix/store/jsq228s3za1s40a8fzafbxkzvdxibi82-libxkbcommon-0.10.0-dev;/nix/store/7lrrq082hw6883xiifqp4li62bz3wiih-libxkbcommon-0.10.0;/nix/store/yzanfm4hfg9wbap5wv32f9ssm55dnbry-xcb-util-0.4.0-dev;/nix/store/n6byly73j3lyl2d48apyj2dxxdb3ihp3-xcb-util-0.4.0;/nix/store/09d3s18svgffli6xzlikya8hzzphhlbm-xcb-util-image-0.4.0-dev;/nix/store/x30827bhh4inj2ip2lc7xvxqvzln26vw-xcb-util-image-0.4.0;/nix/store/5fyggn7m0p46nn3q902slzsgbq4jzba0-xcb-util-keysyms-0.4.0-dev;/nix/store/qx69k418j1v7hkayb58iy2983rymxdb3-xcb-util-keysyms-0.4.0;/nix/store/08wcqr5q6bww6xgsgix7a59fi3m3sa8m-xcb-util-renderutil-0.3.9-dev;/nix/store/p6r60icc82pczmdxk2n8jmqc355v8w22-xcb-util-renderutil-0.3.9;/nix/store/47nm1drrcjwlalj415ny3p4i3j8vcv2i-xcb-util-wm-0.4.1-dev;/nix/store/kkwgar2sdacxcvzavd9sc4gavk58ik5j-xcb-util-wm-0.4.1;/nix/store/9ymf7lqjf9nfyccbsrsr6093blqhm5lb-qtbase-5.15.0;/nix/store/45pslh063s9p38q4n8c8r3s8bplqv4iq-python2.7-rospkg-1.1.10;/nix/store/x84kix5aac8nv0wn1bgi95zpmslz0078-python2.7-catkin_pkg-0.4.23;/nix/store/rwvapmrc5ha08n8l4i7fbqpv1v7xv3fw-python2.7-python-dateutil-2.8.1;/nix/store/0mkw5f0h9kwqsh8346ddc77fasdrzywy-python2.7-setuptools_scm-4.1.2;/nix/store/pnj6bwrzd0ffxqskrjcddk91zffvwgjs-python2.7-docutils-0.16;/nix/store/kam26ivfdwgq0lbwxsm85avsmm7jdwnl-python2.7-pyparsing-2.4.6;/nix/store/rq9kzg038vhkhc8hyv0qblyy7xfclfi6-python2.7-PyYAML-5.3.1;/nix/store/z7rf60qm3rl3xbrp0rb5i4n6i2yw9hvc-libogg-1.3.4-dev;/nix/store/b2cvl2jr041351v7vl1d799xxjkgrl2f-libogg-1.3.4;/nix/store/ly45kmaws2id2ghs1zj563il3ixczix0-libtheora-1.1.1-dev;/nix/store/cwmi6jqiiq67m5a42rll1ydhnd90spgw-libvorbis-1.3.7-dev;/nix/store/v2qz2v8nxzglrlxmj4p3d9fx61423wpc-libvorbis-1.3.7;/nix/store/a1mwpb5ahjh0ijcg5vhxpgm7kgs37ibc-libtheora-1.1.1;/nix/store/06j82xh90xmhrn8dls6vy9m56k0k111l-graphviz-2.42.2;/nix/store/sy64q25zm72jfcnin2kmi4yq4wckj3ph-opencv-3.4.8;/nix/store/skvp8jfi42ramklf68pm6q157i5vgnyb-python2.7-numpy-1.16.6;/nix/store/a7a14a6za726mjm33d3a6vqz5knmd97n-python2.7-empy-3.3.4;/nix/store/hrcfjwvzsjrs8j867ds1yfxfa4818m76-util-linux-2.36-dev;/nix/store/v42v57blxlx37gd0vgm4j452ngjc3kq6-util-linux-2.36-bin;/nix/store/h8pyw5gbvdiwg04gx5zxvrvm6h0mvp81-util-linux-2.36;/nix/store/hcp96vdwjdkpkpfaz2pnj7yd0w5xpzz0-linux-headers-5.5;/nix/store/1d8zg2aj7pjwb4z1hxh7krwj710wq26v-console-bridge-1.0.1;/nix/store/xl2xr4fz4an6xpi7m1m0bspn7yi5g518-python2.7-pycryptodomex-3.9.8;/nix/store/p3bxavpvr8m6q4h54prx3cv4kr4bv8qx-python2.7-python-gnupg-0.4.6;/nix/store/vkjya1093dg8az4gmcrpll7hr4d7fhfk-apr-1.7.0-dev;/nix/store/jqqdzp5lw4lffcxd2a41sjiklpl766wx-apr-1.7.0;/nix/store/0525vc5k86ckbqazhpshd16k0b7rbzyv-log4cxx-0.10.0;/nix/store/dd88szlmcs353pnwllpbjfg7b3qp5wp5-python2.7-netifaces-0.10.9;/nix/store/cirm80dlspb0gkgnmprp6rgrzpckfsmx-python2.7-paramiko-2.7.1;/nix/store/2x516p5wyv6sf4ks4v6dsh18xfw7kwjn-python2.7-bcrypt-3.1.7;/nix/store/n0s9j7nbwyv9301a9jfqbz9xl2r64j74-python2.7-cffi-1.14.2-dev;/nix/store/f9anvxyfxh6dfjrfw73bgwffqwa9xdl4-python2.7-pycparser-2.20;/nix/store/vs23yr3mzrpzqzpngkhpm1vrwmvg3cfc-python2.7-cffi-1.14.2;/nix/store/6lkkqbfksn62q7458gd5k773zimabqk1-python2.7-cryptography-2.9.2-dev;/nix/store/mz5wwvpd60ryj51id4fmxgf4k1g5n8l9-python2.7-packaging-20.4;/nix/store/133wn6b3njbcba236ka3mgmm93y2i13l-python2.7-ipaddress-1.0.23;/nix/store/0fwacgixn8lnz3zpkxflqlfwphhm3w34-python2.7-cryptography-2.9.2;/nix/store/a6vaypdbqmp62kr73q0hydas8ilz0n9i-python2.7-pynacl-1.4.0;/nix/store/0w7dlyq6dsyqzdxzq8q8c4i3y7qjc3c7-python2.7-pyasn1-0.4.8;/nix/store/5fjg1102p8vxbb8gw0zabsvfqwf3ywm3-sbcl-2.0.8;/nix/store/rzxnwigcq8c9xv0gxxyhcmd64k5xdlf8-python2.7-defusedxml-0.6.0;/nix/store/58288r5fkbajp17m46pcyn2n0n9ngl6p-catkin-setup-hook;/nix/store/aqq2v35hw0j39if9yz5jvrkfxmmb1q64-hook;/nix/store/58pirl3fzq1xa8h969zj4hbdjyi8i3l6-hook;/nix/store/pksczjksgzsxym8gp454brbk49dbjylx-hook;/nix/store/7kxcc3g2m9kva1s56w6xw4as7g782r87-gtest-1.8.0-dev;/nix/store/6kpsrz6dic3j207xwjd0v0b2f3pafy6x-gtest-1.8.0;/nix/store/acjgm65r85486d7ak6n6ycxb06qkclki-python2.7-nose-1.3.7;/nix/store/6sjlpisx077syj53cz1bydq59ln75q21-python2.7-coverage-5.2.1;/nix/store/i4n6pgk2rm42lmhkgh3sdfyhspl5iij3-python2.7-rosdep-0.17.1;/nix/store/pcbiiclk87aqjcwgv4pxp9z60g5zxcc5-python2.7-rosdistro-0.7.5;/nix/store/xkh0day2751irbbr2j6pim0jf97zkp5k-python-2.7.18-env;/nix/store/xl24r2n23h8r046yjyqimk6jr827lnjv-python2.7-websocket_client-0.57.0;/nix/store/ac33bbqwwgf2hlzlhzf9l9ssnx8ibgll-cairo-1.16.0-dev;/nix/store/iblgqs2wcrqpjz5bc44mapwk0i2wy1bi-pixman-0.38.4;/nix/store/v2ql6945ymmgig4w7pdpqgbg6amm2ja7-cairo-1.16.0;/nix/store/ny0y4mwan7zbw7y3acszsmb3y9vfmjbg-ceres-solver-1.14.0;/nix/store/7i64a8hha1h0w3p3r2sjmydfri5maai9-gflags-2.2.2;/nix/store/fp3ssw5f78fj31i9mlbpi00n08y892ck-glog-0.4.0;/nix/store/id3apxhgxh0lbj6fk2k9gwc11wx9hb6j-libwebp-1.1.0;/nix/store/01pi1lcdfh81n1whsxcc3lk3gh4rlg07-lua-5.2.4;/nix/store/imjjszzjv07l2mrjl3fp06i035i340cl-pcre-8.44-dev;/nix/store/rkblc4b7fbx787d7pbi3fgjv5hhsd95d-pcre-8.44-bin;/nix/store/l0fjgd99h277137ik8b313vxmqzhy7iy-pcre-8.44;/nix/store/mwm69aqwhabkabc39qq5s2va4jw9ydk2-urdfdom-1.0.4;/nix/store/1ja5yqvaqg2fib0bd63aj38j373ybrdv-urdfdom-headers-1.0.5;/nix/store/jpsrbgy2bpy631has5j7cwynlc63gmx8-python2.7-PyQt5-5.15.1-dev;/nix/store/ym7wqx3ixybyqdr5z21d9ab1k7zfmy73-python2.7-dbus-python-1.2.16-dev;/nix/store/93hmi5j1rdznrc1wx2prs0yd8vm991q6-python2.7-dbus-python-1.2.16;/nix/store/16zbx6f7saai07n7b2irr6g2hw11718y-python2.7-PyQt5.sip-4.19.24;/nix/store/qbdn5720iz6m4ypvip9s0yna3n23z1ia-python2.7-PyQt5-5.15.1;/nix/store/dpghgrh4qsi7z05si69n609pbsglcic6-python2.7-sip-4.19.24;/nix/store/kzpi47vpanslqh5k1zdjnysrg6dcrzhw-python2.7-wxPython-3.0.2.0;/nix/store/cli59rj2pr365mwmzzjr4g7cjbmm2vd3-gpgme-1.14.0-dev;/nix/store/wb2wbwndygsw5v3wm2vp8qm3ij8xvib2-libgpg-error-1.38-dev;/nix/store/aqbj95fwzs4zzqsng8s112byg273cfpp-libgpg-error-1.38;/nix/store/k8fxz9v6x9q9gh76qfnkdbqw2qdd55hn-libassuan-2.5.4-dev;/nix/store/zjdl4vcn49a1fca0q3dq5jsnik0pxdgy-libassuan-2.5.4;/nix/store/dl2b1h34q51mn5shcbm8fn7vkdaih09n-pth-2.0.7;/nix/store/p3nyf35yk0jr448bwnbx3dwpqm6bpca9-gpgme-1.14.0;/nix/store/v9j2f0nh19i66g35if24i8z8af4anaw9-poco-1.10.1-dev;/nix/store/znv6br4awlb96dxr95kqkma9pvc8fnn6-poco-1.10.1;/nix/store/spn99psg3hd63b6sjnpjk0cp09k1m497-lz4-1.9.2-dev;/nix/store/iy3fh4031f4ilbx1nfbz2bj14ip15knf-lz4-1.9.2-bin;/nix/store/x0jvlap26107wrvk2vwz4fp6j3c8vjrh-lz4-1.9.2;/nix/store/79x2j4k18ilzmdhjbankvnrhchkjwjv6-compiler-rt-7.1.0-dev;/nix/store/syzhq718dqf6awvmfi6z3i16a3m1n1cp-compiler-rt-7.1.0
-- This workspace overlays: /nix/store/n9581zn5dvq6425nkhfixk0hzvn0aqsb-ros-env
-- Found PythonInterp: /nix/store/9ww2ir2hxnqsp67waw64c1ggr7k5smhs-python-2.7.18/bin/python2 (found suitable version "2.7.18", minimum required is "2") 
-- Using PYTHON_EXECUTABLE: /nix/store/9ww2ir2hxnqsp67waw64c1ggr7k5smhs-python-2.7.18/bin/python2
-- Using default Python package layout
-- Using empy: /nix/store/nbhhgk8c7kqy6lffhhrvq901w3y1lxhh-python2.7-empy-3.3.4/lib/python2.7/site-packages/em.pyc
-- Using CATKIN_ENABLE_TESTING: ON
-- Call enable_testing()
-- Using CATKIN_TEST_RESULTS_DIR: /home/xneomac/Developer/sultan2/src/ros_ws/build/test_results
-- Found gtest: gtests will be built
-- Using Python nosetests: /nix/store/kzc80glrc7lgv6d5y68y0jb1403wgnkr-python2.7-nose-1.3.7/bin/nosetests-2.7
-- catkin 0.7.23
-- BUILD_SHARED_LIBS is on
-- BUILD_SHARED_LIBS is on
-- ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

The big difference I see is the CMAKE_PREFIX_PATH which has all dependencies in nix-shell and only ros-env with the installed version. Is there anything specific to do to make it work with the installed version ?

Ompl build fails

Hello,

The following shell file fails to build:

let
    ros_tar = (builtins.fetchTarball {
        name = "nix-ros-overlay";
        url = "https://github.com/lopsided98/nix-ros-overlay/archive/344511c1a3818f6f681ff64cb11c9553a4b6973c.tar.gz";
    });
in
    with import ros_tar { };
mkShell {
  buildInputs = with rosPackages.noetic; [
    ompl
  ];
  
  LD_LIBRARY_PATH = with pkgs.xlibs; "${pkgs.libGL}/lib";

  # Commenting this out brings rviz back.
  shellHook = "source devel/setup.bash";
}

With a lot of these types of errors:

/nix/store/rsbmrrjh9fvi72cb4wjvkzz81gvsh71c-ode-0.12/include/ode/odecpp_collision.h:364:25: error: 'dReal' has not been declared
  364 |   dRay (dSpaceID space, dReal length)
      |                         ^~~~~
/nix/store/rsbmrrjh9fvi72cb4wjvkzz81gvsh71c-ode-0.12/include/ode/odecpp_collision.h:367:32: error: 'dReal' has not been declared
  367 |   void create (dSpaceID space, dReal length) {
      |                                ^~~~~
/nix/store/rsbmrrjh9fvi72cb4wjvkzz81gvsh71c-ode-0.12/include/ode/odecpp_collision.h:372:19: error: 'dReal' has not been declared
  372 |   void setLength (dReal length)
      |                   ^~~~~
/nix/store/rsbmrrjh9fvi72cb4wjvkzz81gvsh71c-ode-0.12/include/ode/odecpp_collision.h:374:3: error: 'dReal' does not name a type
  374 |   dReal getLength()
      |   ^~~~~
/nix/store/rsbmrrjh9fvi72cb4wjvkzz81gvsh71c-ode-0.12/include/ode/odecpp_collision.h:377:13: error: 'dReal' has not been declared
  377 |   void set (dReal px, dReal py, dReal pz, dReal dx, dReal dy, dReal dz)
      |             ^~~~~
/nix/store/rsbmrrjh9fvi72cb4wjvkzz81gvsh71c-ode-0.12/include/ode/odecpp_collision.h:377:23: error: 'dReal' has not been declared
  377 |   void set (dReal px, dReal py, dReal pz, dReal dx, dReal dy, dReal dz)
      |                       ^~~~~
/nix/store/rsbmrrjh9fvi72cb4wjvkzz81gvsh71c-ode-0.12/include/ode/odecpp_collision.h:377:33: error: 'dReal' has not been declared
  377 |   void set (dReal px, dReal py, dReal pz, dReal dx, dReal dy, dReal dz)
      |                                 ^~~~~
/nix/store/rsbmrrjh9fvi72cb4wjvkzz81gvsh71c-ode-0.12/include/ode/odecpp_collision.h:377:43: error: 'dReal' has not been declared
  377 |   void set (dReal px, dReal py, dReal pz, dReal dx, dReal dy, dReal dz)
      |                                           ^~~~~
/nix/store/rsbmrrjh9fvi72cb4wjvkzz81gvsh71c-ode-0.12/include/ode/odecpp_collision.h:377:53: error: 'dReal' has not been declared
  377 |   void set (dReal px, dReal py, dReal pz, dReal dx, dReal dy, dReal dz)
      |                                                     ^~~~~
/nix/store/rsbmrrjh9fvi72cb4wjvkzz81gvsh71c-ode-0.12/include/ode/odecpp_collision.h:377:63: error: 'dReal' has not been declared
  377 |   void set (dReal px, dReal py, dReal pz, dReal dx, dReal dy, dReal dz)
      |                                                               ^~~~~
/nix/store/rsbmrrjh9fvi72cb4wjvkzz81gvsh71c-ode-0.12/include/ode/odecpp_collision.h:379:13: error: 'dVector3' has not been declared
  379 |   void get (dVector3 start, dVector3 dir)
      |             ^~~~~~~~
/nix/store/rsbmrrjh9fvi72cb4wjvkzz81gvsh71c-ode-0.12/include/ode/odecpp_collision.h:379:29: error: 'dVector3' has not been declared
  379 |   void get (dVector3 start, dVector3 dir)

How to get rviz?

Hi, sorry for opening so many issues, I think there's something basic I'm not quite getting.

I have added rosPackages.noetic.rviz to the buildInputs of the shell, and nix-shell starts without errors, but then I get rviz: command not found

I'm running into a lot of issues like this... Where the package is definitely there in my /nix/store, but I'm getting not found errors. Is there a command I'm missing that sets up paths?

Gazebo crash on startup

I installed nix-ros-overlay.rosPackages.noetic.gazebo. When I run gazebo --verbose, I get:

Gazebo multi-robot simulator, version 11.9.0
Copyright (C) 2012 Open Source Robotics Foundation.
Released under the Apache 2 License.
http://gazebosim.org

[Msg] Waiting for master.
[Msg] Connected to gazebo master @ http://127.0.0.1:11345
[Msg] Publicized address: 192.168.56.1
Gazebo multi-robot simulator, version 11.9.0
Copyright (C) 2012 Open Source Robotics Foundation.
Released under the Apache 2 License.
http://gazebosim.org

[Msg] Waiting for master.
[Msg] Connected to gazebo master @ http://127.0.0.1:11345
[Msg] Publicized address: 192.168.56.1
[Msg] Loading world file [/nix/store/qgrfkh8bqddgzkawb8irnwrxxrkdq8q5-gazebo-11.9.0/share/gazebo-11/worlds/empty.world]
[ALSOFT] (EE) Failed to set real-time priority for thread: Operation not permitted (1)
[ALSOFT] (EE) Failed to set real-time priority for thread: Operation not permitted (1)
[Err] [Scene.cc:227] Service call[/shadow_caster_material_name] timed out
[Err] [Scene.cc:249] Service call[/shadow_caster_render_back_faces] timed out
[Wrn] [Scene.cc:462] Ignition transport [/scene_info] service call failed, falling back to gazebo transport [scene_info] request.
[Wrn] [GuiIface.cc:120] Qt has caught an exception thrown from an event handler. Throwing
exceptions from an event handler is not supported in Qt.
You must not let any exception whatsoever propagate through Qt code.
If that is not possible, in Qt 5 you must at least reimplement
QCoreApplication::notify() and catch all exceptions there.

[Err] [main.cc:37] Ogre Error:RuntimeAssertionException: Ogre/ShadowExtrudePointLight not found. Verify that you referenced the 'ShadowVolume' folder in your resources.cfg in initialise at /build/source/OgreMain/src/OgreShadowVolumeExtrudeProgram.cpp (line 70)

gazebo_crash

I am seeing a window with a black 3D viewport for some seconds before Gazebo crash. I am using Intel integrated graphics on NixOS 21.11.
Should Gazebo work out of the box? Did I miss something somewhere?

wrapQtAppsHook needed for any Qt-based apps in latest nixpkgs

Using latest nixpkgs today exposed a big change that nix-ros-overlay will need to handle somehow: Qt-based packages will now need to depend on qt5.wrapQtAppsHook or specify that they don't want wrapping. I'm not sure if there's any harm in just adding the dependency across the board. But this might require changes at the level of generating the nix expressions for a distro.

legacyPackages lacks colcon and other tools

When using the flake for nix-ros-overlay, certain tools like colcon are not included under legacyPackages. I believe this is because you scope the export as pkgs.rosPackages.

librealsense cannot be evaluated when `with rosPacakges.melodic` is present

I am building a nix-shell with nix-ros-overlay, which needs to have librealsense as well. When I added librealsense directly in

with import (builtins.fetchTarball {
  url = "https://github.com/lopsided98/nix-ros-overlay/archive/19c206638d61d0c8c9466e1ea26908472f79d1ae.tar.gz";
}) {
  nixpkgs = builtins.fetchTarball "https://github.com/NixOS/nixpkgs/archive/66acfa3d16eb599f5aa85bda153a24742f683383.tar.gz";
}; 

with rosPackages.melodic;

mkShell {
  buildInputs = [ librealsense ];
}

The evaluation will fail with

error: attribute 'librealsense' missing, at /nix/store/959h823yjbr6dhb5aikdaivcfmr22cph-source/distros/distro-overlay.nix:143:20
(use '--show-trace' to show detailed location information)

My best guess is that rosSuper.librealsense does not evaluate, but I am not sure how to keep debugging. Instead, I am using this workaround

with import (builtins.fetchTarball {
  url = "https://github.com/lopsided98/nix-ros-overlay/archive/19c206638d61d0c8c9466e1ea26908472f79d1ae.tar.gz";
}) {
  nixpkgs = builtins.fetchTarball "https://github.com/NixOS/nixpkgs/archive/66acfa3d16eb599f5aa85bda153a24742f683383.tar.gz";
}; 

let librealsense-unpatched = librealsense;

in with rosPackages.melodic;

mkShell {
  buildInputs = [ librealsense-unpatched ];
}

to extract the librealsense from nixpkgs. My understanding is that since I am pinning to the latest nixpkgs where librealsense is up to date (2.40.p), I probably do not need the patch. Can you help confirm?

Thanks a lot!

Is $GAZEBO_PLUGIN_PATH set up correctly?

Hello,

I'm back with environment variables again. So, I noticed the following:

[nix-shell:~/workspace/gazebo-experiment]$ echo $GAZEBO_PLUGIN_PATH
/nix/store/a217cx4cjy6p8ry6477sj5z56wlzqicz-ros-noetic-gazebo-ros-2.9.1-r1/lib

...which seems to be missing a bunch of plugins, which can be found by calling which gazebo:

[nix-shell:~/workspace/gazebo-experiment]$ ls /nix/store/2zzqmlahjr0phrpjxpcdi23lfdizm9p9-gazebo-11.3.0/lib/gazebo-11/plugins
libActorPlugin.so                   libDepthCameraPlugin.so      libJointControlPlugin.so           libMudPlugin.so                   libSonarPlugin.so
libActuatorPlugin.so                libDiffDrivePlugin.so        libJointTrajectoryPlugin.so        libPlaneDemoPlugin.so             libSphereAtlasDemoPlugin.so
libAmbientOcclusionVisualPlugin.so  libElevatorPlugin.so         libJoyPlugin.so                    libPressurePlugin.so              libStaticMapPlugin.so
libArduCopterPlugin.so              libFiducialCameraPlugin.so   libKeyboardGUIPlugin.so            libRandomVelocityPlugin.so        libStopWorldPlugin.so
libArrangePlugin.so                 libFlashLightPlugin.so       libKeysToCmdVelPlugin.so           libRayPlugin.so                   libTimerGUIPlugin.so
libAttachLightPlugin.so             libFollowerPlugin.so         libKeysToJointsPlugin.so           libRaySensorNoisePlugin.so        libTouchPlugin.so
libBlinkVisualPlugin.so             libForceTorquePlugin.so      libLedPlugin.so                    libReflectancePlugin.so           libTrackedVehiclePlugin.so
libBreakableJointPlugin.so          libGimbalSmall2dPlugin.so    libLensFlareSensorPlugin.so        libRegionEventBoxPlugin.so        libTransporterPlugin.so
libBuoyancyPlugin.so                libGpuRayPlugin.so           libLiftDragPlugin.so               libRestUiPlugin.so                libVariableGearboxPlugin.so
libCameraPlugin.so                  libHarnessPlugin.so          libLinearBatteryConsumerPlugin.so  libRestWebPlugin.so               libVehiclePlugin.so
libCartDemoPlugin.so                libHeightmapLODPlugin.so     libLinearBatteryPlugin.so          libRubblePlugin.so                libWheelSlipPlugin.so
libCessnaGUIPlugin.so               libHydraDemoPlugin.so        libLinkPlot3DPlugin.so             libShaderParamVisualPlugin.so     libWheelTrackedVehiclePlugin.so
libCessnaPlugin.so                  libHydraPlugin.so            libLookAtDemoPlugin.so             libSimEventsPlugin.so             libWindPlugin.so
libContactPlugin.so                 libImuSensorPlugin.so        libMisalignmentPlugin.so           libSimpleTrackedVehiclePlugin.so
libContainPlugin.so                 libInitialVelocityPlugin.so  libModelPropShop.so                libSkidSteerDrivePlugin.so

I got a bunch of missing plugin errors (libLiftDragPlugin.so is essential for me) up to this point, but adding that path as follows:
[nix-shell:~/workspace/gazebo-experiment]$ export GAZEBO_PLUGIN_PATH=${GAZEBO_PLUGIN_PATH}:/nix/store/2zzqmlahjr0phrpjxpcdi23lfdizm9p9-gazebo-11.3.0/lib/gazebo-11/plugins
seems to make those errors go away.

Is that perhaps missing from the nix files? Am I doing something wrong with my shell.nix file?

shell.nix

Where is roscd?

I'd expect the example shell to have roscd available but it doesn't. Is this intentional?

rviz and ogre

I recently updated to try out fixes to issues we've discussed, and found that rviz from noetic was segfaulting for me.

$ rviz
[ INFO] [1638366907.314265721]: rviz version 1.14.10
[ INFO] [1638366907.314295955]: compiled against Qt version 5.15.3
[ INFO] [1638366907.314306657]: compiled against OGRE version 1.9.0 (Ghadamon)
[ INFO] [1638366907.323839132]: Forcing OpenGl version 0.
[ INFO] [1638366907.593809008]: Stereo is NOT SUPPORTED
[ INFO] [1638366907.593875508]: OpenGL device: AMD Radeon (TM) RX 480 Graphics (POLARIS10, DRM 3.42.0, 5.15.3, LLVM 13.0.0)
[ INFO] [1638366907.593908287]: OpenGl version: 4.6 (GLSL 4.6) limited to GLSL 1.4 on Mesa system.
Segmentation fault (core dumped)

Using gdb, I found that the segfault was coming from Ogre, and eventually found that if I built rviz against ogre from nixpkgs (i.e. version 1.12.1) it worked.

I have two questions stemming from this:

  • Can anyone else reproduce the segfault?
  • What's the best way to override a dependency?

Regarding the second question, I have a flake.nix that defines a devShell that includes rviz. I had hoped that including (rviz.override { ogre1_9 = pkgs.ogre; }) rather than rviz would work, but that override did not have the desired effect (the rviz executable still reported being compiled against ogre 1.9.0). To get things working, I pointed the flake input to a local checkout of this repo in which I made the change from ogre1_9 to ogre. Is there a way to more easily override packages in a downstream nix definition like this?

Thank you again for this wonderful project!

nix develop?

I was wondering if it were possible to get nix develop and nix build working, for which the main barrier seems to be impurity issues. I enabled Flakes on my system, and then following #52 and a similar modification as #64 (comment), I ended up with this default.nix:

{ nixpkgs ? builtins.fetchTarball {
  url = "https://github.com/lopsided98/nixpkgs/archive/2d5ea251675e5c00334e577f37acf988559bbc32.tar.gz";
  sha256 = "0400allb79dsa26hz5yhn1r0qkrq7c45ifich2a7s974mfwxxvg0";
}
, overlays ? [], ... }@args: import nixpkgs {
  overlays = [ (import ./overlay.nix) ] ++ overlays;
} // args

And this flake.nix:

{
  description = "ROS overlay for the Nix package manager";

  inputs = {
    nixpkgs.url = "github:lopsided98/nixpkgs/nix-ros";
    flake-utils.url = "github:numtide/flake-utils";
  };

  outputs = { self, nixpkgs, flake-utils }:
    with flake-utils.lib;
    eachSystem allSystems (system: let
      pkgs = import nixpkgs {
        inherit system;
        overlays = [ self.overlay ];
      };
    in {
      packages = pkgs.rosPackages;
      devShell = import ./ros-base.nix { inherit pkgs; rosPackages = pkgs.rosPackages;};
    }) // {
      overlay = import ./overlay.nix;
      nixosModule = import ./modules;
    };
}

And this ros-base.nix, which works fine when run with, eg nix-shell ros-base.nix:

with import ./. {};
with rosPackages.noetic;
with pythonPackages;

mkShell {
  buildInputs = [
    glibcLocales
    (buildEnv { paths = [
      ros-base
    ]; })
  ];

  ROS_HOSTNAME = "localhost";
  ROS_MASTER_URI = "http://localhost:11311";
}

However, trying to run nix develop in this path, I get:

error: cached failure of attribute 'devShell.x86_64-linux'

Or, depending on various bits of fiddling I can instead get:

error: attribute 'packages.x86_64-linux.devShell' already defined at /nix/store/g07ps14skfcpdaiim58vp5443n47qjcj-source/flake.nix:17:7

       at /nix/store/g07ps14skfcpdaiim58vp5443n47qjcj-source/flake.nix:18:7:

           17|       packages = pkgs.rosPackages;
           18|       packages.x86_64-linux.devShell = import ./ros-base.nix { inherit pkgs; rosPackages = pkgs.rosPackages;};
             |       ^
           19|     }) //

Or:

error: flake 'git+file:///home/administrator/nix-ros-overlay?shallow=1' does not provide attribute 'packages.x86_64-linux.devShell.x86_64-linux', 'legacyPackages.x86_64-linux.devShell.x86_64-linux', 'devShell.x86_64-linux' or 'defaultPackage.x86_64-linux'

Or sometimes:

error: attribute 'currentSystem' missing

       at /nix/store/5s8qz8mcbhb0byrdwym9vg3x72fkmg5r-source/pkgs/top-level/impure.nix:18:43:

           17|   # (build, in GNU Autotools parlance) platform.
           18|   localSystem ? { system = args.system or builtins.currentSystem; }
             |                                           ^
           19|

I feel certain I must be doing something silly wrong here. Any pointers greatly appreciated.

SETUPTOOLS_DEB_LAYOUT is not set

Tracelog

https://github.com/airalab/robonomics/runs/928312139?check_suite_focus=true#step:4:1373

/store/8iw49kdb964892r133j1gd3ys9cbdq5q-ros-noetic-catkin-0.8.6-r1/bin
usage: setup.py [global_opts] cmd1 [cmd1_opts] [cmd2 [cmd2_opts] ...]
   or: setup.py --help [cmd1 cmd2 ...]
   or: setup.py --help-commands
   or: setup.py cmd --help

error: option --install-layout not recognized
CMake Error at catkin_generated/safe_execute_install.cmake:4 (message):

  execute_process(/tmp/nix-build-ros-noetic-catkin-0.8.6-r1.drv-0/catkin-release-release-noetic-catkin-0.8.6-1/build/catkin_generated/python_distutils_install.sh)
  returned error code
Call Stack (most recent call first):
  cmake_install.cmake:171 (include)

Unfortunately, during the build I got these errors.

https://answers.ros.org/question/52021/installing-groovy-from-source-fails/

Could you set -DSETUPTOOLS_DEB_LAYOUT=OFF to cmake sentence to prevent it in future?

husky-description fails to configure: Unknown CMake command "catkin_run_tests_target".

When trying to build nix-ros-overlay.rosPackages.noetic.husky-description (current master, 3f30908), I am getting the following CMake error:

these derivations will be built:
  /nix/store/qbzds5gvf7mh4sfpki1a9ljw4hy8nybs-ros-noetic-husky-description-0.6.0-r2.drv
building '/nix/store/qbzds5gvf7mh4sfpki1a9ljw4hy8nybs-ros-noetic-husky-description-0.6.0-r2.drv'...
/nix/store/ivxlqsbiwk59k3qvj1xmaz68myh19znj-ros-noetic-catkin-0.8.10-r1/etc/catkin/profile.d/05.catkin_make.bash: line 67: complete: command not found
/nix/store/ivxlqsbiwk59k3qvj1xmaz68myh19znj-ros-noetic-catkin-0.8.10-r1/etc/catkin/profile.d/05.catkin_make_isolated.bash: line 65: complete: command not found
unpacking sources
unpacking source archive /nix/store/7ak5d0x1r3x4ag8qx3wxqynzisdklkpx-0.6.0-2.tar.gz
source root is husky-release-release-noetic-husky_description-0.6.0-2
setting SOURCE_DATE_EPOCH to timestamp 1632837671 of file husky-release-release-noetic-husky_description-0.6.0-2/urdf/wheel.urdf.xacro
patching sources
configuring
fixing cmake files...
cmake flags: -DCMAKE_FIND_USE_SYSTEM_PACKAGE_REGISTRY=OFF -DCMAKE_FIND_USE_PACKAGE_REGISTRY=OFF -DCMAKE_EXPORT_NO_PACKAGE_REGISTRY=ON -DCMAKE_BUILD_TYPE=Release -DCMAKE_SKIP_BUILD_RPATH=ON -DBUILD_TESTING=OFF -DCMAKE_INSTALL_LOCALEDIR=/nix/store/j93ksz57xgfsnqnwsxkfwa9jmymlgqsf-ros-noetic-husky-description-0.6.0-r2/share/locale -DCMAKE_INSTALL_LIBEXECDIR=/nix/store/j93ksz57xgfsnqnwsxkfwa9jmymlgqsf-ros-noetic-husky-description-0.6.0-r2/libexec -DCMAKE_INSTALL_LIBDIR=/nix/store/j93ksz57xgfsnqnwsxkfwa9jmymlgqsf-ros-noetic-husky-description-0.6.0-r2/lib -DCMAKE_INSTALL_DOCDIR=/nix/store/j93ksz57xgfsnqnwsxkfwa9jmymlgqsf-ros-noetic-husky-description-0.6.0-r2/share/doc/husky_description -DCMAKE_INSTALL_INFODIR=/nix/store/j93ksz57xgfsnqnwsxkfwa9jmymlgqsf-ros-noetic-husky-description-0.6.0-r2/share/info -DCMAKE_INSTALL_MANDIR=/nix/store/j93ksz57xgfsnqnwsxkfwa9jmymlgqsf-ros-noetic-husky-description-0.6.0-r2/share/man -DCMAKE_INSTALL_OLDINCLUDEDIR=/nix/store/j93ksz57xgfsnqnwsxkfwa9jmymlgqsf-ros-noetic-husky-description-0.6.0-r2/include -DCMAKE_INSTALL_INCLUDEDIR=/nix/store/j93ksz57xgfsnqnwsxkfwa9jmymlgqsf-ros-noetic-husky-description-0.6.0-r2/include -DCMAKE_INSTALL_SBINDIR=/nix/store/j93ksz57xgfsnqnwsxkfwa9jmymlgqsf-ros-noetic-husky-description-0.6.0-r2/sbin -DCMAKE_INSTALL_BINDIR=/nix/store/j93ksz57xgfsnqnwsxkfwa9jmymlgqsf-ros-noetic-husky-description-0.6.0-r2/bin -DCMAKE_INSTALL_NAME_DIR=/nix/store/j93ksz57xgfsnqnwsxkfwa9jmymlgqsf-ros-noetic-husky-description-0.6.0-r2/lib -DCMAKE_POLICY_DEFAULT_CMP0025=NEW -DCMAKE_OSX_SYSROOT= -DCMAKE_FIND_FRAMEWORK=LAST -DCMAKE_STRIP=/nix/store/xiq6j4jsyj351p8q3yw9cg1hdqp9m685-gcc-wrapper-10.3.0/bin/strip -DCMAKE_RANLIB=/nix/store/lbxfixyw1yk099pjyaiy3xj5dl7kxm1g-binutils-2.35.2/bin/ranlib -DCMAKE_AR=/nix/store/lbxfixyw1yk099pjyaiy3xj5dl7kxm1g-binutils-2.35.2/bin/ar -DCMAKE_C_COMPILER=gcc -DCMAKE_CXX_COMPILER=g++ -DCMAKE_INSTALL_PREFIX=/nix/store/j93ksz57xgfsnqnwsxkfwa9jmymlgqsf-ros-noetic-husky-description-0.6.0-r2  -DCATKIN_ENABLE_TESTING=OFF -DSETUPTOOLS_DEB_LAYOUT=OFF
CMake Deprecation Warning at CMakeLists.txt:1 (cmake_minimum_required):
  Compatibility with CMake < 2.8.12 will be removed from a future version of
  CMake.

  Update the VERSION argument <min> value or use a ...<max> suffix to tell
  CMake that the project does not need compatibility with older versions.


-- The C compiler identification is GNU 10.3.0
-- The CXX compiler identification is GNU 10.3.0
-- Detecting C compiler ABI info
-- Detecting C compiler ABI info - done
-- Check for working C compiler: /nix/store/xiq6j4jsyj351p8q3yw9cg1hdqp9m685-gcc-wrapper-10.3.0/bin/gcc - skipped
-- Detecting C compile features
-- Detecting C compile features - done
-- Detecting CXX compiler ABI info
-- Detecting CXX compiler ABI info - done
-- Check for working CXX compiler: /nix/store/xiq6j4jsyj351p8q3yw9cg1hdqp9m685-gcc-wrapper-10.3.0/bin/g++ - skipped
-- Detecting CXX compile features
-- Detecting CXX compile features - done
-- Using CATKIN_DEVEL_PREFIX: /build/husky-release-release-noetic-husky_description-0.6.0-2/build/devel
-- Using CMAKE_PREFIX_PATH: /nix/store/ivxlqsbiwk59k3qvj1xmaz68myh19znj-ros-noetic-catkin-0.8.10-r1;/nix/store/q2lj6pxd6sn75fa9pjx9x3jpgxnr6zld-cmake-3.21.2;/nix/store/l54hcf62vlwv014vnaf46pz5hzx89f0r-catkin-setup-hook;/nix/store/ja2c6vmg2xz40v6xxz0pjjvls3f1wx59-hook;/nix/store/6rnp1psxb8lhyrgfaif9hvs94anvs3hg-hook;/nix/store/xn9mcs2xjm0akxrrl49aj7l4ax1lbg1y-hook;/nix/store/nr8hvqfbkgb02jpk8l101pis23xvw0hg-gtest-1.11.0-dev;/nix/store/k50ib4p92giysavc76am4gjf3m6rzaj7-gtest-1.11.0;/nix/store/ghbj7zld6a2h3g2ygb81p9ljwd0mqk2l-python3.9-catkin_pkg-0.4.24;/nix/store/3iy7j0mli9sppxa7vlgwzlm7pzlf248x-python3.9-python-dateutil-2.8.2;/nix/store/whr9yl39g4q3vyqk16d76dkxmqqrx9ni-python3.9-six-1.16.0;/nix/store/k0z9n599k02hab8qjjp3ljw065iwjcvg-python3-3.9.6;/nix/store/rz3sgby9rwpf29av40rngl7gk8r7i70v-python3.9-docutils-0.17.1;/nix/store/2x5jhy3sx8za2skbf3v5ciq2dqcsg0rs-python3.9-pyparsing-2.4.7;/nix/store/5jrlh35xw2x784c8w7wchglhj26v1gvf-python3.9-empy-3.3.4;/nix/store/fbr6ycl5p04bwvfb05rhy2pyy9ii69ig-python3.9-nose-1.3.7;/nix/store/dzjk4nvlzcrr41416v1ayvw0rkq7pyfx-python3.9-coverage-5.5;/nix/store/fivxgjz8rplffmzijnw8sgqn9ynidrkl-python3.9-setuptools-57.2.0;/nix/store/53pwmhjbvv5vdnxw7ckh5ikjjqww2ayp-python3.9-cffi-1.14.6-dev;/nix/store/iz8h3a5yv9w2a12wlrf246v9iyc5qqcc-python3.9-pycparser-2.20;/nix/store/x6i5gxhhw5hmjmhg2d4h0x57dqbinvgh-python3.9-cffi-1.14.6;/nix/store/pjba17qx8vh7dln8m5vnkqdbbjahvg9b-patchelf-0.13;/nix/store/xiq6j4jsyj351p8q3yw9cg1hdqp9m685-gcc-wrapper-10.3.0;/nix/store/v7w0pspwq8r2b7k2sndxq3db843z7xm5-binutils-wrapper-2.35.2;/nix/store/73cj10x1jsiq8gp5b9aqcjlkrbyrzbdh-ros-noetic-roslaunch-1.15.13-r1;/nix/store/pq61nd7jbf6isc3193hy0zgldf21qvzc-python3.9-paramiko-2.7.2;/nix/store/6jaq6wg440307yvn84naikgr156g618r-python3.9-bcrypt-3.2.0;/nix/store/lzrlpwrad4k97krd3lc93aj2azkrxxhj-python3.9-cryptography-3.4.8-dev;/nix/store/lvpdqfcdln2lp444myyk8sij705bchn3-python3.9-packaging-20.9;/nix/store/ri618r0vw2p2skqq0s79x8lzh7yfcn9g-python3.9-cryptography-3.4.8;/nix/store/0dkppm1wgr4np2v7djc21gxf33zcnwrr-python3.9-pynacl-1.4.0;/nix/store/ps76bmwvgy213hjpx9r0bv33xif47mln-python3.9-pyasn1-0.4.8;/nix/store/aa0ir4vg2w35jaxsvwdm7nibi8bkh23f-python3.9-PyYAML-5.4.1.1;/nix/store/m5pc57jzz5ixqhsv7y618ajpx6ji5pqi-python3.9-rospkg-1.1.10;/nix/store/7wyd0kbwvh6qcdr6h8lwbfhrkcvrb71q-ros-noetic-rosclean-1.15.8-r1;/nix/store/x5i7y62s8z8d0hx0fl4hgph7yh8ix2bj-ros-noetic-rosgraph-msgs-1.11.3-r1;/nix/store/j1gp3jwfa9r3rsj7mx1dhg4xgskzlgd1-ros-noetic-message-runtime-0.4.13-r1;/nix/store/qm86w7mb8ybz04s0jgpl62b8rq635ii0-ros-noetic-cpp-common-0.7.2-r1;/nix/store/4db89kadal0gm3kws2p4dic1zqyvc8dc-boost-1.73.0-dev;/nix/store/4hfakp74xh6wi0dlb8ihna2wbgm0v4bp-boost-1.73.0;/nix/store/8jsbl9lzwfh28440hhzryf4z5j09hdw3-console-bridge-1.0.1;/nix/store/ij9dczh77y9zm66dm2pc9y5xahn7iw2g-ros-noetic-genpy-0.6.15-r1;/nix/store/6v240z6174dlasz9xjynvm8pq9jragbj-ros-noetic-genmsg-0.5.16-r1;/nix/store/3wgx40p3w0hhxqykhxs9ybl15ff8xff2-ros-noetic-roscpp-serialization-0.7.2-r1;/nix/store/1gidgybvyqlj2kv2m8140ncnrswk0him-ros-noetic-roscpp-traits-0.7.2-r1;/nix/store/aazldnp1mp1zkb3l2fva5yj1yld6g53c-ros-noetic-rostime-0.7.2-r1;/nix/store/sxllrq38wyk95mbmzi2q3i83vxq7agzn-ros-noetic-std-msgs-0.5.13-r1;/nix/store/531cxsfwgy1hxvngv9x4cz4l13pj9f9h-ros-noetic-roslib-1.15.8-r1;/nix/store/a1rri8xwjs6n1al80wgrzb38sic187ln-ros-noetic-ros-environment-1.3.2-r1;/nix/store/jbnlg3z0qsdymgr7qp8y7ip5npfiifwh-ros-noetic-rospack-2.6.2-r1;/nix/store/d3c4y6ssahavbjgisvvldc9kdnfjryyk-pkg-config-wrapper-0.29.2;/nix/store/lby6miz8gww41fjjmcns4bip19w2ricd-python3.9-rosdep-0.17.1;/nix/store/0iq16bwhhl45xs9ikv0as8qwcih7kh5h-python3.9-rosdistro-0.7.5;/nix/store/18liax2xxa7zrgnqmb54kpfhga35znh1-tinyxml-2-6.0.0;/nix/store/zj5lf88l8g97vwar6p8xdwkwh6ixznxf-ros-noetic-rosmaster-1.15.13-r1;/nix/store/1740kyhy48xgdr90s18lj9wpnzarn81n-python3.9-defusedxml-0.7.1;/nix/store/1dmmnlw26j2vz40w0xdwa469dksb0piy-ros-noetic-rosgraph-1.15.13-r1;/nix/store/r8xcz5bxln4r2pmn1p4ygawb9alzdy3g-python3.9-netifaces-0.11.0;/nix/store/5k2cjw19jxbqjw86k5vz3msf7mird70z-ros-noetic-rosout-1.15.13-r1;/nix/store/r5g57llsp0v0b295xkjbja03bxh2j21d-ros-noetic-roscpp-1.15.13-r1;/nix/store/zgg8dr9isv9a9xikh03sikagwk6c78p5-ros-noetic-rosconsole-1.14.3-r1;/nix/store/bd1pr57ys2yqaabpsp6yskflrnx1sypd-apr-1.7.0-dev;/nix/store/n0p6xr2b42lf2vfyf4zi56rs999a61rk-apr-1.7.0;/nix/store/c5mv950jqn1dps13d5smsw9hdvsdk88g-log4cxx-0.10.0;/nix/store/chysn0vlddsjqshq36yls1vdn22mzdzi-ros-noetic-rosbuild-1.15.8-r1;/nix/store/ckic7fchici6d8qrm6dcpsqqwwvw6525-ros-noetic-message-generation-0.4.1-r1;/nix/store/b9ry5cvcpqlfn6sbc0ddps2ykmnb8cg8-ros-noetic-gencpp-0.6.5-r1;/nix/store/arklmgw3vch9mxjlcvv7f1whsm9ijszy-ros-noetic-geneus-3.0.0-r1;/nix/store/7z7grpzkriqik38b6nnw8bsr9rw72imy-ros-noetic-genlisp-0.4.18-r1;/nix/store/3vf4x49wfwsph52x5cfrzpriyfxpnkzf-ros-noetic-gennodejs-2.0.2-r1;/nix/store/c6smrmyk4hyrlfb7dimp08wivrcsi9rf-ros-noetic-xmlrpcpp-1.15.13-r1;/nix/store/w60ncm69w5r9klfxbnbfffz1sxa9fhkb-ros-noetic-rosparam-1.15.13-r1;/nix/store/kbf5ff6gc4c6s677nhyxaxxx62j04jck-ros-noetic-rosunit-1.15.8-r1;/nix/store/6rrdjd2ybncq6n0arjgmm2w6iky27341-ros-noetic-lms1xx-0.3.0-r2;/nix/store/bh890fbmcksjvmbvkl107c0bpijn1dhn-ros-noetic-rosconsole-bridge-0.5.4-r1;/nix/store/qf3d1bm63gfa146yscknypxmh20z2nc3-ros-noetic-sensor-msgs-1.13.1-r1;/nix/store/vlzycjvx8nrbn1bxc4lxxzragpaakrp3-ros-noetic-geometry-msgs-1.13.1-r1;/nix/store/9rpspy9v2kf8mx9fiw4fjy8isli1kx6p-ros-noetic-realsense2-description-2.3.2-r1;/nix/store/43309dhinqhd5kqx3252f7cs1mq2ydp0-ros-noetic-xacro-1.14.10-r1;/nix/store/vjvlk48cxk53bbil8zlmkcaakw4gx2dy-ros-noetic-urdf-1.13.2-r1;/nix/store/d3v7ms4whna0px95ccdk86xd7026vxs5-ros-noetic-pluginlib-1.13.0-r1;/nix/store/x53qf809is6yc09666k4sg1mrlr7kdsa-ros-noetic-class-loader-0.5.0-r1;/nix/store/hchr0m8ymag9fk24zwskbvf2dziwh13k-poco-1.10.1-dev;/nix/store/gzzkcvchs8hdsv3slpk0cxl2wvjdkmx2-zlib-1.2.11-dev;/nix/store/2zz2l3j07h9bkvdmxhxinj2rcjy3cdh7-zlib-1.2.11;/nix/store/j64l1xcl66z7y33z4za0fd1l0jyni9mv-pcre-8.44-dev;/nix/store/sw0whw2ngd9ih0m644qsisl5bffn5f02-pcre-8.44-bin;/nix/store/rdcq86zzfplp132acvbz653czxjk2p37-pcre-8.44;/nix/store/v2lwc1j0iv3j7005d0by2szf281q3y45-expat-2.4.1-dev;/nix/store/cgg7sv3aa40mksfrm44rfifcgprgd25v-expat-2.4.1;/nix/store/vl1s02scx303kw733bdqj67aw8n9mix2-sqlite-3.36.0-dev;/nix/store/blnxgzn0hzrmhrha30m0khvi0ff91g6i-sqlite-3.36.0-bin;/nix/store/30q5xa4pfbvic54nh68qn86w6kjki66i-sqlite-3.36.0;/nix/store/0wb6f51v5szkjvyfs21zkgl05a7if2m2-poco-1.10.1;/nix/store/r9xg72z3hbw7wha95q1c478x8121yrnq-tinyxml-2.6.2;/nix/store/4qakllgwq3w3h87wn7bnyxb9p564sdcs-urdfdom-1.0.4;/nix/store/3hsza49nkv9q0d19kc0dcgz0gzvhf2ak-urdfdom-headers-1.0.5;/nix/store/jpwxa6h0wsqlf77bnpqw9b1lnlq3d217-ros-noetic-velodyne-description-1.0.12-r2
-- This workspace overlays: /nix/store/ivxlqsbiwk59k3qvj1xmaz68myh19znj-ros-noetic-catkin-0.8.10-r1;/nix/store/73cj10x1jsiq8gp5b9aqcjlkrbyrzbdh-ros-noetic-roslaunch-1.15.13-r1;/nix/store/7wyd0kbwvh6qcdr6h8lwbfhrkcvrb71q-ros-noetic-rosclean-1.15.8-r1;/nix/store/x5i7y62s8z8d0hx0fl4hgph7yh8ix2bj-ros-noetic-rosgraph-msgs-1.11.3-r1;/nix/store/j1gp3jwfa9r3rsj7mx1dhg4xgskzlgd1-ros-noetic-message-runtime-0.4.13-r1;/nix/store/qm86w7mb8ybz04s0jgpl62b8rq635ii0-ros-noetic-cpp-common-0.7.2-r1;/nix/store/ij9dczh77y9zm66dm2pc9y5xahn7iw2g-ros-noetic-genpy-0.6.15-r1;/nix/store/6v240z6174dlasz9xjynvm8pq9jragbj-ros-noetic-genmsg-0.5.16-r1;/nix/store/3wgx40p3w0hhxqykhxs9ybl15ff8xff2-ros-noetic-roscpp-serialization-0.7.2-r1;/nix/store/1gidgybvyqlj2kv2m8140ncnrswk0him-ros-noetic-roscpp-traits-0.7.2-r1;/nix/store/aazldnp1mp1zkb3l2fva5yj1yld6g53c-ros-noetic-rostime-0.7.2-r1;/nix/store/sxllrq38wyk95mbmzi2q3i83vxq7agzn-ros-noetic-std-msgs-0.5.13-r1;/nix/store/531cxsfwgy1hxvngv9x4cz4l13pj9f9h-ros-noetic-roslib-1.15.8-r1;/nix/store/a1rri8xwjs6n1al80wgrzb38sic187ln-ros-noetic-ros-environment-1.3.2-r1;/nix/store/jbnlg3z0qsdymgr7qp8y7ip5npfiifwh-ros-noetic-rospack-2.6.2-r1;/nix/store/zj5lf88l8g97vwar6p8xdwkwh6ixznxf-ros-noetic-rosmaster-1.15.13-r1;/nix/store/1dmmnlw26j2vz40w0xdwa469dksb0piy-ros-noetic-rosgraph-1.15.13-r1;/nix/store/5k2cjw19jxbqjw86k5vz3msf7mird70z-ros-noetic-rosout-1.15.13-r1;/nix/store/r5g57llsp0v0b295xkjbja03bxh2j21d-ros-noetic-roscpp-1.15.13-r1;/nix/store/zgg8dr9isv9a9xikh03sikagwk6c78p5-ros-noetic-rosconsole-1.14.3-r1;/nix/store/chysn0vlddsjqshq36yls1vdn22mzdzi-ros-noetic-rosbuild-1.15.8-r1;/nix/store/ckic7fchici6d8qrm6dcpsqqwwvw6525-ros-noetic-message-generation-0.4.1-r1;/nix/store/b9ry5cvcpqlfn6sbc0ddps2ykmnb8cg8-ros-noetic-gencpp-0.6.5-r1;/nix/store/arklmgw3vch9mxjlcvv7f1whsm9ijszy-ros-noetic-geneus-3.0.0-r1;/nix/store/7z7grpzkriqik38b6nnw8bsr9rw72imy-ros-noetic-genlisp-0.4.18-r1;/nix/store/3vf4x49wfwsph52x5cfrzpriyfxpnkzf-ros-noetic-gennodejs-2.0.2-r1;/nix/store/c6smrmyk4hyrlfb7dimp08wivrcsi9rf-ros-noetic-xmlrpcpp-1.15.13-r1;/nix/store/w60ncm69w5r9klfxbnbfffz1sxa9fhkb-ros-noetic-rosparam-1.15.13-r1;/nix/store/kbf5ff6gc4c6s677nhyxaxxx62j04jck-ros-noetic-rosunit-1.15.8-r1;/nix/store/6rrdjd2ybncq6n0arjgmm2w6iky27341-ros-noetic-lms1xx-0.3.0-r2;/nix/store/bh890fbmcksjvmbvkl107c0bpijn1dhn-ros-noetic-rosconsole-bridge-0.5.4-r1;/nix/store/qf3d1bm63gfa146yscknypxmh20z2nc3-ros-noetic-sensor-msgs-1.13.1-r1;/nix/store/vlzycjvx8nrbn1bxc4lxxzragpaakrp3-ros-noetic-geometry-msgs-1.13.1-r1;/nix/store/9rpspy9v2kf8mx9fiw4fjy8isli1kx6p-ros-noetic-realsense2-description-2.3.2-r1;/nix/store/43309dhinqhd5kqx3252f7cs1mq2ydp0-ros-noetic-xacro-1.14.10-r1;/nix/store/vjvlk48cxk53bbil8zlmkcaakw4gx2dy-ros-noetic-urdf-1.13.2-r1;/nix/store/d3v7ms4whna0px95ccdk86xd7026vxs5-ros-noetic-pluginlib-1.13.0-r1;/nix/store/x53qf809is6yc09666k4sg1mrlr7kdsa-ros-noetic-class-loader-0.5.0-r1;/nix/store/jpwxa6h0wsqlf77bnpqw9b1lnlq3d217-ros-noetic-velodyne-description-1.0.12-r2
-- Found PythonInterp: /nix/store/k0z9n599k02hab8qjjp3ljw065iwjcvg-python3-3.9.6/bin/python3 (found suitable version "3.9.6", minimum required is "3")
-- Using PYTHON_EXECUTABLE: /nix/store/k0z9n599k02hab8qjjp3ljw065iwjcvg-python3-3.9.6/bin/python3
-- Using default Python package layout
-- Found PY_em: /nix/store/5jrlh35xw2x784c8w7wchglhj26v1gvf-python3.9-empy-3.3.4/lib/python3.9/site-packages/em.py
-- Using empy: /nix/store/5jrlh35xw2x784c8w7wchglhj26v1gvf-python3.9-empy-3.3.4/lib/python3.9/site-packages/em.py
-- Using CATKIN_ENABLE_TESTING: OFF
-- catkin 0.8.10
-- BUILD_SHARED_LIBS is on
CMake Error at /nix/store/73cj10x1jsiq8gp5b9aqcjlkrbyrzbdh-ros-noetic-roslaunch-1.15.13-r1/share/roslaunch/cmake/roslaunch-extras.cmake:66 (catkin_run_tests_target):
  Unknown CMake command "catkin_run_tests_target".
Call Stack (most recent call first):
  CMakeLists.txt:8 (roslaunch_add_file_check)


-- Configuring incomplete, errors occurred!
See also "/build/husky-release-release-noetic-husky_description-0.6.0-2/build/CMakeFiles/CMakeOutput.log".
builder for '/nix/store/qbzds5gvf7mh4sfpki1a9ljw4hy8nybs-ros-noetic-husky-description-0.6.0-r2.drv' failed with exit code 1
error: build of '/nix/store/qbzds5gvf7mh4sfpki1a9ljw4hy8nybs-ros-noetic-husky-description-0.6.0-r2.drv' failed

I am new to catkin and I believe there is an issue with this package configuration (https://github.com/clearpath-gbp/husky-release/blob/release/noetic/husky_description/0.6.0-2/CMakeLists.txt). Have you already seen something similar?

rqt_graph error

Trying to run rqt_graph from noetic results in,

$ rqt_graph
CompositePluginProvider.discover() could not discover plugins from provider "<class 'qt_gui.recursive_plugin_provider.RecursivePluginProvider'>":
Traceback (most recent call last):
  File "/nix/store/z4k8gh0r87h4015dghp34pv7c6lf2p9r-ros-noetic-qt-gui-0.4.2-r1/lib/python3.9/site-packages/qt_gui/composite_plugin_provider.py", line 57, in discover
    plugin_descriptors = plugin_provider.discover(discovery_data)
  File "/nix/store/z4k8gh0r87h4015dghp34pv7c6lf2p9r-ros-noetic-qt-gui-0.4.2-r1/lib/python3.9/site-packages/qt_gui/recursive_plugin_provider.py", line 53, in discover
    plugin_descriptors = self._plugin_provider.discover(discovery_data)
  File "/nix/store/dxsk9ddd6asj7bv5vaf72b7z5jyin3f7-ros-noetic-rqt-gui-0.5.2-r1/lib/python3.9/site-packages/rqt_gui/ros_plugin_provider.py", line 67, in discover
    plugin_descriptors += self._parse_plugin_xml(package_name, plugin_xml)
  File "/nix/store/dxsk9ddd6asj7bv5vaf72b7z5jyin3f7-ros-noetic-rqt-gui-0.5.2-r1/lib/python3.9/site-packages/rqt_gui/ros_plugin_provider.py", line 128, in _parse_plugin_xml
    for library_el in root.getiterator('library'):
AttributeError: 'ElementTree' object has no attribute 'getiterator'

This suggests it's an incompatibility with python 3.9. So I rebuilt everything with python38, and rqt_graph now works.

I don't know if the way I did this is the right way, so I'm open to advice before opening a PR. What I did was set python = python38; in the noetic expression in distros/default.nix, and then python3 = pythonOverridesFor self.python38; in the base expression in distros/distro-overlay.nix. I do not know if the latter change was needed, but I can't test it right now as rebuilding everything takes quite a while.

If this looks right, I'll open a PR to make this change.

Cannot build ROS

Hi there,
I'm trying to build ROS using your project, but it fails. Here are the error messages I get:

Scanning dependencies of target WheelTrackedVehiclePlugin
[ 96%] Built target LookAtDemoPlugin_autogen
Scanning dependencies of target LedPlugin
[ 96%] Building CXX object plugins/CMakeFiles/WheelTrackedVehiclePlugin.dir/WheelTrackedVehiclePlugin_autogen/mocs_compilation.cpp.o
[ 96%] Building CXX object plugins/CMakeFiles/WheelTrackedVehiclePlugin.dir/WheelTrackedVehiclePlugin.cc.o
[ 96%] Building CXX object plugins/CMakeFiles/LedPlugin.dir/LedPlugin_autogen/mocs_compilation.cpp.o
[ 96%] Building CXX object plugins/CMakeFiles/LedPlugin.dir/LedPlugin.cc.o
[ 96%] Linking CXX shared library libLinkPlot3DPlugin.so
[ 96%] Linking CXX shared library libCameraPlugin.so
[ 96%] Built target LinkPlot3DPlugin
Scanning dependencies of target SimpleTrackedVehiclePlugin
[ 96%] Building CXX object plugins/CMakeFiles/SimpleTrackedVehiclePlugin.dir/SimpleTrackedVehiclePlugin_autogen/mocs_compilation.cpp.o
[ 96%] Building CXX object plugins/CMakeFiles/SimpleTrackedVehiclePlugin.dir/SimpleTrackedVehiclePlugin.cc.o
[ 96%] Built target CameraPlugin
Scanning dependencies of target gzclient:(

[ 96%] Building CXX object gazebo/gui/CMakeFiles/gzclient.dir/gzclient_autogen/mocs_compilation.cpp.o
[ 96%] Building CXX object gazebo/gui/CMakeFiles/gzclient.dir/main.cc.o
[ 96%] Linking CXX executable gazebo
[ 96%] Linking CXX shared library libRayPlugin.so
[ 96%] Linking CXX shared library libMisalignmentPlugin.so
/nix/store/3b3ighb83nhifa1v4n7855hlbdl1mhf9-binutils-2.31.1/bin/ld: gui/libgazebo_gui.so.9.11.0: undefined reference to `gazebo::gui::TerrainEditorPalette::staticMetaObject'
/nix/store/3b3ighb83nhifa1v4n7855hlbdl1mhf9-binutils-2.31.1/bin/ld: gui/libgazebo_gui.so.9.11.0: undefined reference to `vtable for gazebo::gui::IncrementalPlot'
/nix/store/3b3ighb83nhifa1v4n7855hlbdl1mhf9-binutils-2.31.1/bin/ld: gui/libgazebo_gui.so.9.11.0: undefined reference to `gazebo::gui::TimePanel::SetTimeWidgetVisible(bool)'
/nix/store/3b3ighb83nhifa1v4n7855hlbdl1mhf9-binutils-2.31.1/bin/ld: gui/libgazebo_gui.so.9.11.0: undefined reference to `gazebo::gui::EditorItem::qt_metacast(char const*)'
/nix/store/3b3ighb83nhifa1v4n7855hlbdl1mhf9-binutils-2.31.1/bin/ld: gui/libgazebo_gui.so.9.11.0: undefined reference to `vtable for gazebo::gui::InsertModelWidget'
/nix/store/3b3ighb83nhifa1v4n7855hlbdl1mhf9-binutils-2.31.1/bin/ld: gui/libgazebo_gui.so.9.11.0: undefined reference to `gazebo::gui::TopicView::staticMetaObject'
/nix/store/3b3ighb83nhifa1v4n7855hlbdl1mhf9-binutils-2.31.1/bin/ld: gui/libgazebo_gui.so.9.11.0: undefined reference to `vtable for gazebo::gui::ModelRightMenu'
[…]
collect2: error: ld returned 1 exit status
make[2]: *** [gazebo/CMakeFiles/gazebo.dir/build.make:148: gazebo/gazebo-9.11.0] Error 1
make[1]: *** [CMakeFiles/Makefile2:2548: gazebo/CMakeFiles/gazebo.dir/all] Error 2
make[1]: *** Waiting for unfinished jobs....

I'm kind of new to this whole Nix thing, so it may be I'm doing something wrong. Here is the command I used:

nix-shell \                                                                                                                                                                                                                                                                                                                                                                                                  -I nix-ros-overlay=https://github.com/lopsided98/nix-ros-overlay/archive/master.tar.gz \
  --option extra-substituters 'https://ros.cachix.org' \
  --option trusted-public-keys 'cache.nixos.org-1:6NCHdD59X431o0gWypbMrAURkbJ16ZPMQFGspcDShjY= ros.cachix.org-1:dSyZxI8geDCJrwgvCOHDoAfOm5sV1wCPjBkKL+38Rvo=' \
  '<nix-ros-overlay/examples/turtlebot3-gazebo.nix>'
warning: ignoring untrusted substituter 'https://ros.cachix.org'

I'm using Archlinux. Is there anything I can do?

Thanks,
Rémy

aarch64 cache

I've discovered that setting up an aarch64 cache with GitHub actions and Cachix is actually really easy.

You need

uses: docker/setup-qemu-action@v1

and then run your build with

nix-build --option system aarch64-linux --extra-platforms aarch64-linux

NixOS: Enabling services.nix fails due to defusedxml-0.7.1

I have the following /etc/nixos/flake.nix

  inputs = {
    nixpkgs.url = github:NixOS/nixpkgs/nixos-21.05;
    nix-ros-overlay.url = github:lopsided98/nix-ros-overlay;
  };
  outputs = { nixpkgs, nix-ros-overlay, ... }: {

    nixosConfigurations.nixos = nixpkgs.lib.nixosSystem {
      system = "x86_64-linux";
      modules = [
        ./configuration.nix
        nix-ros-overlay.nixosModule
      ];
   };
  };
}

In my configuration.nix I have

services.ros = {
    enable = true;
    distro = "melodic";
  };

A nixos-rebuild switch fails with:

error: defusedxml-0.7.1 not supported for interpreter python2.7

urdfdom and its headers missing for ros 1 distros

Trying to package rviz (kinetic) and saw this repo. Thanks a lot for making it - learned a lot.
One of the dependencies for rviz is urdfdom, which seems no longer maintained by ROS any more (ROS recommends lib-urdfdom-dev which only lives in Debian world).
urdfdom is not in kinetic (amd melodic I think) in this repo, so that rviz cannot be successfully build. Can be reproduced by

nix repl with :l default.nix, and run rosPackages.kinetic.rviz

Not a request to fix, just FYI.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.