The information is stored in vendored-source.json files in the package
directories. The file can be automatically generated by running
command like this:
$(nix-build -A rosPackages.jazzy.gz-math-vendor.updateAmentVendor)'
This command executes Cmake for the given package with an alternative
implementation of the ament_vendor Cmake macro, which generates the
file instead of fetching the source code. The above command generates
`distros/jazzy/gz-math-vendor/vendored-source.json` files with this
content:
{
"url": "https://github.com/gazebosim/gz-math.git",
"rev": "gz-math7_7.5.2",
"hash": "sha256-LwYeyv8nwX06n5ju+ra2uqNMedMSLRumem8qDHXtNns="
}
patchAmentVendorGit function is updated to pick the information about
patching from that file instead of from its arguments.
patchGzAmentVendorGit is updated similarly and the check for version
mismatch is removed, because it would not work (version information is
not available from function arguments) and more importantly, it
is (hopefully) no longer needed, because the version will always be
updated automatically by CI.
Move some ROS 1 specific overrides out of distro-overlay.nix, get rid of
some that have been fixed upstream and remove some for packages that
only exist in ancient distros.
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 <bsowa123@gmail.com>
This catches when packages update their vendored version but we haven't
updated on our end. Try to fix all usages of patchExternalProjectGit so
they are correct now.
This package requires complex patching. It uses ament_vendor(), which is picky
about what kinds of sources it requires. Additionally, ogre contains its own
vendoring of imgui that needs to be patched.