Commit graph

940 commits

Author SHA1 Message Date
Ben Wolsieffer
2632a16e77 distro-overlay: use pythonPackagesExtensions 2024-07-21 14:18:23 -04:00
Ben Wolsieffer
06776293ba Fix shared library extension
There was an extra period in there.
2024-07-21 12:21:54 -04:00
Michal Sojka
ab4c9ba0cf README: Update example flake.nix to use buildEnv
Currently, quite a few things are broken when ROS packages are used
directly without buildEnv.

Closes #396 #401
Related #362
2024-07-20 19:37:07 -04:00
Ben Wolsieffer
abd873208f Use extensions.sharedLibrary rather than hardcoded extensions. 2024-07-20 19:35:18 -04:00
Michal Sojka
6cbeea1f19 rmw-implementation: Don't build with CycloneDDS support on MacOS
CycloneDDS depends on Linux-only libraries such as acl and cannot be
built on MacOS. Removing CycloneDDS from rmw-implementation
dependencies is OK, because there are other RMW implementations, which
build fine on MacOS. For example FastDDS, which is the default one.

The result of this change is that on MacOS one cannot switch to
CycloneDDS at run-time by selecting it in the RMW_IMPLEMENTATION
environment variable.

Specifically, this commit avoids to following error:

       error: Package ‘acl-2.3.1’ in
       /nix/store/.../pkgs/development/libraries/acl/default.nix:40 is
       not available on the requested hostPlatform:
       hostPlatform.config = "aarch64-apple-darwin"
2024-07-20 19:33:16 -04:00
Michal Sojka
385faffe27 python-cmake-module: Use correct shared library extension on MacOS
This fixes the following error:

    make[2]: *** No rule to make target
    '/nix/store/03q8gn91mj95y5bqbcl90hyvmpqpz738-python3-3.11.7/lib/libpython3.11.so',
    needed by
    'rosidl_generator_py/builtin_interfaces/libbuiltin_interfaces__rosidl_generator_py.dylib'.
    Stop.
2024-07-20 19:33:16 -04:00
Ben Wolsieffer
9511104fcb pkgs: use pythonPackagesExtensions
This should avoid problems composing Python overrides.
2024-07-20 19:21:54 -04:00
Jeremy Kolb
1ba70442d8 buildRosPackage: default separateDebugInfo to true
Closes #431
2024-07-20 16:54:37 -04:00
Ben Wolsieffer
3f5755af61 gazebo: use merged patch commit
Use the merged patch commit ID rather than the one from the PR. This
makes it easier to keep track of when the patch makes it into a release.
2024-07-11 19:11:29 -04:00
Jeremy Kolb
2f38928a96 Allow gazebo to build against graphviz 10
Use commit hash

Co-authored-by: Michal Sojka <michal.sojka@cvut.cz>

add name
2024-07-11 18:36:33 -04:00
Ben Wolsieffer
c9b5ce4266 flake.lock: Update
Flake lock file updates:

• Updated input 'flake-utils':
    'github:numtide/flake-utils/1ef2e671c3b0c19053962c07dbda38332dcebf26' (2024-01-15)
  → 'github:numtide/flake-utils/b1d9ab70662946ef0850d488da1c9019f3a9752a' (2024-03-11)
• Updated input 'nixpkgs':
    'github:lopsided98/nixpkgs/f8e2ebd66d097614d51a56a755450d4ae1632df1' (2024-02-07)
  → 'github:lopsided98/nixpkgs/9f4128e00b0ae8ec65918efeba59db998750ead6' (2024-07-03)
2024-07-07 13:25:06 -04:00
Ben Wolsieffer
6a1d0aaa7e librealsense2: remove upstream patch 2024-07-07 13:24:44 -04:00
Michal Sojka
06c257eb38 noetic.mavros-extras: Add gcc-13 patch
Fixes #423.
2024-07-07 13:08:05 -04:00
Michal Sojka
a91bd83622 rosbag2-compression: Remove patch, which is now in a released version
The patch causes build failure.

Fixes #424.
2024-07-07 13:06:04 -04:00
Ben Wolsieffer
bcd3392314 rolling, jazzy: update mcap-vendor 2024-07-06 11:21:15 -04:00
Ben Wolsieffer
68f03ce770 iceoryx-posh: use cpptoml from nixpkgs 2024-07-06 10:50:04 -04:00
Ben Wolsieffer
4e8f44c813 google-benchmark-vendor: update vendored commit
Jazzy and rolling use a newer version.
2024-07-06 10:25:20 -04:00
Michal Sojka
9674e125cb Add ROS 2 Jazzy Jalisco
The content of jazzy/overrides.nix is just a copy of
rolling/overrides.nix.

