From f5f0ee1237cf4859ea9fa3ac85ec77f4e97b435a Mon Sep 17 00:00:00 2001 From: Ben Wolsieffer Date: Sun, 17 Nov 2024 15:07:05 -0500 Subject: [PATCH] Cleanup overrides 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. --- distros/distro-overlay.nix | 101 ----------------------------------- distros/humble/overrides.nix | 8 +++ distros/ros1-overlay.nix | 36 +++++++++++++ lib/default.nix | 12 ----- 4 files changed, 44 insertions(+), 113 deletions(-) diff --git a/distros/distro-overlay.nix b/distros/distro-overlay.nix index 54b14f1e15..9d10193ac5 100644 --- a/distros/distro-overlay.nix +++ b/distros/distro-overlay.nix @@ -72,69 +72,16 @@ let overrides = rosSelf: rosSuper: with rosSelf.lib; { # ROS package overrides/fixups - camera-calibration-parsers = patchBoostPython rosSuper.camera-calibration-parsers; - - cob-light = patchBoostSignals rosSuper.cob-light; - - cv-bridge = patchBoostPython rosSuper.cv-bridge; - - dynamic-reconfigure = rosSuper.dynamic-reconfigure.overrideAttrs ({ - postPatch ? "", ... - }: { - postPatch = postPatch + '' - substituteInPlace cmake/setup_custom_pythonpath.sh.in \ - --replace-fail '#!/usr/bin/env sh' '#!${self.stdenv.shell}' - ''; - }); - - fake-localization = patchBoostSignals rosSuper.fake-localization; - gazebo-ros = rosSuper.gazebo-ros.overrideAttrs ({ ... }:{ setupHook = ./gazebo-ros-setup-hook.sh; }); - gmapping = patchBoostSignals rosSuper.gmapping; - - image-cb-detector = patchBoostSignals rosSuper.image-cb-detector; - - laser-cb-detector = patchBoostSignals rosSuper.laser-cb-detector; - - libfranka = rosSuper.libfranka.overrideAttrs ({ - cmakeFlags ? [], ... - }: { - # Uses custom flag to disable tests. Attempts to download GTest without - # this. - cmakeFlags = cmakeFlags ++ [ "-DBUILD_TESTS=OFF" ]; - }); - - libpcan = patchVendorUrl rosSuper.libpcan { - url = "http://www.peak-system.com/fileadmin/media/linux/files/peak-linux-driver-8.3.tar.gz"; - sha256 = "0f6v3vjszyg1xp99jx48hyv8p32iyq4j18a4ir4x5p6f3b0z3r34"; - }; - - librealsense = rosSuper.librealsense.overrideAttrs ({ - patches ? [], ... - }: { - patches = patches ++ [ (self.fetchpatch { - url = "https://github.com/IntelRealSense/librealsense/commit/86e434c86096b91a722f22bd039c2b6eeb8174ab.patch"; - sha256 = "1kcvm32cx9zzd56k9yglnyxizmfgar3a6cybjdwpyf6ljrxjlpp5"; - }) ]; - }); - librealsense2 = rosSuper.librealsense2.overrideAttrs ({ buildInputs ? [], ... }: { buildInputs = buildInputs ++ [ self.glfw self.libGLU ]; }); - libuvc-camera = rosSuper.libuvc-camera.overrideAttrs ({ - postPatch ? "", ... - }: { - postPatch = postPatch + '' - substituteInPlace cfg/UVCCamera.cfg --replace-fail python2 python - ''; - }); - mapviz = rosSuper.mapviz.overrideAttrs ({ nativeBuildInputs ? [], postFixup ? "", ... @@ -156,16 +103,6 @@ let ROS_PYTHON_VERSION = if rosSelf.python.isPy3k then 3 else 2; }); - message-filters = patchBoostSignals rosSuper.message-filters; - - message-relay = rosSuper.message-relay.overrideAttrs ({ - postPatch ? "", ... - }: { - postPatch = postPatch + '' - patchShebangs scripts - ''; - }); - osqp-vendor = pipe rosSuper.osqp-vendor [ (pkg: pkg.overrideAttrs ({ preInstall ? "", ... @@ -203,16 +140,6 @@ let ]; }); - open-manipulator-control-gui = rosSuper.open-manipulator-control-gui.overrideAttrs ({ - nativeBuildInputs ? [], ... - }: { - dontWrapQtApps = false; - nativeBuildInputs = nativeBuildInputs ++ [ self.qt5.wrapQtAppsHook ]; - postFixup = '' - wrapQtApp "$out/lib/open_manipulator_control_gui/open_manipulator_control_gui" - ''; - }); - plotjuggler = rosSuper.plotjuggler.overrideAttrs ({ nativeBuildInputs ? [], ... }: { @@ -223,8 +150,6 @@ let ''; }); - pr2-tilt-laser-interface = patchBoostSignals rosSuper.pr2-tilt-laser-interface; - python-qt-binding = (rosSuper.python-qt-binding.override { python3Packages = rosSelf.python3Packages.overrideScope (pyFinal: pyPrev: { pyqt5 = pyPrev.pyqt5.overrideAttrs ({ @@ -405,30 +330,6 @@ let ''; }); - rxcpp-vendor = patchVendorUrl rosSuper.rxcpp-vendor { - url = "https://github.com/ReactiveX/RxCpp/archive/v4.1.0.tar.gz"; - sha256 = "1smxrcm0s6bz05185dx1i2xjgn47rq7m247pblil6p3bmk3lkfyk"; - }; - - swri-profiler-tools = rosSuper.swri-profiler-tools.overrideAttrs ({ - nativeBuildInputs ? [], ... - }: { - dontWrapQtApps = false; - nativeBuildInputs = nativeBuildInputs ++ [ self.qt5.wrapQtAppsHook ]; - postFixup = '' - wrapQtApp "$out/lib/swri_profiler_tools/profiler" - ''; - }); - - tf = patchBoostSignals rosSuper.tf; - - tf2 = patchBoostSignals rosSuper.tf2; - - tinydir-vendor = patchVendorUrl rosSuper.tinydir-vendor { - url = "https://github.com/cxong/tinydir/archive/1.2.4.tar.gz"; - sha256 = "1qjwky7v4b9d9dmxzsybnhiz6xgx94grc67sdyvlp1d4kfkfsl4w"; - }; - turtlesim = rosSuper.turtlesim.overrideAttrs ({ nativeBuildInputs ? [], ... }: { @@ -438,8 +339,6 @@ let wrapQtApp "$out/lib/turtlesim/turtlesim_node" ''; }); - - urdf = patchBoostPython rosSuper.urdf; } // (mrptOverrides rosSelf rosSuper); otherSplices = { diff --git a/distros/humble/overrides.nix b/distros/humble/overrides.nix index ea0d66657a..7502b27759 100644 --- a/distros/humble/overrides.nix +++ b/distros/humble/overrides.nix @@ -57,6 +57,14 @@ in with lib; { }; }; + libfranka = rosSuper.libfranka.overrideAttrs ({ + cmakeFlags ? [], ... + }: { + # Uses custom flag to disable tests. Attempts to download GTest without + # this. + cmakeFlags = cmakeFlags ++ [ "-DBUILD_TESTS=OFF" ]; + }); + libphidget22 = 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="; diff --git a/distros/ros1-overlay.nix b/distros/ros1-overlay.nix index e6e65d54cd..e952b10512 100644 --- a/distros/ros1-overlay.nix +++ b/distros/ros1-overlay.nix @@ -73,11 +73,22 @@ rosSelf: rosSuper: with rosSelf.lib; { ]; }); + dynamic-reconfigure = rosSuper.dynamic-reconfigure.overrideAttrs ({ + postPatch ? "", ... + }: { + postPatch = postPatch + '' + substituteInPlace cmake/setup_custom_pythonpath.sh.in \ + --replace-fail '#!/usr/bin/env sh' '#!${self.stdenv.shell}' + ''; + }); + fcl-catkin = patchVendorUrl rosSuper.fcl-catkin { url = "https://github.com/flexible-collision-library/fcl/archive/v0.6.1.zip"; sha256 = "0nryr4hg3lha1aaz35wbqr42lb6l8alfcy6slj2yn2dgb5syrmn2"; }; + image-cb-detector = patchBoostSignals rosSuper.image-cb-detector; + jsk-recognition-msgs = rosSuper.jsk-recognition-msgs.overrideAttrs ({ buildInputs ? [], postPatch ? "", ... }: { @@ -91,6 +102,13 @@ rosSelf: rosSuper: with rosSelf.lib; { ''; }); + laser-cb-detector = patchBoostSignals rosSuper.laser-cb-detector; + + libpcan = patchVendorUrl rosSuper.libpcan { + url = "http://www.peak-system.com/fileadmin/media/linux/files/peak-linux-driver-8.3.tar.gz"; + sha256 = "0f6v3vjszyg1xp99jx48hyv8p32iyq4j18a4ir4x5p6f3b0z3r34"; + }; + libphidgets = patchVendorUrl rosSuper.libphidgets { url = "https://www.phidgets.com/downloads/phidget21/libraries/linux/libphidget/libphidget_2.1.8.20151217.tar.gz"; sha256 = "0lpaskqxpklm05050wwvdqwhw30f2hpzss8sgyvczdpvvqzjg4vk"; @@ -103,6 +121,14 @@ rosSelf: rosSuper: with rosSelf.lib; { nativeBuildInputs = nativeBuildInputs ++ [ self.openblas ]; }); + libuvc-camera = rosSuper.libuvc-camera.overrideAttrs ({ + postPatch ? "", ... + }: { + postPatch = postPatch + '' + substituteInPlace cfg/UVCCamera.cfg --replace-fail python2 python + ''; + }); + map-server = rosSuper.map-server.overrideAttrs ({ nativeBuildInputs ? [], ... }: { @@ -186,6 +212,16 @@ rosSelf: rosSuper: with rosSelf.lib; { ''; }); + swri-profiler-tools = rosSuper.swri-profiler-tools.overrideAttrs ({ + nativeBuildInputs ? [], ... + }: { + dontWrapQtApps = false; + nativeBuildInputs = nativeBuildInputs ++ [ self.qt5.wrapQtAppsHook ]; + postFixup = '' + wrapQtApp "$out/lib/swri_profiler_tools/profiler" + ''; + }); + swri-transform-util = (rosSuper.swri-transform-util.override { # PROJ 8 finally removed the deprecated proj_api.h header proj = self.proj_7; diff --git a/lib/default.nix b/lib/default.nix index c6985b1c82..7ea84179c5 100644 --- a/lib/default.nix +++ b/lib/default.nix @@ -146,18 +146,6 @@ ''; }); - patchBoostPython = pkg: pkg.overrideAttrs ({ - postPatch ? "", ... - }: { - postPatch = let - pythonVersion = rosSelf.python.sourceVersion; - pythonLib = "python${pythonVersion.major}${pythonVersion.minor}"; - in '' - sed -i CMakeLists.txt \ - -e '/Boost [^)]*/s/python[^ )]*/${pythonLib}/' - '' + postPatch; - }); - # Many ROS packages claim to have a dependency on Boost signals when they # really don't or they actually depend on signals2. Boost 1.69 removed # signals causing these packages to fail to build.