Skip to content

Commit

Permalink
Cleanup overrides
Browse files Browse the repository at this point in the history
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.
  • Loading branch information
lopsided98 committed Nov 17, 2024
1 parent 0eccf67 commit f5f0ee1
Show file tree
Hide file tree
Showing 4 changed files with 44 additions and 113 deletions.
101 changes: 0 additions & 101 deletions distros/distro-overlay.nix
Original file line number Diff line number Diff line change
Expand Up @@ -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 ? "", ...
Expand All @@ -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 ? "", ...
Expand Down Expand Up @@ -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 ? [], ...
}: {
Expand All @@ -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 ({
Expand Down Expand Up @@ -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 ? [], ...
}: {
Expand All @@ -438,8 +339,6 @@ let
wrapQtApp "$out/lib/turtlesim/turtlesim_node"
'';
});

urdf = patchBoostPython rosSuper.urdf;
} // (mrptOverrides rosSelf rosSuper);

otherSplices = {
Expand Down
8 changes: 8 additions & 0 deletions distros/humble/overrides.nix
Original file line number Diff line number Diff line change
Expand Up @@ -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=";
Expand Down
36 changes: 36 additions & 0 deletions distros/ros1-overlay.nix
Original file line number Diff line number Diff line change
Expand Up @@ -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 ? "", ...
}: {
Expand All @@ -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";
Expand All @@ -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 ? [], ...
}: {
Expand Down Expand Up @@ -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;
Expand Down
12 changes: 0 additions & 12 deletions lib/default.nix
Original file line number Diff line number Diff line change
Expand Up @@ -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.
Expand Down

0 comments on commit f5f0ee1

Please sign in to comment.