At least ros-core builds successfully (tested on files generated by
superflore today; not yet in this repo).
2024-07-06 10:00:31 -04:00
Superflore
6a16c08989 regenerate all distros, Fri May 24 14:00:52 2024 2024-07-06 09:51:19 -04:00
Superflore
f1c32375c2 regenerate all distros, Fri May 10 13:12:06 2024 2024-05-11 17:24:52 -04:00
Superflore
1d5ae52f3e regenerate all distros, Fri Apr 12 13:51:24 2024 2024-04-19 19:33:34 -04:00
Ben Wolsieffer
e239e71fd2 rosgraph: add patch to fix hang with Python 3.11
This patch is included in an upstream PR but it has not been merged yet.
2024-04-10 21:09:56 -04:00
Ben Wolsieffer
cdb7956e95 Merge branch 'master' into develop 2024-04-10 20:44:44 -04:00
Ben Wolsieffer
674adb5bdf noetic: add patch to fix franka-hw
Fixes #382
2024-04-07 13:36:29 -04:00
Superflore
e6d11a616c regenerate all distros, Fri Apr 5 13:51:29 2024 2024-04-07 12:25:37 -04:00
Superflore
1b9585ae8f regenerate all distros, Sat Mar 23 14:09:25 2024 2024-03-23 13:35:20 -04:00
Ben Wolsieffer
39e6165e90 superflore: unstable-2022-12-09 -> unstable-2024-03-22 2024-03-22 22:24:59 -04:00
Ben Wolsieffer
af86823483 noetic: libphidget22: update vendor URL 2024-03-22 21:48:02 -04:00
Ben Wolsieffer
0cc5bdad01 libphidget22: update vendor URL 2024-03-22 21:38:55 -04:00
Ben Wolsieffer
dc5a4a3fa5 ompl: add patch to fix build
Fix path construction in the pkg-config file.
2024-03-22 21:07:09 -04:00
Superflore
78a454a6a5 regenerate all distros, Fri Mar 22 13:05:17 2024 2024-03-22 20:59:35 -04:00
Michal Sojka
b7be7029bf README: Add example of using the overlay in flake.nix 2024-03-22 20:59:24 -04:00
matthewcroughan
ff3322f90e gazebo: add wrapGAppsHook
makes the derivation more pure, without this it leads to (gzclient:1568911): GLib-GIO-ERROR **: 15:37:29.803: No GSettings schemas are installed on the system, unless you happen to be lucky enough to have the right files in your environment
2024-03-22 20:46:27 -04:00
Superflore
de1ea0a747 regenerate all distros, Fri Mar 8 13:41:18 2024 2024-03-09 13:19:25 -05:00
Ben Wolsieffer
2c2781805f Use nixpkgs version from flake by default
When not using flakes, you would immediately start using the latest
version of the nix-ros branch whenever I updated it, even if it hadn't
been tested or added to the cache yet. Now, it will match the flake
locked version by default even when not using flakes.
2024-03-09 12:27:10 -05:00
Ben Wolsieffer
e761430bde nix-ros-build-action: update dependencies 2024-03-06 19:24:06 -05:00
Ben Wolsieffer
7b0c15e446 actions: don't override cachix compression method
This was breaking cachix and it defaults to zstd anyway.
2024-03-06 19:21:33 -05:00
Ben Wolsieffer
e41c59ae0d actions: reduce parallelism
I already set max-jobs=1 a long time ago, so I'm not sure what effect
this will have.
2024-03-05 20:10:17 -05:00
Ben Wolsieffer
4dc55d14c3 Empty commit to trigger GitHub actions. 2024-03-04 22:01:59 -05:00
Ben Wolsieffer
fc2608672e humble: moveit-kinematics: add missing moveit-ros-planning dep
This was added upstream in 2.7.2 but this has not been released for
humble.
2024-03-04 21:13:14 -05:00
Ben Wolsieffer
c479bc18d7 humble: rcpputils: remove upstreamed patch 2024-03-03 17:41:32 -05:00
Superflore
160dfe7959 regenerate all distros, Fri Mar 1 13:05:06 2024 2024-03-03 14:24:52 -05:00
Michal Sojka
dd9cc83369 buildEnv: Reduce length of AMENT_PREFIX_PATH and other ROS 2 variables
The purpose of ROS-specific version of buildEnv in this overlay is to
reduce the length of environment variables when using many ROS
packages. However, currently it works only for ROS 1 and not for
ROS 2. This commit is an attempt to fix that.

Although the change looks trivial, it took me multiple full days to
figure out what to change and how. The following is my understanding
of how handling of environment variables works in ROS 2 and in
nix-ros-overlay and why the change in this commit works. I'm not
completely sure that it's all correct so feel free to complain if not.

