-
Notifications
You must be signed in to change notification settings - Fork 76
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Patch gz-*-vendor packages for Jazzy and Rolling #422
base: develop
Are you sure you want to change the base?
Conversation
@wentasah I developed my overrides for vendor packages in Rolling distribution and found out that the nix cmake builder replaces A solution seems to be setting |
6f25c83
to
6c4447d
Compare
Thanks @bjsowa for the hint. Not having
After the rebase there is a problem with |
I am able to build all
It seems that the dsv hook that modifies GZ_CONFIG_PATH is not being called. The other problem is that yaml files generated by the package, contain wrong paths with
|
I have managed to build gz-sim-8 without ROS some time ago (see my overlay here). I had to create some patches that compensated these path issues. Maybe we can take some inspiration from there. |
Signed-off-by: Bernd Müller <[email protected]>
5605813
to
4acd026
Compare
I've updated this to the current develop branch and now it's possible to build |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Looks like these change fairly often. Rolling will need updating too.
LGTM otherwise
distros/jazzy/overrides.nix
Outdated
version = "14.4.0"; | ||
hash = "sha256-7JZ8YGk+GLzG22nl9QHUg6aqn5mcrBy3cvzBbG4Ih0w="; |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
version = "14.4.0"; | |
hash = "sha256-7JZ8YGk+GLzG22nl9QHUg6aqn5mcrBy3cvzBbG4Ih0w="; | |
version = "14.5.0"; | |
hash = "sha256-nGBLnQP0TTKDVbYGyx23Fcs79UCJveajsll2LvyLJwQ="; |
distros/jazzy/overrides.nix
Outdated
version = "9.0.3"; | ||
hash = "sha256-36WwY3YUeCAUDBY8N+Mbw7FuNRn1fQUifLZvoGhXtcc="; |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
version = "9.0.3"; | |
hash = "sha256-36WwY3YUeCAUDBY8N+Mbw7FuNRn1fQUifLZvoGhXtcc="; | |
version = "9.1.0"; | |
hash = "sha256-txeIzj2vmvL5NDu6O07c7LwcCWE26OFEzvyc9TBrJAw="; |
distros/jazzy/overrides.nix
Outdated
version = "8.5.0"; | ||
hash = "sha256-10U8H3/EneLv+zQUGr3mkMPKctDlvtMfMhyQp6lacus="; |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
version = "8.5.0"; | |
hash = "sha256-10U8H3/EneLv+zQUGr3mkMPKctDlvtMfMhyQp6lacus="; | |
version = "8.6.0"; | |
hash = "sha256-zSiPHEh3h2J8hGL342tde5U9FLaGnWs72WD9BqyPf6E="; |
This fixes build failures in gz-*-vendor packages for Jazzy and Rolling. Some of these packages are required for building rviz2. Since most of the gz-* packages share the same structure, we introduce patchGzAmentVendorGit function to make patching easier. In addition to patching ament_vendor() calls, it adds a check to CMakeLists.txt to detect upstream updates of the vendored package version. This should help keeping our overrides in sync with upstream. Currently, the overrides for Jazzy and Rolling are the same. Co-authored-by: Błażej Sowa <[email protected]>
4acd026
to
aa846d3
Compare
Rebased to develop and updated the versions. Thanks @hacker1024! Now, jazzy and rolling use the same versions. I build tested this on both jazzy and rolling and it builds fine. The command was:
|
I have used this PR in a custom shell. # Environment containing basic ROS2 tools
{pkgs ? import ../. {}}:
with pkgs;
with rosPackages.jazzy;
mkShell {
nativeBuildInputs = [
(buildEnv {
paths = [
gz-cmake-vendor
gz-common-vendor
gz-dartsim-vendor
gz-fuel-tools-vendor
gz-gui-vendor
gz-launch-vendor
gz-math-vendor
gz-msgs-vendor
gz-ogre-next-vendor
gz-physics-vendor
gz-plugin-vendor
gz-rendering-vendor
gz-sensors-vendor
gz-sim-vendor
gz-tools-vendor
gz-transport-vendor
gz-utils-vendor
ros-gz
ros-core
];
})
];
GZ_CONFIG_PATH = "${gz-tools-vendor}/opt/gz_tools_vendor/share/gz:${gz-gui-vendor}/opt/gz_gui_vendor/share/gz\:${gz-cmake-vendor}/opt/gz_cmake_vendor/share/gz\:${gz-fuel-tools-vendor}/opt/gz_fuel_tools_vendor/share/gz\:${gz-launch-vendor}/opt/gz_launch_vendor/share/gz\:${gz-math-vendor}/opt/gz_math_vendor/share/gz\:${gz-msgs-vendor}/opt/gz_msgs_vendor/share/gz\:${gz-physics-vendor}/opt/gz_physics_vendor/share/gz\:${gz-plugin-vendor}/opt/gz_plugin_vendor/share/gz\:${gz-rendering-vendor}/opt/gz_rendering_vendor/share/gz\:${gz-sensors-vendor}/opt/gz_sensors_vendor/share/gz\:${gz-sim-vendor}/opt/gz_sim_vendor/share/gz\:${gz-transport-vendor}/opt/gz_transport_vendor/share/gz\:${gz-utils-vendor}/opt/gz_utils_vendor/share/gz";
} Now the
there is still the problem with |
I think the wrong paths,
|
This is my (incomplete) attempt to compile
rviz2
for Jazzy. It requires patching vendored packages, which is what this PR does. However, it's not sufficient - I get the following error:Probably, there is some logic in
ament_vendor
, which we do not patch correctly. It will need more investigation. I'll be mostly off-line next week so if someone wants to continue, they can start here.