nix-ros-overlay/distros/rolling/overrides.nix
Michal Sojka 0ecce1a1b5 Update patchAmentVendorGit to use automatically extracted information about vendored source
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.
2025-04-13 21:39:02 -04:00

236 lines
8.3 KiB
Nix

# Top level package set
self:
# Distro package set
rosSelf: rosSuper: let
inherit (rosSelf) lib;
in {
cyclonedds = rosSuper.cyclonedds.overrideAttrs ({
patches ? [], ...
}: {
patches = [
# Fix paths in pkg-config file
# https://github.com/eclipse-cyclonedds/cyclonedds/pull/1453
(self.fetchpatch {
url = "https://github.com/eclipse-cyclonedds/cyclonedds/commit/3ff967e32b8078d497a8b9c70735849c04eaebf6.patch";
hash = "sha256-F5zofoO0YbYfqLrb6s30un9k9+R8rQazLHw+uND1UxE=";
})
];
});
foonathan-memory-vendor = lib.patchExternalProjectGit rosSuper.foonathan-memory-vendor {
url = "https://github.com/foonathan/memory.git";
rev = "v0.7-3";
fetchgitArgs.hash = "sha256-nLBnxPbPKiLCFF2TJgD/eJKJJfzktVBW3SRW2m3WK/s=";
};
gazebo = self.gazebo_11;
geometric-shapes = rosSuper.geometric-shapes.overrideAttrs({
postPatch ? "", ...
}: {
# Remove workaround for Ubuntu-specific dependency hell issue
postPatch = postPatch + ''
substituteInPlace CMakeLists.txt --replace-fail \
'find_package(octomap 1.9.7...<1.10.0 REQUIRED)' \
'find_package(octomap REQUIRED)'
'';
});
google-benchmark-vendor = lib.patchExternalProjectGit rosSuper.google-benchmark-vendor {
url = "https://github.com/google/benchmark.git";
rev = "344117638c8ff7e239044fd0fa7085839fc03021";
fetchgitArgs.hash = "sha256-gztnxui9Fe/FTieMjdvfJjWHjkImtlsHn6fM1FruyME=";
};
gz-cmake-vendor = lib.patchGzAmentVendorGit rosSuper.gz-cmake-vendor { };
gz-common-vendor = (lib.patchGzAmentVendorGit rosSuper.gz-common-vendor { }).overrideAttrs ({
nativeBuildInputs ? [], ...
}: {
# https://github.com/gazebo-release/gz_common_vendor/pull/2
nativeBuildInputs = nativeBuildInputs ++ [ self.pkg-config ];
});
gz-dartsim-vendor = lib.patchAmentVendorGit rosSuper.gz-dartsim-vendor { };
gz-fuel-tools-vendor = lib.patchGzAmentVendorGit rosSuper.gz-fuel-tools-vendor { };
gz-gui-vendor = (lib.patchGzAmentVendorGit rosSuper.gz-gui-vendor { }).overrideAttrs ({
postInstall ? "", ...
}: {
# "RPATH of binary libGrid3D.so contains a forbidden reference to
# /build/" (see https://github.com/gazebosim/gz-gui/issues/627).
postInstall = postInstall + ''
${self.patchelf}/bin/patchelf --remove-rpath $out/lib64/gz-gui-9/plugins/libGrid3D.so
'';
});
gz-launch-vendor = lib.patchGzAmentVendorGit rosSuper.gz-launch-vendor { };
gz-math-vendor = lib.patchGzAmentVendorGit rosSuper.gz-math-vendor { };
gz-msgs-vendor = lib.patchGzAmentVendorGit rosSuper.gz-msgs-vendor { };
gz-ogre-next-vendor = (lib.patchAmentVendorGit rosSuper.gz-ogre-next-vendor { }).overrideAttrs({ ... }: {
dontFixCmake = true;
});
gz-physics-vendor = lib.patchGzAmentVendorGit rosSuper.gz-physics-vendor { };
gz-plugin-vendor = lib.patchGzAmentVendorGit rosSuper.gz-plugin-vendor { };
gz-rendering-vendor = lib.patchGzAmentVendorGit rosSuper.gz-rendering-vendor { };
gz-sensors-vendor = lib.patchGzAmentVendorGit rosSuper.gz-sensors-vendor { };
gz-sim-vendor = lib.patchGzAmentVendorGit rosSuper.gz-sim-vendor { };
gz-tools-vendor = (lib.patchGzAmentVendorGit rosSuper.gz-tools-vendor { }).overrideAttrs({
nativeBuildInputs ? [],
propagatedNativeBuildInputs ? [],
qtWrapperArgs ? [],
postFixup ? "", ...
}: {
nativeBuildInputs = nativeBuildInputs ++ [ self.qt5.wrapQtAppsHook ];
propagatedNativeBuildInputs = propagatedNativeBuildInputs ++ [
self.qt5.qtquickcontrols2
self.qt5.qtgraphicaleffects
self.pkg-config
];
qtWrapperArgs = qtWrapperArgs ++ [
# Gazebo is currently broken on Wayland
# https://gazebosim.org/docs/ionic/troubleshooting/#wayland-issues
"--set-default QT_QPA_PLATFORM xcb"
];
postFixup = postFixup + ''
wrapQtApp "$out/bin/gz"
'';
});
gz-transport-vendor = (lib.patchGzAmentVendorGit rosSuper.gz-transport-vendor { }).overrideAttrs({
buildInputs ? [], ...
}: {
buildInputs = buildInputs ++ [ self.libsodium ];
});
gz-utils-vendor = lib.patchGzAmentVendorGit rosSuper.gz-utils-vendor { };
iceoryx-hoofs = rosSuper.iceoryx-hoofs.overrideAttrs ({
patches ? [], ...
}: {
patches = patches ++ [
(self.fetchpatch {
url = "https://github.com/eclipse-iceoryx/iceoryx/commit/acc1e979a2d5ca30737efb077b00b42f1c4a8429.patch";
hash = "sha256-npFHdb0a3JBA8T6vke54DA08C93aNc/7c6xrfMBo7zI=";
stripLen = 1;
})
];
});
lely-core-libraries = lib.patchExternalProjectGit rosSuper.lely-core-libraries {
url = "https://gitlab.com/lely_industries/lely-core.git";
rev = "b63a0b6f79d3ea91dc221724b42dae49894449fc";
fetchgitArgs = {
hash = "sha256-x9JCU2Ryssq424n90IzVOxixnvsoYTukyCOL3zNbwt4=";
leaveDotGit = true;
};
};
libphidget22 = lib.patchVendorUrl rosSuper.libphidget22 {
url = "https://www.phidgets.com/downloads/phidget22/libraries/linux/libphidget22/libphidget22-1.19.20240304.tar.gz";
hash = "sha256-GpzGMpQ02s/X/XEcGoozzMjigrbqvAu81bcb7QG+36E=";
};
mcap-vendor = lib.patchVendorUrl rosSuper.mcap-vendor {
url = "https://github.com/foxglove/mcap/archive/refs/tags/releases/cpp/v1.4.0.tar.gz";
hash = "sha256-ZP8+URGfN//Pr53uy9mHp8tNTZA110o/03czlaRw/aE=";
};
moveit-core = rosSuper.moveit-core.overrideAttrs ({
postPatch ? "", ...
}: {
# Remove workaround for Ubuntu-specific dependency hell issue
postPatch = postPatch + ''
substituteInPlace CMakeLists.txt --replace-fail \
'find_package(octomap 1.9.7...<1.10.0 REQUIRED)' \
'find_package(octomap REQUIRED)'
'';
});
moveit-ros-occupancy-map-monitor = rosSuper.moveit-ros-occupancy-map-monitor.overrideAttrs ({
postPatch ? "", ...
}: {
# Remove workaround for Ubuntu-specific dependency hell issue
postPatch = postPatch + ''
substituteInPlace CMakeLists.txt --replace-fail \
'find_package(octomap 1.9.7...<1.10.0 REQUIRED)' \
'find_package(octomap REQUIRED)'
'';
});
nlohmann-json-schema-validator-vendor = lib.patchExternalProjectGit rosSuper.nlohmann-json-schema-validator-vendor {
url = "https://github.com/pboettch/json-schema-validator.git";
rev = "5ef4f903af055550e06955973a193e17efded896";
revVariable = "nlohmann_json_schema_validator_version";
fetchgitArgs.hash = "sha256-b02OFUx0BxUA6HN6IaacSg1t3RP4o7NND7X0U635W8U=";
};
rviz-ogre-vendor = lib.patchAmentVendorGit rosSuper.rviz-ogre-vendor {
tarSourceArgs.hook = let
version = "1.79";
imgui = self.fetchFromGitHub rec {
name = "${repo}-${version}";
owner = "ocornut";
repo = "imgui";
rev = "v${version}";
hash = "sha256-GIVhZ8Q7WebfHeKeJdVABXrTT26FOS7updncbv2LRnQ=";
};
imguiTar = lib.tarSource { } imgui;
in ''
substituteInPlace Components/Overlay/CMakeLists.txt \
--replace-fail ${lib.escapeShellArg imgui.url} file://${lib.escapeShellArg imguiTar}
'';
};
rviz-rendering = rosSuper.rviz-rendering.overrideAttrs ({
postPatch ? "", ...
}: {
postPatch = postPatch + ''
substituteInPlace src/rviz_rendering/render_system.cpp \
--replace-fail /opt/rviz_ogre_vendor ""
'';
});
sdformat-vendor = lib.patchGzAmentVendorGit rosSuper.sdformat-vendor { };
shared-queues-vendor = lib.patchVendorUrl rosSuper.shared-queues-vendor {
url = "https://github.com/cameron314/readerwriterqueue/archive/ef7dfbf553288064347d51b8ac335f1ca489032a.zip";
hash = "sha256-TyFt3d78GidhDGD17KgjAaZl/qvAcGJP8lmu4EOxpYg=";
};
urdfdom = rosSuper.urdfdom.overrideAttrs ({
patches ? [], ...
}: {
patches = patches ++ [
# Fix CMake relative install dir assumptions
# https://github.com/ros/urdfdom/pull/142
(self.fetchpatch {
url = "https://github.com/ros/urdfdom/commit/61a7e35cd5abece97259e76aed8504052b2f5b53.patch";
hash = "sha256-b3bEbbaSUDkwTEHJ8gVPEb+AR/zuWwLqiAW5g1T1dPU=";
})
];
});
urdfdom-headers = rosSuper.urdfdom-headers.overrideAttrs ({
patches ? [], ...
}: {
patches = patches ++ [
# Fix CMake relative install dir assumptions
# https://github.com/ros/urdfdom_headers/pull/66
(self.fetchpatch {
url = "https://github.com/ros/urdfdom_headers/commit/6e0cea148c3a7123f8367cd48d5709a4490c32f1.patch";
hash = "sha256-LC2TACGma/k6+WE9fTkzY98SgJYKsVuj5O9v84Q5mQ4=";
})
];
});
}