- Every ament_cmake ROS package contains a $out/share/*/local_setup.sh
  script, generated by ament CMake macros, which is responsible for
  setting environment variables required for proper function of the
  package under ROS 2. Every package extends AMENT_PREFIX_PATH and it
  may extend other variables such as PATH. The default prefix used for
  extending the variables is specified at compile time and is equal to
  package's Nix store path ($out).

- local_setup.sh files are sourced when building dependent ROS
  packages. In nix-ros-overlay, this is accomplished by
  ament-cmake-core-setup-hook, which is automatically propagated to
  all dependents.

- ROS-specific buildEnv ensures that ROS packages are not further
  propagated downstream but non-ROS packages are.
  ament-cmake-core-setup-hook is a non-ROS package (it's a Nix native
  package) so if any package in the buildEnv depends on it, it is
  propagated out of buildEnv. Therefore dependents of the buildEnv
  source all local_setup.sh files from the buildEnv (and from other
  ROS packages outside of buildEnv, if there are any).

- The problem when sourcing local_setup.sh files now is the default
  prefix built into them, which causes every package to have a
  separate entry in the extended variables. However, if the file is
  sourced with AMENT_CURRENT_PREFIX variable set, its value overrides
  the default prefix. That's what we do in this commit. We set
  AMENT_CURRENT_PREFIX to the store path of the sourced package; in
  case of normal ROS packages it's equal to the default builtin
  prefix, but in case of buildEnv, it's different and all packages in
  the environment share the same prefix.

I'm testing this change with the following flake.nix:

    {
      inputs = {
        nix-ros-overlay.url = "/path/to/repo/with/this/commit";
        nixpkgs.follows = "nix-ros-overlay/nixpkgs";
      };
      outputs = { self, nixpkgs, nix-ros-overlay }:
        let
          pkgs = import nixpkgs {
            system = "x86_64-linux";
            overlays = [ nix-ros-overlay.overlays.default ];
          };
          rosDistro = pkgs.rosPackages.humble;
          buildEnv = rosDistro.buildEnv {
            paths = with rosDistro; [
              demo-nodes-cpp
            ];
          };
        in
        {
          devShells.x86_64-linux.default = pkgs.mkShell {
            name = "ros-env-test";
            packages = [ buildEnv ];
          };
          packages.x86_64-linux = {
            default = buildEnv;
            inherit (rosDistro) demo-nodes-cpp;
          };
        };
    }

Running `nix develop` and then:

    echo $AMENT_PREFIX_PATH | tr : \\n | wc -l

without this commit returns 71 entries, while with this commit the
result in a single entry!
2024-03-03 14:18:16 -05:00
Ben Wolsieffer
5f5fc56984 librealsense2: only apply patch to ROS 2
Noetic uses an older version that doesn't need this patch.
2024-02-25 21:15:36 -05:00
0aa4c3092a fix librealsense2 compile error 2024-02-25 21:11:05 -05:00
Ben Wolsieffer
07e5ea9e33 Remove catkin-pip override
This package no longer exists in any distro.
2024-02-25 21:07:50 -05:00
hacker1024
a3c7efb5bb buildEnv: Add ROS version environment variables to wrapper 2024-02-25 21:04:52 -05:00
Michal Sojka
5ff3d6e3f9 Fix rosbag2-compression compile error
The error messages were as follows:

    In file included from /build/rosbag2-release-release-humble-rosbag2_compression-0.15.9-1/src/rosbag2_compression/compression_options.cpp:18:
    /build/rosbag2-release-release-humble-rosbag2_compression-0.15.9-1/include/rosbag2_compression/compression_options.hpp:29:6: warning: elaborated-type-specifier for a scoped enum must not use the 'class' keyword
       29 | enum class ROSBAG2_COMPRESSION_PUBLIC CompressionMode: uint32_t
          | ~~~~ ^~~~~
          |      -----
    /build/rosbag2-release-release-humble-rosbag2_compression-0.15.9-1/include/rosbag2_compression/compression_options.hpp:29:54: error: found ':' in nested-name-specifier, expected '::'
       29 | enum class ROSBAG2_COMPRESSION_PUBLIC CompressionMode: uint32_t
          |                                                      ^
          |                                                      ::
    /build/rosbag2-release-release-humble-rosbag2_compression-0.15.9-1/include/rosbag2_compression/compression_options.hpp:29:39: error: 'CompressionMode' has not been declared
       29 | enum class ROSBAG2_COMPRESSION_PUBLIC CompressionMode: uint32_t
          |                                       ^~~~~~~~~~~~~~~
2024-02-25 21:03:05 -05:00
Ben Wolsieffer
0f0f7623c3 humble: cleanup plotjuggler-ros patch 2024-02-25 21:00:49 -05:00
Michal Sojka
35356210dc Fix plotjuggler-ros for Humble 2024-02-25 20:57:12 -05:00